This commit is contained in:
18401019693
2022-07-21 11:24:15 +08:00
parent 42138777e3
commit e1dbc9d38c
64 changed files with 4785 additions and 915 deletions

View File

@@ -26,20 +26,15 @@ import com.tencent.imsdk.v2.V2TIMUserInfo;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.L;
import com.yunbao.live.socket.SocketRyClient;
import com.yunbao.live.utils.LiveImDeletUtil;
import java.io.File;
import java.io.IOException;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.message.TextMessage;
import static com.adjust.sdk.AdjustConfig.ENVIRONMENT_PRODUCTION;
import static com.yunbao.live.socket.SocketClient.mSocketHandler;
//import cn.tillusory.sdk.TiSDK;
@@ -151,85 +146,12 @@ public class AppContext extends CommonAppContext {
//初始化 AndroidUtilCode
Utils.init(this);
liveImDeletUtil = new LiveImDeletUtil();
// 融云
RongIMClient.getInstance().setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
/**
* 接收实时或者离线消息。
* 注意:
* 1. 针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。
* 2. hasPackage 标识是否还有剩余的消息包left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。
* 如何判断离线消息收完:
* 1. hasPackage 和 left 都为 0
* 2. hasPackage 为 0 标识当前正在接收最后一包200条消息left 为 0 标识最后一包的最后一条消息也已接收完毕。
*
* @param message 接收到的消息对象
* @param left 每个数据包数据逐条上抛后,还剩余的条数
* @param hasPackage 是否在服务端还存在未下发的消息包
* @param offline 消息是否离线消息
* @return 是否处理消息。 如果 App 处理了此消息,返回 true; 否则返回 false 由 SDK 处理。
*/
@Override
public boolean onReceived(io.rong.imlib.model.Message message, int left, boolean hasPackage, boolean offline) {
Log.e("rytest", message.getContent() + "");
if (message.getConversationType() == Conversation.ConversationType.CHATROOM) {
//群聊
Message msg = Message.obtain();
msg.what = Constants.SOCKET_WHAT_BROADCAST;
if (!"".equals(message.getContent()) && message.getContent() != null) {
if (message.getObjectName().equals("RC:TxtMsg")) {
TextMessage content = (TextMessage) message.getContent();
msg.obj = content.getContent();
if (SocketRyClient.mSocketHandler != null && Ingroup == 1) {
SocketRyClient.mSocketHandler.sendMessage(msg);
}
TextMessage rongMsg = (TextMessage) message.getContent();
String firstIndexRM = "";
if (rongMsg.getContent().length() > 4) {
firstIndexRM = rongMsg.getContent().substring(0, 5);
}
String firstIndexRM2 = "";
if (rongMsg.getContent().length() > 9) {
firstIndexRM2 = rongMsg.getContent().substring(0, 10);
}
if ("{\"msg".equals(firstIndexRM) || "{\"retcode\"".equals(firstIndexRM2)) {
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
}
}
}
} else {
//私聊
Message msg = Message.obtain();
msg.what = Constants.SOCKET_WHAT_BROADCAST;
if (!"".equals(message.getContent()) && message.getContent() != null) {
if (message.getObjectName().equals("RC:TxtMsg")) {
TextMessage content = (TextMessage) message.getContent();
msg.obj = content.getContent();
if (content.getContent().contains("_method_")) {
if (SocketRyClient.mSocketHandler != null) {
CommonAppContext.Ingroup = 1;
SocketRyClient.mSocketHandler.sendMessage(msg);
}
}
TextMessage rongMsg = (TextMessage) message.getContent();
String firstIndexRM = "";
if (rongMsg.getContent().length() > 4) {
firstIndexRM = rongMsg.getContent().substring(0, 5);
}
String firstIndexRM2 = "";
if (rongMsg.getContent().length() > 9) {
firstIndexRM2 = rongMsg.getContent().substring(0, 10);
}
if ("{\"msg".equals(firstIndexRM) || "{\"retcode\"".equals(firstIndexRM2)) {
liveImDeletUtil.deleteMessages(message.getTargetId(), message.getMessageId());
}
}
}
}
return false;
}
//
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener();
//初始化融云
RongcloudIMManager.initRongIM(this);
//添加融云连接状态监听
RongcloudIMManager.setIMStatusListener();
});
@@ -275,4 +197,9 @@ public class AppContext extends CommonAppContext {
return false;
}
@Override
public void onTerminate() {
RongcloudIMManager.removeRongcloudIMOnReceiveMessageListener();
super.onTerminate();
}
}