2023-10-25 18:31:09 +08:00

131 lines
5.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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