Browse Source

修复部分bug

Pq 3 years ago
parent
commit
b276abbd0f

+ 8 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/LoginStatusConstants.java

@@ -0,0 +1,8 @@
+package com.cooleshow.base.constanst;
+
+/**
+ * Author by pq, Date on 2022/7/4.
+ */
+public class LoginStatusConstants {
+    public static final int LOGIN_OUT =-1;//登出
+}

+ 11 - 0
BaseLibrary/src/main/java/com/cooleshow/base/event/LoginStatusEvent.java

@@ -0,0 +1,11 @@
+package com.cooleshow.base.event;
+
+/**
+ * Author by pq, Date on 2022/7/4.
+ */
+public class LoginStatusEvent {
+    public LoginStatusEvent(int eventCode) {
+        this.eventCode = eventCode;
+    }
+    public int eventCode;
+}

+ 3 - 1
rong_im/kit/src/main/java/io/rong/imkit/conversationlist/viewmodel/ConversationListViewModel.java

@@ -11,6 +11,7 @@ import androidx.lifecycle.MediatorLiveData;
 import androidx.lifecycle.MutableLiveData;
 import androidx.lifecycle.Observer;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
@@ -166,6 +167,7 @@ public class ConversationListViewModel extends AndroidViewModel {
                             mRefreshEventLiveData.postValue(new Event.RefreshEvent(RefreshState.RefreshFinish));
                         }
                         if (conversations == null || conversations.size() == 0) {
+                            mConversationListLiveData.postValue(new ArrayList<BaseUiConversation>());
                             return;
                         }
                         RLog.d(TAG, "getConversationListByPage. size:" + conversations.size());
@@ -514,7 +516,7 @@ public class ConversationListViewModel extends AndroidViewModel {
             while (iterator.hasNext()) {
                 BaseUiConversation item = iterator.next();
                 if (clearedTypes.contains(item.mCore.getConversationType())) {
-                        mUiConversationList.remove(item);
+                    mUiConversationList.remove(item);
                 }
             }
             mConversationListLiveData.postValue(mUiConversationList);

+ 10 - 4
student/src/main/java/com/cooleshow/student/ui/main/CourseTableFragment.kt

@@ -126,7 +126,11 @@ class CourseTableFragment :
                     )
                     .withString(SparringCourseDetailActivity.STUDENT_ID, data.userId)
                     .navigation()
-            }else if(TextUtils.equals(CourseTableListAdapter.PIANO_ROOM_COURSE, data?.courseType)){
+            } else if (TextUtils.equals(
+                    CourseTableListAdapter.PIANO_ROOM_COURSE,
+                    data?.courseType
+                )
+            ) {
                 //琴房课 跳转详情页
                 ARouter.getInstance().build(RouterPath.CourseCenter.PIANO_ROOM_COURSE_DETAIL)
                     .withString("course_id", data.courseId)
@@ -137,7 +141,7 @@ class CourseTableFragment :
                     .build(RouterPath.WebCenter.ACTIVITY_HTML)
                     .withString(
                         WebConstants.WEB_URL,
-                        WebConstants.TEACHER_LIVE_DETAIL + "?groupId=" + data.courseGoupId+"&classId="+data.courseId
+                        WebConstants.TEACHER_LIVE_DETAIL + "?groupId=" + data.courseGoupId + "&classId=" + data.courseId
                     )
                     .navigation()
             }
@@ -151,6 +155,7 @@ class CourseTableFragment :
                     //陪练课
                     OpenChatHelper.goChat(context, data.userId, data.name)
                 } else {
+                    //琴房课或者直播课
                     OpenChatHelper.goGroupChat(context, data.imGroupId, data.name)
                 }
             }
@@ -276,12 +281,13 @@ class CourseTableFragment :
         mViewBinding.refreshLayout.finishRefresh()
         if (datas?.size != 0) {
             //更新日历表,显示有课字样
+            mViewBinding.calendarView.clearSchemeDate()
             var maps = CourseHelper.filterDate(datas);
             if (maps != null && maps.isNotEmpty()) {
-                Log.e("asdfasdfasdf", "onGetCourseDateByMonthSuccess: ")
-                mViewBinding.calendarView.clearSchemeDate()
                 mViewBinding.calendarView.addSchemeDate(maps)
             }
+        } else {
+            mViewBinding.calendarView.clearSchemeDate()
         }
     }
 

+ 22 - 1
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -12,6 +12,8 @@ import androidx.fragment.app.Fragment;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.common.im.ui.MessageFragment;
+import com.cooleshow.base.constanst.LoginStatusConstants;
+import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
@@ -28,6 +30,10 @@ import com.daya.live_teaching.im.IMManager;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
 import com.tbruyelle.rxpermissions3.RxPermissions;
 
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
 import java.util.ArrayList;
 
 import io.rong.imlib.RongIMClient;
@@ -49,6 +55,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         QMUIStatusBarHelper.setStatusBarLightMode(this);
+        EventBus.getDefault().register(this);
     }
 
     @Override
@@ -103,7 +110,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     public void initData() {
         super.initData();
         requestPermission();
-        connectIM();
     }
 
     /**
@@ -174,6 +180,14 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     }
 
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void loadEventBus(LoginStatusEvent event) {
+        if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
+            IMManager.getInstance().logout();
+            LogUtils.i("pq", "LoginStatusEvent:logout");
+        }
+    }
+
     @Override
     public void getUserInfoSuccess(UserInfo userInfo) {
         if (isFinishing() || isDestroyed()) {
@@ -181,6 +195,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         }
         //存储userInfo信息
         UserHelper.saveUserInfo(userInfo);
+        connectIM();
     }
 
     @Override
@@ -205,4 +220,10 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
             }
         }
     }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
 }

+ 0 - 1
student/src/main/java/com/cooleshow/student/ui/mine/SettingActivity.java

@@ -62,7 +62,6 @@ public class SettingActivity extends BaseMVPActivity<ActivitySettingBinding, Set
                 UserHelper.saveUserToken("");
                 ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN)
                         .withString(UserConstants.PHONE_NUM_KEY, UserHelper.getUserPhone())
-                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)
                         .navigation();
                 break;
             case R.id.cl_feedback:

+ 1 - 0
teacher/src/main/AndroidManifest.xml

@@ -62,6 +62,7 @@
             android:name=".ui.main.MainActivity"
             android:configChanges="orientation|screenSize|keyboardHidden"
             android:exported="false"
+            android:launchMode="singleTask"
             android:screenOrientation="portrait" />
         <activity
             android:name=".ui.splash.GuideActivity"

+ 4 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/main/CourseTableFragment.kt

@@ -120,6 +120,7 @@ class CourseTableFragment :
                     //陪练课
                     OpenChatHelper.goChat(context, data.userId, data.name)
                 } else {
+                    //琴房课或者直播课
                     OpenChatHelper.goGroupChat(context, data.imGroupId, data.name)
                 }
             }
@@ -281,11 +282,13 @@ class CourseTableFragment :
         mViewBinding.refreshLayout.finishRefresh()
         if (datas?.size != 0) {
             //更新日历表,显示有课字样
+            mViewBinding.calendarView.clearSchemeDate()
             var maps = CourseHelper.filterDate(datas);
             if (maps != null && maps.isNotEmpty()) {
-                mViewBinding.calendarView.clearSchemeDate()
                 mViewBinding.calendarView.addSchemeDate(maps)
             }
+        } else {
+            mViewBinding.calendarView.clearSchemeDate()
         }
     }
 

+ 25 - 4
teacher/src/main/java/com/cooleshow/teacher/ui/main/MainActivity.java

@@ -7,10 +7,11 @@ import android.view.MenuItem;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.common.im.ui.MessageFragment;
+import com.cooleshow.base.constanst.LoginStatusConstants;
+import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.LogUtils;
-import com.cooleshow.base.utils.helper.DialogHelper;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.HomePageAdapter;
@@ -24,6 +25,11 @@ import com.daya.live_teaching.common.ResultCallback;
 import com.daya.live_teaching.im.IMManager;
 import com.google.android.material.bottomnavigation.BottomNavigationView;
 import com.tbruyelle.rxpermissions3.RxPermissions;
+import com.tencent.open.im.IM;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
 
@@ -48,6 +54,7 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         QMUIStatusBarHelper.setStatusBarLightMode(this);
+        EventBus.getDefault().register(this);
     }
 
     @NonNull
@@ -105,7 +112,6 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     public void initData() {
         super.initData();
         requestPermission();
-        connectIM();
     }
 
     /**
@@ -128,15 +134,16 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
             if (!TextUtils.isEmpty(userIMToken)) {
                 RongIMClient.ConnectionStatusListener.ConnectionStatus currentConnectionStatus = RongIMClient.getInstance().getCurrentConnectionStatus();
                 if (currentConnectionStatus != RongIMClient.ConnectionStatusListener.ConnectionStatus.CONNECTED) {
+                    LogUtils.i("pq", "im connect:" + userIMToken);
                     IMManager.getInstance().login(userIMToken, new ResultCallback<String>() {
                         @Override
                         public void onSuccess(String s) {
-                            LogUtils.i("im connect success:" + s);
+                            LogUtils.i("pq", "im connect success:" + s);
                         }
 
                         @Override
                         public void onFail(int errorCode, String errorStr) {
-                            LogUtils.i("im connect fail:" + errorStr + "-errorCode:" + errorCode);
+                            LogUtils.i("pq", "im connect fail:" + errorStr + "-errorCode:" + errorCode);
                         }
                     });
                 }
@@ -197,7 +204,15 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
         }
         //存储userInfo信息
         UserHelper.saveUserInfo(userInfo);
+        connectIM();
+    }
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void loadEventBus(LoginStatusEvent event) {
+        if (event != null && event.eventCode == LoginStatusConstants.LOGIN_OUT) {
+            IMManager.getInstance().logout();
+            LogUtils.i("pq", "LoginStatusEvent:logout");
+        }
     }
 
     @Override
@@ -217,4 +232,10 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
     protected MainPresenter createPresenter() {
         return new MainPresenter();
     }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
 }

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/SettingActivity.java

@@ -62,7 +62,7 @@ public class SettingActivity extends BaseMVPActivity<ActivitySettingBinding, Set
                 UserHelper.saveUserToken("");
                 ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN)
                         .withString(UserConstants.PHONE_NUM_KEY, UserHelper.getUserPhone())
-                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)
+//                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)
                         .navigation();
                 break;
             case R.id.cl_feedback:

+ 6 - 0
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/VerifyCodeLoginActivity.java

@@ -14,7 +14,9 @@ import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.common.AppManager;
 import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.common.WebConstants;
+import com.cooleshow.base.constanst.LoginStatusConstants;
 import com.cooleshow.base.data.net.CommonParamsHelper;
+import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.SpannableStringUtils;
@@ -27,6 +29,8 @@ import com.cooleshow.usercenter.helper.PhoneCheckHelper;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.cooleshow.usercenter.presenter.VerifyLoginPresenter;
 
+import org.greenrobot.eventbus.EventBus;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
@@ -72,6 +76,8 @@ public class VerifyCodeLoginActivity extends BaseMVPActivity<ActivityVerifyCodeL
         super.initData();
         UserHelper.clearUserInfo();
         CommonParamsHelper.getInstance().clear();
+        //登出
+        EventBus.getDefault().post(new LoginStatusEvent(LoginStatusConstants.LOGIN_OUT));
     }
 
     @Override