7_3-核心common-数据

1 概述

数据模块位于polyvLiveCommonModul模块的data包下,数据模块包括的数据有:配置数据、http数据、业务模块数据等。这里把这些数据统一称为直播间数据,并且使用PLVLiveRoomDataManager管理它们。

2 核心类介绍

2.1 PLVLiveRoomDataManager

直播间数据管理器,实现IPLVLiveRoomDataManager接口。负责调用IPLVLiveRoomDataRequester获取http数据,存放http数据、配置数据、以及各个业务模块间公用的数据,因此需要每个业务模块间持有同个直播间数据管理器对象。使用示例:

PLVLCCloudClassActivity

// 直播间数据管理器,每个业务初始化所需的参数
private IPLVLiveRoomDataManager liveRoomDataManager;

private void initLiveRoomManager() {
    // 使用PLVLiveChannelConfigFiller配置好直播参数后,用其创建直播间数据管理器实例
    liveRoomDataManager = new PLVLiveRoomDataManager(PLVLiveChannelConfigFiller.generateNewChannelConfig());

    // 进行网络请求,获取上报观看热度
    liveRoomDataManager.requestPageViewer();

    // 进行网络请求,获取直播详情数据
    liveRoomDataManager.requestChannelDetail();

    // 进行网络请求,获取功能开关数据
    liveRoomDataManager.requestChannelSwitch();
}

2.2 IPLVLiveRoomDataManager

直播间数据管理器实现的接口。定义了:

1、获取config

2、本地数据获取、设置

3、http接口请求

4、销毁

public interface IPLVLiveRoomDataManager {

    // <editor-fold defaultstate="collapsed" desc="1、获取config">

    /**
     * 获取直播频道参数信息
     */
    @NonNull
    PLVLiveChannelConfig getConfig();
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="2、本地数据获取、设置">

    /**
     * 获取观看热度数据liveData
     */
    LiveData<PLVStatefulData<Integer>> getPageViewerData();

    /**
     * 获取直播详情数据LiveData
     */
    LiveData<PLVStatefulData<PolyvLiveClassDetailVO>> getClassDetailVO();

    /**
     * 获取功能开关数据LiveData
     */
    LiveData<PLVStatefulData<PolyvChatFunctionSwitchVO>> getFunctionSwitchVO();

    /**
     * 获取直播商品数据LiveData
     */
    LiveData<PLVStatefulData<PolyvCommodityVO>> getCommodityVO();

    /**
     * 获取直播状态LiveData
     */
    LiveData<PLVStatefulData<PLVLiveRoomDataManager.LiveStatus>> getLiveStatusData();

    /**
     * 获取请求商品接口的rank
     */
    int getCommodityRank();

    /**
     * 设置sessionId
     */
    void setSessionId(String sessionId);

    /**
     * 获取sessionId
     */
    String getSessionId();
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="3、http接口请求">

    /**
     * 上报观看热度
     */
    void requestPageViewer();

    /**
     * 获取直播详情数据
     */
    void requestChannelDetail();

    /**
     * 获取功能开关数据
     */
    void requestChannelSwitch();

    /**
     * 获取商品信息
     */
    void requestProductList();

    /**
     * 获取直播状态
     */
    void requestLiveStatus();

    /**
     * 获取商品信息
     *
     * @param rank 不传排序号会返回列表最前面的数据,传rank后返回rank之后的商品列表。传-1时和不传的结果一致。
     */
    void requestProductList(int rank);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="4、销毁">

    /**
     * 销毁,取消所有的接口请求
     */
    void destroy();
    // </editor-fold>
}

Last updated