|
@@ -13,12 +13,15 @@ import com.common.im.adapter.MessagePagerAdapter;
|
|
|
import com.common.im.bean.GroupUserInfoBean;
|
|
|
import com.common.im.contract.MessageFragmentContract;
|
|
|
|
|
|
+import io.rong.imkit.userinfo.RongUserInfoManager;
|
|
|
import io.rong.imkit.userinfo.model.GroupUserInfo;
|
|
|
import io.rong.imkit.utils.helper.ConversationFilterHelper;
|
|
|
|
|
|
import com.common.im.presenter.MessagePresenter;
|
|
|
import com.common.im.ui.contact.ContactListTabFragment;
|
|
|
+
|
|
|
import io.rong.imkit.utils.GroupUtils;
|
|
|
+
|
|
|
import com.common.im_ui.R;
|
|
|
import com.common.im_ui.databinding.FragmentMessageLayoutBinding;
|
|
|
import com.common.im.bean.RongIMGroupInfo;
|
|
@@ -62,7 +65,7 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
mViewBinding.imCreateGroup.setVisibility(View.VISIBLE);
|
|
|
mViewBinding.imCreateGroup.setOnClickListener(this);
|
|
|
}
|
|
|
- localUserid = UserHelper.getUserId();
|
|
|
+ localUserid = UserHelper.getImUserId();
|
|
|
TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(mViewBinding.tabLayout, mViewBinding.viewPager, new TabLayoutMediator.TabConfigurationStrategy() {
|
|
|
@Override
|
|
|
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
|
|
@@ -116,14 +119,8 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
RongIM.setUserInfoProvider(new UserDataProvider.UserInfoProvider() {
|
|
|
@Override
|
|
|
public UserInfo getUserInfo(String userId) {
|
|
|
- String tempUserId =userId.split(":")[0];
|
|
|
- if (!TextUtils.isEmpty(localUserid) && localUserid.equals(tempUserId)) {
|
|
|
- RongIMUserInfo data = new RongIMUserInfo();
|
|
|
- data.setFriendId(userId + "");
|
|
|
- data.setFriendNickname(UserHelper.getUserName());
|
|
|
- data.setFriendAvatar(UserHelper.getUserAvatar());
|
|
|
- data.setExtra(GroupUtils.getCurrentUserInfoRoleTypeExtra());
|
|
|
- onQueryFriendDetail(data);
|
|
|
+ if (!TextUtils.isEmpty(localUserid) && localUserid.equals(userId)) {
|
|
|
+ return buildCurrentUserInfo(userId);
|
|
|
} else {
|
|
|
if (presenter != null) {
|
|
|
presenter.queryFriendDetail(getContext(), userId);
|
|
@@ -171,18 +168,17 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
} else {
|
|
|
String userId = conversation.mCore.getTargetId();
|
|
|
if (localUserid.equals(userId)) {
|
|
|
- RongIMUserInfo data = new RongIMUserInfo();
|
|
|
- data.setFriendId(userId);
|
|
|
- data.setFriendNickname(UserHelper.getUserName());
|
|
|
- data.setFriendAvatar(UserHelper.getUserAvatar());
|
|
|
- data.setExtra(GroupUtils.getCurrentUserInfoRoleTypeExtra());
|
|
|
- onQueryFriendDetail(data);
|
|
|
} else {
|
|
|
presenter.queryFriendDetail(getContext(), userId);
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //此处修复一个历史消息里携带了extra并且extra不对的问题
|
|
|
+ if (!TextUtils.isEmpty(localUserid)) {
|
|
|
+ UserInfo userInfo = buildCurrentUserInfo(localUserid);
|
|
|
+ RongUserInfoManager.getInstance().refreshUserInfoCache(userInfo);
|
|
|
+ }
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
@@ -197,6 +193,7 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
messagePagerAdapter.setData(fragments);
|
|
|
mViewBinding.viewPager.setAdapter(messagePagerAdapter);
|
|
|
tabLayoutMediator.attach();
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -216,7 +213,7 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
@Override
|
|
|
public void onQueryGroupUserInfoSuccess(GroupUserInfoBean userInfoBean) {
|
|
|
if (userInfoBean != null) {
|
|
|
- GroupUserInfo groupUserInfo = new GroupUserInfo(userInfoBean.groupId, userInfoBean.userId, userInfoBean.nickname, GroupUtils.getGroupUserInfoExtra(userInfoBean.isAdmin,userInfoBean.roleType));
|
|
|
+ GroupUserInfo groupUserInfo = new GroupUserInfo(userInfoBean.groupId, userInfoBean.userId, userInfoBean.nickname, GroupUtils.getGroupUserInfoExtra(userInfoBean.isAdmin, userInfoBean.roleType));
|
|
|
RongIM.getInstance().refreshGroupUserInfoCache(groupUserInfo);
|
|
|
}
|
|
|
}
|
|
@@ -251,4 +248,11 @@ public class MessageFragment extends BaseMVPFragment<FragmentMessageLayoutBindin
|
|
|
.navigation();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private UserInfo buildCurrentUserInfo(String userId) {
|
|
|
+ Uri avatarUri = Uri.parse(UserHelper.getUserAvatar());
|
|
|
+ UserInfo userInfo = new UserInfo(userId, UserHelper.getUserName(), avatarUri);
|
|
|
+ userInfo.setExtra(GroupUtils.getCurrentUserInfoRoleTypeExtra());
|
|
|
+ return userInfo;
|
|
|
+ }
|
|
|
}
|