diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java index c2c0ac2..4766b80 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java +++ b/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); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bb9a0d8..a10c7ee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,9 @@ + diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java index fcd5ae0..21b7127 100644 --- a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java +++ b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java @@ -23,22 +23,37 @@ public class ChatActivity extends BaseActivity { 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("发送消息成功"); - } + 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); - } - }); + @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); + } + }); + } } }); } diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java index 7e257a6..ea31675 100644 --- a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java +++ b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java @@ -25,10 +25,11 @@ public class FriendsActivity extends BaseListActivity { super.initView(savedInstanceState); setTitleText("好友列表"); setConfirmText("添加好友", v -> { - SZYXImSdk.getGroupManager().create(new ArrayList() {{ - add("13666666666"); - add("13811111111"); - } + SZYXImSdk.getGroupManager().create(new ArrayList() { + { + add("13666666666"); + add("13811111111"); + } }, new IMSDKCallback() { @Override public void success() { @@ -47,7 +48,8 @@ public class FriendsActivity extends BaseListActivity { @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()); diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/GroupsActivity.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/GroupsActivity.java new file mode 100644 index 0000000..5752f7f --- /dev/null +++ b/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 { + @Override + public void initView(Bundle savedInstanceState) { + super.initView(savedInstanceState); + setTitleText("群组列表"); + setConfirmText("创建群组", v -> { + SZYXImSdk.getGroupManager().create(new ArrayList() { + { + 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 adapter() { + return adapter; + } + + private final CommonPagedAdapter adapter = new CommonPagedAdapter(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()); + } + + }; + +} diff --git a/app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/GroupVM.java b/app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/GroupVM.java new file mode 100644 index 0000000..213a2b0 --- /dev/null +++ b/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 { + + private final ArrayList list = new ArrayList() { + { + add(new UserItem("ce91ad9b-ba88-4e21-a868-d8fb0842a55f", "Android应用", "https://i.buyiju.com/img/zidian2/766.jpg", "男")); + } + }; + + @Override + public void loadData(int page, Response onResponse) { + onResponse.onResponse(list); + } +}