Explorar el Código

发送群消息

master
徐勤民 hace 1 año
padre
commit
5d1be59ed2
Se han modificado 6 ficheros con 131 adiciones y 19 borrados
  1. +1
    -2
      SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java
  2. +3
    -0
      app/src/main/AndroidManifest.xml
  3. +27
    -12
      app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/ChatActivity.java
  4. +7
    -5
      app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/FriendsActivity.java
  5. +71
    -0
      app/src/main/java/cn/org/bjca/trust/android/imdemo/ui/GroupsActivity.java
  6. +22
    -0
      app/src/main/java/cn/org/bjca/trust/android/imdemo/vm/GroupVM.java

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

@@ -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 Ver fichero

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


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

@@ -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 Ver fichero

@@ -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 Ver fichero

@@ -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 Ver fichero

@@ -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);
}
}

Cargando…
Cancelar
Guardar