131 lines
5.8 KiB
Java
131 lines
5.8 KiB
Java
package com.shayu.onetoone;
|
||
|
||
|
||
import android.os.Handler;
|
||
import android.os.Looper;
|
||
import android.os.Process;
|
||
import android.util.Log;
|
||
|
||
import com.alibaba.android.arouter.launcher.ARouter;
|
||
import com.facebook.FacebookSdk;
|
||
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
|
||
import com.shayu.onetoone.activity.message.ChatActivity;
|
||
import com.shayu.onetoone.bean.MessageChatAuthContent;
|
||
import com.shayu.onetoone.bean.MessageChatGiftContent;
|
||
import com.shayu.onetoone.bean.MessageChatTipsContent;
|
||
import com.shayu.onetoone.manager.CallClientManager;
|
||
import com.shayu.onetoone.manager.CommandMessageManager;
|
||
import com.shayu.onetoone.provider.CustomConversationProvider;
|
||
import com.shayu.onetoone.provider.MessageChatAutoItemProvider;
|
||
import com.shayu.onetoone.provider.MessageChatReceiveGiftItemProvider;
|
||
import com.shayu.onetoone.provider.MessageChatTipsItemProvider;
|
||
import com.shayu.onetoone.provider.OTOCallEndMessageItemProvider;
|
||
import com.shayu.onetoone.utils.NeverCrashUtils;
|
||
import com.yunbao.common.BuildConfig;
|
||
import com.yunbao.common.CommonAppContext;
|
||
import com.yunbao.common.manager.IMLoginManager;
|
||
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
|
||
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
|
||
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
|
||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||
import com.yunbao.common.utils.AppManager;
|
||
import com.yunbao.common.utils.L;
|
||
import com.yunbao.common.utils.SpUtil;
|
||
import com.yunbao.common.utils.ToastUtil;
|
||
|
||
import java.util.ArrayList;
|
||
|
||
import io.rong.callkit.CallEndMessageItemProvider;
|
||
import io.rong.imkit.RongIM;
|
||
import io.rong.imkit.config.RongConfigCenter;
|
||
import io.rong.imkit.conversationlist.model.BaseUiConversation;
|
||
import io.rong.imkit.conversationlist.provider.PrivateConversationProvider;
|
||
import io.rong.imkit.utils.RouteUtils;
|
||
import io.rong.imkit.widget.adapter.ProviderManager;
|
||
import io.rong.imlib.IMLibRTCClient;
|
||
import io.rong.imlib.RongIMClient;
|
||
import io.rong.imlib.model.Message;
|
||
import io.rong.imlib.model.MessageContent;
|
||
import io.rong.message.CommandMessage;
|
||
import io.rong.message.TextMessage;
|
||
|
||
public class AppContext extends CommonAppContext {
|
||
@Override
|
||
public void onCreate() {
|
||
super.onCreate();
|
||
L.setDeBug(true);
|
||
SpUtil.getInstance();
|
||
NeverCrashUtils.getInstance()
|
||
.setDebugMode(BuildConfig.DEBUG)
|
||
.setMainCrashHandler((t, e) -> {
|
||
Log.e("ApplicationError", "主线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
||
e.printStackTrace();
|
||
AppManager.runDebugCode(() -> {
|
||
//闪退后finish所有Activity并且杀死进程
|
||
Process.killProcess(Process.myPid());
|
||
System.exit(0);
|
||
new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||
throw new RuntimeException(e);
|
||
}, 100);
|
||
});
|
||
|
||
})
|
||
.setUncaughtCrashHandler((t, e) -> {
|
||
Log.e("ApplicationError", "子线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
||
e.printStackTrace();
|
||
})
|
||
.register(this);
|
||
ARouter.openLog();
|
||
ARouter.openDebug();
|
||
ARouter.printStackTrace();
|
||
ARouter.init(this);
|
||
|
||
|
||
ProviderManager<BaseUiConversation> providerManager = RongConfigCenter.conversationListConfig().getProviderManager();
|
||
providerManager.replaceProvider(PrivateConversationProvider.class, new CustomConversationProvider());
|
||
|
||
|
||
ArrayList<Class<? extends MessageContent>> myMessages = new ArrayList<>();
|
||
myMessages.add(MessageChatTipsContent.class);
|
||
myMessages.add(MessageChatGiftContent.class);
|
||
myMessages.add(MessageChatAuthContent.class);
|
||
RongIMClient.registerMessageType(myMessages);
|
||
|
||
RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext()));
|
||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatTipsItemProvider(getApplicationContext()));
|
||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatReceiveGiftItemProvider(getApplicationContext()));
|
||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatAutoItemProvider(getApplicationContext()));
|
||
|
||
RongcloudIMManager.initRongIM(this);
|
||
|
||
RongIM.setConnectionStatusListener(new RongIMClient.ConnectionStatusListener() {
|
||
@Override
|
||
public void onChanged(ConnectionStatus status) {
|
||
Log.i("融云", "onChanged: " + status.getMessage());
|
||
}
|
||
});
|
||
|
||
|
||
|
||
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
|
||
@Override
|
||
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
|
||
System.out.println("初始化IM消息:" + message.getContent());
|
||
if (message.getContent() instanceof TextMessage) {
|
||
TextMessage content = (TextMessage) message.getContent();
|
||
} else if (message.getContent() instanceof CommandMessage) {
|
||
CommandMessageManager.getInstance().onMessage((CommandMessage) message.getContent());
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
RouteUtils.registerActivity(RouteUtils.RongActivityType.ConversationActivity, ChatActivity.class);
|
||
IMLoginManager.get(this).setLanguage(false);
|
||
|
||
|
||
RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class,new OTOCallEndMessageItemProvider());
|
||
|
||
}
|
||
|
||
}
|