Bläddra i källkod

修复部分问题

Pq 2 år sedan
förälder
incheckning
2192ed7f31
1 ändrade filer med 21 tillägg och 17 borttagningar
  1. 21 17
      rong_im/common_im_ui/src/main/java/com/common/im/ui/MessageFragment.java

+ 21 - 17
rong_im/common_im_ui/src/main/java/com/common/im/ui/MessageFragment.java

@@ -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;
+    }
 }