7_3-核心common-数据
更新時間:2023-04-17 15:27:57
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>
}
