/** 1. 加载本地信息 2. 请求正规群信息 , 与本地进行对比 3. version groupId 请求 */ public void onLocalLoginOk() { logger.i("group#loadFromDb"); if (!EventBus.getDefault().isRegistered(inst)) { EventBus.getDefault().registerSticky(inst); } // 加载本地group List<GroupEntity> localGroupInfoList = dbInterface.loadAllGroup(); for (GroupEntity groupInfo : localGroupInfoList) { groupMap.put(groupInfo.getPeerId(), groupInfo); } triggerEvent(new GroupEvent(GroupEvent.Event.GROUP_INFO_OK)); }
public void onReqCreateTempGroup(IMGroup.IMGroupCreateRsp groupCreateRsp) { logger.d("group#onReqCreateTempGroup"); int resultCode = groupCreateRsp.getResultCode(); if (0 != resultCode) { logger.e("group#createGroup failed"); triggerEvent(new GroupEvent(GroupEvent.Event.CREATE_GROUP_FAIL)); return; } GroupEntity groupEntity = ProtoBuf2JavaBean.getGroupEntity(groupCreateRsp); // 更新DB 更新map groupMap.put(groupEntity.getPeerId(), groupEntity); IMSessionManager.instance().updateSession(groupEntity); dbInterface.insertOrUpdateGroup(groupEntity); triggerEvent(new GroupEvent(GroupEvent.Event.CREATE_GROUP_OK, groupEntity)); // 接收到之后修改UI }
public void onRepGroupDetailInfo(IMGroup.IMGroupInfoListRsp groupInfoListRsp) { logger.i("group#onRepGroupDetailInfo"); int groupSize = groupInfoListRsp.getGroupInfoListCount(); int userId = groupInfoListRsp.getUserId(); int loginId = imLoginManager.getLoginId(); logger.i("group#onRepGroupDetailInfo cnt:%d", groupSize); if (groupSize <= 0 || userId != loginId) { logger.i("group#onRepGroupDetailInfo size empty or userid[%d]≠ loginId[%d]", userId, loginId); return; } ArrayList<GroupEntity> needDb = new ArrayList<>(); for (IMBaseDefine.GroupInfo groupInfo : groupInfoListRsp.getGroupInfoListList()) { // 群组的详细信息 // 保存在DB中 // GroupManager 中的变量 GroupEntity groupEntity = ProtoBuf2JavaBean.getGroupEntity(groupInfo); groupMap.put(groupEntity.getPeerId(), groupEntity); needDb.add(groupEntity); } dbInterface.batchInsertOrUpdateGroup(needDb); triggerEvent(new GroupEvent(GroupEvent.Event.GROUP_INFO_UPDATED)); }