浏览代码

修复IM部分bug

Pq 2 年之前
父节点
当前提交
ff50ca907d

+ 24 - 0
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/ConversationListFragment.java

@@ -13,7 +13,14 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.constanst.LoginStatusConstants;
+import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.utils.LogUtils;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import androidx.annotation.LayoutRes;
 import androidx.annotation.NonNull;
@@ -77,6 +84,7 @@ public class ConversationListFragment extends Fragment implements BaseAdapter.On
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        EventBus.getDefault().register(this);
     }
 
     @Nullable
@@ -365,4 +373,20 @@ public class ConversationListFragment extends Fragment implements BaseAdapter.On
         mAdapter.setEmptyView(emptyId);
     }
 
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void loadEventBus(LoginStatusEvent event) {
+        if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
+            LogUtils.i("pq", "im receive:logout");
+            if (mConversationListViewModel != null) {
+                mConversationListViewModel.clearCurrentConversationList();
+            }
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
 }

+ 6 - 0
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/viewmodel/ConversationListViewModel.java

@@ -221,6 +221,12 @@ public class ConversationListViewModel extends AndroidViewModel {
 
     }
 
+    public void clearCurrentConversationList() {
+        if (mUiConversationList != null) {
+            mUiConversationList.clear();
+        }
+    }
+
 
     public void getConversationOnListenerList(final boolean loadMore) {
         if (isTaskScheduled) {