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 providerManager = RongConfigCenter.conversationListConfig().getProviderManager(); providerManager.replaceProvider(PrivateConversationProvider.class, new CustomConversationProvider()); ArrayList> 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()); } }