2022-07-18 15:31:45 +08:00
|
|
|
|
package com.shayu.phonelive;
|
|
|
|
|
|
|
|
|
|
import android.app.Activity;
|
|
|
|
|
import android.app.ActivityManager;
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
import android.net.http.HttpResponseCache;
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
|
import android.os.Message;
|
2022-08-22 14:31:30 +08:00
|
|
|
|
import android.text.TextUtils;
|
2022-07-18 15:31:45 +08:00
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
|
|
|
|
|
|
import com.adjust.sdk.Adjust;
|
|
|
|
|
import com.adjust.sdk.AdjustConfig;
|
|
|
|
|
import com.adjust.sdk.AdjustEvent;
|
|
|
|
|
import com.adjust.sdk.LogLevel;
|
|
|
|
|
import com.alibaba.android.arouter.launcher.ARouter;
|
|
|
|
|
import com.blankj.utilcode.util.Utils;
|
|
|
|
|
import com.facebook.appevents.AppEventsLogger;
|
|
|
|
|
import com.fm.openinstall.OpenInstall;
|
|
|
|
|
import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
|
|
|
|
|
import com.tencent.imsdk.v2.V2TIMManager;
|
|
|
|
|
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
|
|
|
|
|
import com.tencent.imsdk.v2.V2TIMUserInfo;
|
|
|
|
|
import com.yunbao.common.BuildConfig;
|
|
|
|
|
import com.yunbao.common.CommonAppContext;
|
|
|
|
|
import com.yunbao.common.Constants;
|
2022-07-20 16:57:42 +08:00
|
|
|
|
import com.yunbao.common.http.CommonHttpUtil;
|
|
|
|
|
import com.yunbao.common.http.HttpCallback;
|
2022-08-22 14:31:30 +08:00
|
|
|
|
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
|
|
|
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
2022-07-18 15:31:45 +08:00
|
|
|
|
import com.yunbao.common.utils.L;
|
2022-09-05 17:46:43 +08:00
|
|
|
|
import com.yunbao.common.utils.SpUtil;
|
2022-07-22 17:49:50 +08:00
|
|
|
|
import com.yunbao.live.socket.SocketRyClient;
|
2022-07-18 15:31:45 +08:00
|
|
|
|
import com.yunbao.live.utils.LiveImDeletUtil;
|
2022-08-22 14:31:30 +08:00
|
|
|
|
import com.yunbao.live.views.PortraitLiveManager;
|
2022-09-05 17:46:43 +08:00
|
|
|
|
import com.yunbao.main.activity.MsgSettActivity;
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
2022-07-22 17:49:50 +08:00
|
|
|
|
import io.rong.imlib.RongIMClient;
|
2022-09-05 16:49:10 +08:00
|
|
|
|
import io.rong.imlib.model.Conversation;
|
2022-07-22 17:49:50 +08:00
|
|
|
|
import io.rong.message.TextMessage;
|
2022-08-17 13:34:29 +08:00
|
|
|
|
import io.rong.push.RongPushClient;
|
|
|
|
|
import io.rong.push.pushconfig.PushConfig;
|
2022-07-22 17:49:50 +08:00
|
|
|
|
|
2022-07-18 15:31:45 +08:00
|
|
|
|
import static com.yunbao.live.socket.SocketClient.mSocketHandler;
|
|
|
|
|
|
2022-09-05 16:49:10 +08:00
|
|
|
|
import org.greenrobot.eventbus.EventBus;
|
|
|
|
|
|
2022-07-18 15:31:45 +08:00
|
|
|
|
//import cn.tillusory.sdk.TiSDK;
|
|
|
|
|
|
|
|
|
|
//import com.squareup.leakcanary.LeakCanary;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Created by cxf on 2017/8/3.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
public class AppContext extends CommonAppContext {
|
|
|
|
|
|
|
|
|
|
public static AppContext sInstance;
|
|
|
|
|
public LiveImDeletUtil liveImDeletUtil;
|
|
|
|
|
|
|
|
|
|
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityResumed(Activity activity) {
|
|
|
|
|
Adjust.onResume();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityPaused(Activity activity) {
|
|
|
|
|
Adjust.onPause();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityStopped(@NonNull Activity activity) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityDestroyed(@NonNull Activity activity) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onActivityStarted(@NonNull Activity activity) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onCreate() {
|
|
|
|
|
super.onCreate();
|
2022-08-25 15:52:20 +08:00
|
|
|
|
//注册全局异常捕获
|
|
|
|
|
//registerError();
|
2022-07-18 15:31:45 +08:00
|
|
|
|
sInstance = this;
|
|
|
|
|
L.setDeBug(BuildConfig.DEBUG);
|
|
|
|
|
AppEventsLogger.activateApp(this);
|
|
|
|
|
|
|
|
|
|
File httpCacheDir = new File(getCacheDir(), "https");
|
|
|
|
|
try {
|
|
|
|
|
HttpResponseCache.install(httpCacheDir, 1024 * 1024 * 128);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
//初始化 ARouter
|
|
|
|
|
if (BuildConfig.DEBUG) {
|
|
|
|
|
ARouter.openLog();
|
|
|
|
|
ARouter.openDebug();
|
|
|
|
|
}
|
|
|
|
|
ARouter.init(this);
|
|
|
|
|
|
2022-08-17 13:34:29 +08:00
|
|
|
|
|
2022-07-18 15:31:45 +08:00
|
|
|
|
//初始化 邀请码库
|
|
|
|
|
if (isMainProcess()) {
|
|
|
|
|
OpenInstall.init(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
|
|
|
|
|
AdjustConfig config = new AdjustConfig(this, "3om5fbglyqdc", environment);
|
|
|
|
|
Adjust.onCreate(config);
|
|
|
|
|
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
|
|
|
|
|
config.setLogLevel(LogLevel.WARN);
|
|
|
|
|
//激活操作记录
|
|
|
|
|
AdjustEvent adjustEvent = new AdjustEvent("m7wk0c");
|
|
|
|
|
Adjust.trackEvent(adjustEvent);
|
|
|
|
|
|
|
|
|
|
//谷歌激活
|
|
|
|
|
mFirebaseAnalytics.logEvent("FS_activation", null);
|
|
|
|
|
|
|
|
|
|
//FB激活
|
|
|
|
|
logger.logEvent("FB_activation");
|
|
|
|
|
|
|
|
|
|
AdjustEvent adjustEvent2 = new AdjustEvent("p7igfz");
|
|
|
|
|
Adjust.trackEvent(adjustEvent2);
|
2022-07-20 16:57:42 +08:00
|
|
|
|
CommonHttpUtil.setAdvertisingChannels("p7igfz", new HttpCallback() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onSuccess(int code, String msg, String[] info) {
|
2022-07-22 17:49:50 +08:00
|
|
|
|
if (code == 0) {
|
2022-07-20 16:57:42 +08:00
|
|
|
|
//谷歌激活
|
|
|
|
|
mFirebaseAnalytics.logEvent("FS_complete_1st_loading", null);
|
|
|
|
|
//FB激活
|
|
|
|
|
logger.logEvent("FB_complete_1st_loading");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
|
|
|
|
//初始化 AndroidUtilCode
|
|
|
|
|
Utils.init(this);
|
|
|
|
|
liveImDeletUtil = new LiveImDeletUtil();
|
2022-07-22 17:49:50 +08:00
|
|
|
|
|
2022-07-21 11:24:15 +08:00
|
|
|
|
//初始化融云
|
|
|
|
|
RongcloudIMManager.initRongIM(this);
|
2022-07-22 16:27:19 +08:00
|
|
|
|
|
2022-07-25 16:06:39 +08:00
|
|
|
|
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onReceived(io.rong.imlib.model.Message message, int i, boolean b, boolean b1) {
|
|
|
|
|
Log.e("wewe", message.getConversationType() + "112121");
|
2022-07-26 13:14:43 +08:00
|
|
|
|
MessageIMManager.get(sInstance).getSystemForRongcloud(message);
|
2022-07-25 16:06:39 +08:00
|
|
|
|
//融云直播间聊天
|
|
|
|
|
Message msg = Message.obtain();
|
|
|
|
|
msg.what = Constants.SOCKET_WHAT_BROADCAST;
|
|
|
|
|
try {
|
|
|
|
|
if (!"".equals(message.getContent()) && message.getContent() != null) {
|
|
|
|
|
TextMessage content = (TextMessage) message.getContent();
|
|
|
|
|
if (content.getContent().contains("_method_")) {
|
|
|
|
|
msg.obj = content.getContent();
|
2022-09-01 15:12:58 +08:00
|
|
|
|
//观众页面
|
2022-08-22 14:31:30 +08:00
|
|
|
|
if (SocketRyClient.mSocketHandler != null
|
|
|
|
|
&& (TextUtils.equals("__system__", message.getTargetId())
|
2022-08-26 16:37:12 +08:00
|
|
|
|
|| ("g" + PortraitLiveManager.liveID).contains(message.getTargetId()))) {
|
2022-07-25 16:06:39 +08:00
|
|
|
|
SocketRyClient.mSocketHandler.sendMessage(msg);
|
|
|
|
|
}
|
2022-09-01 15:12:58 +08:00
|
|
|
|
//主播页面
|
|
|
|
|
if (TextUtils.isEmpty(PortraitLiveManager.liveID) && SocketRyClient.mSocketHandler != null) {
|
|
|
|
|
SocketRyClient.mSocketHandler.sendMessage(msg);
|
|
|
|
|
}
|
2022-09-05 16:49:10 +08:00
|
|
|
|
}else if(message.getConversationType()== Conversation.ConversationType.PRIVATE){//私聊信息
|
|
|
|
|
EventBus.getDefault().post(message);
|
2022-07-25 16:06:39 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2022-08-22 14:31:30 +08:00
|
|
|
|
} catch (Exception e) {
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
2022-07-25 16:06:39 +08:00
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
2022-08-26 13:00:45 +08:00
|
|
|
|
|
2022-07-18 15:31:45 +08:00
|
|
|
|
//监听im消息
|
|
|
|
|
V2TIMManager.getInstance().addSimpleMsgListener(new V2TIMSimpleMsgListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onRecvGroupTextMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, String text) {
|
|
|
|
|
super.onRecvGroupTextMessage(msgID, groupID, sender, text);
|
|
|
|
|
Log.e("asasas", text);
|
|
|
|
|
Message msg = Message.obtain();
|
|
|
|
|
msg.what = Constants.SOCKET_WHAT_BROADCAST;
|
|
|
|
|
msg.obj = text;
|
|
|
|
|
if (mSocketHandler != null && Ingroup == 1) {
|
|
|
|
|
mSocketHandler.sendMessage(msg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onRecvC2CTextMessage(String msgID, V2TIMUserInfo sender, String text) {
|
|
|
|
|
super.onRecvC2CTextMessage(msgID, sender, text);
|
|
|
|
|
Message msg = Message.obtain();
|
|
|
|
|
msg.what = Constants.SOCKET_WHAT_BROADCAST;
|
|
|
|
|
msg.obj = text;
|
|
|
|
|
if (mSocketHandler != null) {
|
|
|
|
|
CommonAppContext.Ingroup = 1;
|
|
|
|
|
mSocketHandler.sendMessage(msg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-09-05 17:46:43 +08:00
|
|
|
|
configSPApp();
|
|
|
|
|
}
|
2022-07-18 15:31:45 +08:00
|
|
|
|
|
2022-09-05 17:46:43 +08:00
|
|
|
|
/**
|
|
|
|
|
* 配置SharedPreferences默认值
|
|
|
|
|
*/
|
|
|
|
|
private void configSPApp(){
|
|
|
|
|
if(!SpUtil.getInstance().isExists(MsgSettActivity.SWITCH_PRIVATE_CHAT_MSG)){
|
|
|
|
|
SpUtil.getInstance().setBooleanValue(MsgSettActivity.SWITCH_PRIVATE_CHAT_MSG,true);
|
|
|
|
|
}
|
2022-07-18 15:31:45 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean isMainProcess() {
|
|
|
|
|
int pid = android.os.Process.myPid();
|
|
|
|
|
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
|
|
|
|
|
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
|
|
|
|
|
if (appProcess.pid == pid) {
|
|
|
|
|
return getApplicationInfo().packageName.equals(appProcess.processName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-21 11:24:15 +08:00
|
|
|
|
@Override
|
|
|
|
|
public void onTerminate() {
|
|
|
|
|
RongcloudIMManager.removeRongcloudIMOnReceiveMessageListener();
|
|
|
|
|
super.onTerminate();
|
|
|
|
|
}
|
2022-08-25 15:52:20 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 注册全局异常捕获,有需要时可以在onCreate调用
|
|
|
|
|
*/
|
2022-08-26 16:37:12 +08:00
|
|
|
|
private void registerError() {
|
2022-08-25 15:52:20 +08:00
|
|
|
|
NeverCrashUtils.getInstance()
|
|
|
|
|
.setDebugMode(BuildConfig.DEBUG)
|
|
|
|
|
.setMainCrashHandler((t, e) -> {
|
|
|
|
|
Log.e("ApplicationError", "主线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
})
|
|
|
|
|
.setUncaughtCrashHandler((t, e) -> {
|
|
|
|
|
Log.e("ApplicationError", "子线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
})
|
|
|
|
|
.register(this);
|
|
|
|
|
}
|
2022-07-18 15:31:45 +08:00
|
|
|
|
}
|