11111
This commit is contained in:
@@ -13,6 +13,8 @@ import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.base.BaseCacheManager;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -99,11 +101,15 @@ public class IMLoginManager extends BaseCacheManager {
|
||||
* 退出登录
|
||||
*/
|
||||
public void logout() {
|
||||
//添加融云连接状态监听
|
||||
RongcloudIMManager.removeIMStatusListener();
|
||||
//删除用户登录信息
|
||||
deleteByKey(KEY_USER_INFO);
|
||||
//用户对象置空
|
||||
userInfo = null;
|
||||
manager = null;
|
||||
RongcloudIMManager.logoutIM();
|
||||
MessageIMManager.get(context).logout();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.http.HttpClient;
|
||||
import com.yunbao.common.manager.base.BaseCacheManager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -38,6 +39,9 @@ public class InstructorRemarkManager extends BaseCacheManager {
|
||||
instructorRemarkMap = JSON.parseObject(getString(KEY_INSTRUCTOR_REMARK), new TypeReference<Map<String, String>>() {
|
||||
});
|
||||
}
|
||||
if (instructorRemarkMap == null) {
|
||||
instructorRemarkMap = new HashMap<>();
|
||||
}
|
||||
return instructorRemarkMap;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,15 @@ public class MessageIMManager {
|
||||
number = 0;
|
||||
}
|
||||
|
||||
public void logout() {
|
||||
number = 0;
|
||||
imNumber = 0;
|
||||
systemNumber = 0;
|
||||
//发送通知
|
||||
unreadMessagesHandler.post(essagesRunnable);
|
||||
manager = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单利
|
||||
*/
|
||||
@@ -85,6 +94,8 @@ public class MessageIMManager {
|
||||
try {
|
||||
if (!TextUtils.isEmpty(number) && Integer.parseInt(number) > 0) {
|
||||
systemNumber = Integer.parseInt(number);
|
||||
}else {
|
||||
systemNumber = 0;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
systemNumber = 0;
|
||||
@@ -125,6 +136,8 @@ public class MessageIMManager {
|
||||
try {
|
||||
if (!TextUtils.isEmpty(number) && Integer.parseInt(number) > 0) {
|
||||
systemNumber = Integer.parseInt(number);
|
||||
}else {
|
||||
systemNumber = 0;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
systemNumber = 0;
|
||||
@@ -148,7 +161,7 @@ public class MessageIMManager {
|
||||
//整合未读消息数目并且发送出去
|
||||
private final Runnable essagesRunnable = () -> {
|
||||
number = imNumber + systemNumber;
|
||||
EventBus.getDefault().postSticky(new MessageIMEvent().setNumber(number));
|
||||
EventBus.getDefault().post(new MessageIMEvent().setNumber(number));
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -10,13 +10,19 @@ import androidx.annotation.NonNull;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import cn.rongcloud.rtc.api.RCRTCEngine;
|
||||
import io.rong.imkit.GlideKitImageEngine;
|
||||
import io.rong.imkit.IMCenter;
|
||||
import io.rong.imkit.RongIM;
|
||||
import io.rong.imkit.config.RongConfigCenter;
|
||||
import io.rong.imlib.RongCoreClient;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.Message;
|
||||
@@ -107,7 +113,8 @@ public class RongcloudIMManager {
|
||||
public void onSuccess(String s) {
|
||||
//连接成功,如果 onDatabaseOpened() 时没有页面跳转,也可在此时进行跳转。
|
||||
Log.e(CLASSNAME, "onSuccess:" + s);
|
||||
|
||||
//添加融云连接状态监听
|
||||
RongcloudIMManager.setIMStatusListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -145,6 +152,10 @@ public class RongcloudIMManager {
|
||||
RongIM.setConnectionStatusListener(connectionStatusListener);
|
||||
}
|
||||
|
||||
public static void removeIMStatusListener() {
|
||||
RongIM.setConnectionStatusListener(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听 IM 连接状态,可根据连接状态进行不同业务处理
|
||||
*/
|
||||
@@ -159,6 +170,7 @@ public class RongcloudIMManager {
|
||||
break;
|
||||
//用户账号在其它设备登录,此设备被踢下线
|
||||
case KICKED_OFFLINE_BY_OTHER_CLIENT:
|
||||
// EventBus.getDefault().post(new BaseModel());
|
||||
break;
|
||||
//连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连
|
||||
case SUSPEND:
|
||||
|
||||
Reference in New Issue
Block a user