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
Was this helpful?