Ver código fonte

修复部分问题

Pq 3 anos atrás
pai
commit
593e41addc

+ 1 - 0
rong_im/kit/src/main/java/io/rong/imkit/utils/helper/OpenChatHelper.java

@@ -10,6 +10,7 @@ import io.rong.imkit.RongIM;
  * Author by pq, Date on 2022/7/4.
  */
 public class OpenChatHelper {
+    public static final String SINGLE_CHAT="single";//单聊
 
     public static void goChat(Context context,String groupId, String groupName) {
         RongIM.getInstance().startPrivateChat(context, groupId, groupName);

+ 12 - 0
student/src/main/java/com/cooleshow/student/ui/message/MessageBoxActivity.java

@@ -1,6 +1,7 @@
 package com.cooleshow.student.ui.message;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -14,10 +15,13 @@ import com.alibaba.android.arouter.facade.annotation.Route;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.bean.RouteBean;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 
+import com.cooleshow.base.utils.GsonUtils;
+import com.cooleshow.base.utils.JumpUtils;
 import com.cooleshow.student.R;
 import com.cooleshow.student.adapter.MessageBoxAdapter;
 import com.cooleshow.student.bean.CountOfUnreadBean;
@@ -132,6 +136,14 @@ public class MessageBoxActivity extends BaseMVPActivity<ActivityMessageBoxBindin
                     if (item.readStatus == 0) {
                         presenter.setCurrentRead(item.id);
                     }
+                    if (!TextUtils.isEmpty(item.memo)) {
+                        try {
+                            RouteBean routeBean = GsonUtils.fromJson(item.memo, RouteBean.class);
+                            JumpUtils.jump(routeBean);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
                 }
             }
         });

+ 9 - 1
student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java

@@ -110,6 +110,7 @@ import java.util.Map;
 import io.reactivex.rxjava3.core.Observer;
 import io.reactivex.rxjava3.disposables.Disposable;
 import io.reactivex.rxjava3.schedulers.Schedulers;
+import io.rong.imkit.utils.helper.OpenChatHelper;
 import okhttp3.ResponseBody;
 
 @Route(path = RouterPath.WebCenter.ACTIVITY_HTML)
@@ -543,7 +544,14 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
 
     @Override
     public void joinChatGroup(String type, String id) {
-
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        if (TextUtils.equals(OpenChatHelper.SINGLE_CHAT, type)) {
+            OpenChatHelper.goChat(this, id, "");
+        } else {
+            OpenChatHelper.goGroupChat(this, id, "");
+        }
     }
 
     /**

+ 3 - 3
student/src/main/java/com/cooleshow/student/widgets/helper/JsInterfaceUtils.java

@@ -215,14 +215,14 @@ public class JsInterfaceUtils extends Object {
                 if ("joinLiveRoom".equals(api)) {
                     JSONObject content = jsonObject.getJSONObject("content");
                     if (onListener != null) {
-                        onListener.joinLiveRoom(content.getString("roomId"), content.getString("teacherId"));
+                        onListener.joinLiveRoom(content.optString("roomId"), content.optString("teacherId"));
                     }
                 }
                 //进入聊天
                 if ("joinChatGroup".equals(api)) {
                     JSONObject content = jsonObject.getJSONObject("content");
                     if (onListener != null) {
-                        onListener.joinChatGroup(content.getString("type"), content.getString("id"));
+                        onListener.joinChatGroup(content.optString("type"), content.optString("id"));
                     }
                 }
                 //跳转地址页面
@@ -234,7 +234,7 @@ public class JsInterfaceUtils extends Object {
                 if ("paymentOrder".equals(api)) {
                     JSONObject content = jsonObject.getJSONObject("content");
                     if (onListener != null) {
-                        onListener.paymentOrder(content.getString("orderNo"), content.getString("payChannel"), content.getString("payInfo"));
+                        onListener.paymentOrder(content.optString("orderNo"), content.optString("payChannel"), content.getString("payInfo"));
                     }
                 }
                 if ("savePicture".equalsIgnoreCase(api)) {

+ 18 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/message/MessageBoxActivity.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.ui.message;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -14,9 +15,12 @@ import com.alibaba.android.arouter.facade.annotation.Route;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
 import com.chad.library.adapter.base.listener.OnLoadMoreListener;
+import com.cooleshow.base.bean.RouteBean;
 import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.GsonUtils;
+import com.cooleshow.base.utils.JumpUtils;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.adapter.MessageBoxAdapter;
 import com.cooleshow.teacher.bean.CountOfUnreadBean;
@@ -24,9 +28,12 @@ import com.cooleshow.teacher.bean.SystemMessageBean;
 import com.cooleshow.teacher.contract.MessageBoxContract;
 import com.cooleshow.teacher.databinding.ActivityMessageBoxBinding;
 import com.cooleshow.teacher.presenter.message.MessageBoxPresenter;
+import com.google.gson.Gson;
 import com.scwang.smart.refresh.layout.api.RefreshLayout;
 import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
 
+import org.json.JSONObject;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -47,7 +54,7 @@ public class MessageBoxActivity extends BaseMVPActivity<ActivityMessageBoxBindin
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.cl_all:
-                if (group.equals("")){
+                if (group.equals("")) {
                     break;
                 }
                 group = "";
@@ -57,7 +64,7 @@ public class MessageBoxActivity extends BaseMVPActivity<ActivityMessageBoxBindin
                 queryList(true);
                 break;
             case R.id.cl_course:
-                if (group.equals("COURSE")){
+                if (group.equals("COURSE")) {
                     break;
                 }
                 group = "COURSE";
@@ -67,7 +74,7 @@ public class MessageBoxActivity extends BaseMVPActivity<ActivityMessageBoxBindin
                 queryList(true);
                 break;
             case R.id.cl_system:
-                if (group.equals("SYSTEM")){
+                if (group.equals("SYSTEM")) {
                     break;
                 }
                 group = "SYSTEM";
@@ -131,6 +138,14 @@ public class MessageBoxActivity extends BaseMVPActivity<ActivityMessageBoxBindin
                     if (item.readStatus == 0) {
                         presenter.setCurrentRead(item.id);
                     }
+                    if (!TextUtils.isEmpty(item.memo)) {
+                        try {
+                            RouteBean routeBean = GsonUtils.fromJson(item.memo, RouteBean.class);
+                            JumpUtils.jump(routeBean);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
                 }
 
             }

+ 9 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java

@@ -109,6 +109,7 @@ import java.util.Map;
 import io.reactivex.rxjava3.core.Observer;
 import io.reactivex.rxjava3.disposables.Disposable;
 import io.reactivex.rxjava3.schedulers.Schedulers;
+import io.rong.imkit.utils.helper.OpenChatHelper;
 import okhttp3.ResponseBody;
 
 @Route(path = RouterPath.WebCenter.ACTIVITY_HTML)
@@ -542,7 +543,14 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
 
     @Override
     public void joinChatGroup(String type, String id) {
-
+        if (isFinishing() || isDestroyed()) {
+            return;
+        }
+        if (TextUtils.equals(OpenChatHelper.SINGLE_CHAT, type)) {
+            OpenChatHelper.goChat(this, id, "");
+        } else {
+            OpenChatHelper.goGroupChat(this, id, "");
+        }
     }
 
     public void selectAddress(String addressJson) {