xuqm пре 1 година
родитељ
комит
5d1be59ed2

+ 1 - 2
SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java

@@ -27,7 +27,6 @@ import cn.org.bjca.trust.android.lib.im.common.ToolsHelper;
 import cn.org.bjca.trust.android.lib.im.common.json.GsonImplHelp;
 import cn.org.bjca.trust.android.lib.im.enums.MsgType;
 import cn.org.bjca.trust.android.lib.im.enums.PacketType;
-import cn.org.bjca.trust.android.lib.im.http.HttpResult;
 import cn.org.bjca.trust.android.lib.im.im.bean.PacketMessage;
 import cn.org.bjca.trust.android.lib.im.im.kit.RequestImCallback;
 import cn.org.bjca.trust.android.lib.im.im.msg.ConnectMessage;
@@ -278,7 +277,7 @@ public class ImManager implements IMInterface {
 
     @Override
     public void sendSZYXMessage(SZYXMessage message, IMSDKCallback callback) {
-        if (ToolsHelper.isNull(message.getToClientId())) {
+        if (ToolsHelper.isNull(message.getToClientId()) && ToolsHelper.isNull(message.getGroupID())) {
             if (null != callback) callback.failed(202, "没有消息接收者[toClientId]");
             for (MsgListener listener : msgListeners) {
                 listener.statusChange(message.getMsgId(), -1);

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -31,6 +31,9 @@
         <activity
             android:name=".ui.MainActivity"
             android:exported="true" />
+        <activity
+            android:name=".ui.GroupsActivity"
+            android:exported="true" />
         <activity
             android:name=".ui.FriendsActivity"
             android:exported="true" />

+ 27 - 12
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java

@@ -23,22 +23,37 @@ public class ChatActivity extends BaseActivity<ActivityChatBinding> {
         super.initView(savedInstanceState);
         String userId = getIntent().getStringExtra("userId");
         String userName = getIntent().getStringExtra("userName");
-        setTitleText(userName + "(" + userId + ")");
+        boolean isGroup = getIntent().getBooleanExtra("isGroup", false);
+        setTitleText(userName + "(" + (isGroup ? "群组" : userId) + ")");
         getBaseBinding().baseToolbar.getToolbarMenu().setVisibility(View.VISIBLE);
         getBinding().btnSend.setOnClickListener(v -> {
             String msg = getBinding().et.getText().toString();
             if (!ToolsHelper.isNull(msg)) {
-                SZYXImSdk.getMessageManager().sendMsgForTextToC(userId, msg, new IMSDKCallback() {
-                    @Override
-                    public void success() {
-                        ToolsHelper.showMessage("发送消息成功");
-                    }
-
-                    @Override
-                    public void failed(int code, String error) {
-                        ToolsHelper.showMessage("发送消息失败" + error);
-                    }
-                });
+                if (isGroup) {
+                    SZYXImSdk.getMessageManager().sendMsgForTextToG(userId, msg, new IMSDKCallback() {
+                        @Override
+                        public void success() {
+                            ToolsHelper.showMessage("发送消息成功");
+                        }
+
+                        @Override
+                        public void failed(int code, String error) {
+                            ToolsHelper.showMessage("发送消息失败" + error);
+                        }
+                    });
+                } else {
+                    SZYXImSdk.getMessageManager().sendMsgForTextToC(userId, msg, new IMSDKCallback() {
+                        @Override
+                        public void success() {
+                            ToolsHelper.showMessage("发送消息成功");
+                        }
+
+                        @Override
+                        public void failed(int code, String error) {
+                            ToolsHelper.showMessage("发送消息失败" + error);
+                        }
+                    });
+                }
             }
         });
     }

+ 7 - 5
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java

@@ -25,10 +25,11 @@ public class FriendsActivity extends BaseListActivity<UserItem, FriendsVM> {
         super.initView(savedInstanceState);
         setTitleText("好友列表");
         setConfirmText("添加好友", v -> {
-            SZYXImSdk.getGroupManager().create(new ArrayList<String>() {{
-                add("13666666666");
-                add("13811111111");
-            }
+            SZYXImSdk.getGroupManager().create(new ArrayList<String>() {
+                {
+                    add("13666666666");
+                    add("13811111111");
+                }
             }, new IMSDKCallback() {
                 @Override
                 public void success() {
@@ -47,7 +48,8 @@ public class FriendsActivity extends BaseListActivity<UserItem, FriendsVM> {
     @Override
     public void itemClicked(View view, UserItem item, int position) {
         if (item.getUserId().equals("001")) {
-
+            Intent intent = new Intent(mContext, GroupsActivity.class);
+            startActivity(intent);
         } else {
             Intent intent = new Intent(mContext, ChatActivity.class);
             intent.putExtra("userId", item.getUserId());

+ 71 - 0
app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/GroupsActivity.java

@@ -0,0 +1,71 @@
+package cn.org.bjca.trust.android.imdemo.ui;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+import com.xuqm.base.adapter.BasePagedAdapter;
+import com.xuqm.base.adapter.CommonPagedAdapter;
+import com.xuqm.base.adapter.ViewHolder;
+import com.xuqm.base.common.LogHelper;
+import com.xuqm.base.ui.BaseListActivity;
+
+import java.util.ArrayList;
+
+import cn.org.bjca.trust.android.imdemo.R;
+import cn.org.bjca.trust.android.imdemo.data.item.UserItem;
+import cn.org.bjca.trust.android.imdemo.vm.GroupVM;
+import cn.org.bjca.trust.android.lib.im.SZYXImSdk;
+import cn.org.bjca.trust.android.lib.im.common.ToolsHelper;
+import cn.org.bjca.trust.android.lib.im.kit.IMSDKCallback;
+
+public class GroupsActivity extends BaseListActivity<UserItem, GroupVM> {
+    @Override
+    public void initView(Bundle savedInstanceState) {
+        super.initView(savedInstanceState);
+        setTitleText("群组列表");
+        setConfirmText("创建群组", v -> {
+            SZYXImSdk.getGroupManager().create(new ArrayList<String>() {
+                {
+                    add("13666666666");
+                    add("13811111111");
+                }
+            }, new IMSDKCallback() {
+                @Override
+                public void success() {
+                    ToolsHelper.showMessage(mContext, "创建成功");
+                }
+
+                @Override
+                public void failed(int code, String error) {
+                    ToolsHelper.showMessage(mContext, "创建失败" + code + error);
+                    LogHelper.e("=====>", "创建失败" + code + error);
+                }
+            });
+        });
+    }
+
+    @Override
+    public void itemClicked(View view, UserItem item, int position) {
+        Intent intent = new Intent(mContext, ChatActivity.class);
+        intent.putExtra("userId", item.getUserId());
+        intent.putExtra("userName", item.getNickName());
+        intent.putExtra("isGroup", true);
+        startActivity(intent);
+    }
+
+    @Override
+    public BasePagedAdapter<UserItem> adapter() {
+        return adapter;
+    }
+
+    private final CommonPagedAdapter<UserItem> adapter = new CommonPagedAdapter<UserItem>(R.layout.item_friends) {
+        @Override
+        protected void convert(ViewHolder holder, UserItem item, int position) {
+            holder.setText(R.id.title, item.getNickName());
+            holder.setImage(R.id.icon, item.getFaceUrl());
+        }
+
+    };
+
+}

+ 22 - 0
app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/GroupVM.java

@@ -0,0 +1,22 @@
+package cn.org.bjca.trust.android.imdemo.vm;
+
+import com.xuqm.base.viewmodel.BaseListViewModel;
+import com.xuqm.base.viewmodel.callback.Response;
+
+import java.util.ArrayList;
+
+import cn.org.bjca.trust.android.imdemo.data.item.UserItem;
+
+public class GroupVM extends BaseListViewModel<UserItem> {
+
+    private final ArrayList<UserItem> list = new ArrayList<UserItem>() {
+        {
+            add(new UserItem("ce91ad9b-ba88-4e21-a868-d8fb0842a55f", "Android应用", "https://i.buyiju.com/img/zidian2/766.jpg", "男"));
+        }
+    };
+
+    @Override
+    public void loadData(int page, Response<UserItem> onResponse) {
+        onResponse.onResponse(list);
+    }
+}