350 lines
12 KiB
Java
350 lines
12 KiB
Java
package com.ubt.jimu;
|
||
|
||
import android.app.Activity;
|
||
import android.app.ActivityManager;
|
||
import android.app.Application;
|
||
import android.app.NotificationManager;
|
||
import android.content.ComponentCallbacks2;
|
||
import android.content.Context;
|
||
import android.content.Intent;
|
||
import android.os.Build;
|
||
import android.os.Process;
|
||
import android.text.TextUtils;
|
||
import com.alibaba.android.arouter.launcher.ARouter;
|
||
import com.ijm.dataencryption.de.DataDecryptTool;
|
||
import com.ijm.dataencryption.de.StatusInfo;
|
||
import com.liulishuo.filedownloader.FileDownloader;
|
||
import com.ubt.jimu.analytics.AppDelayInit;
|
||
import com.ubt.jimu.base.db.JimuOpenHelper;
|
||
import com.ubt.jimu.base.entities.Constant;
|
||
import com.ubt.jimu.base.networkstate.NetWorkUtil;
|
||
import com.ubt.jimu.base.networkstate.NetworkStateObserver;
|
||
import com.ubt.jimu.base.networkstate.NetworkStateReceiver;
|
||
import com.ubt.jimu.base.networkstate.NetworkType;
|
||
import com.ubt.jimu.connect.JimuStatusMonitor;
|
||
import com.ubt.jimu.course.view.JimuTaskListActivity;
|
||
import com.ubt.jimu.discover.view.CourseListActivity;
|
||
import com.ubt.jimu.diy.activity.UserDiyActivity;
|
||
import com.ubt.jimu.gen.DaoMaster;
|
||
import com.ubt.jimu.gen.DaoSession;
|
||
import com.ubt.jimu.pack.view.PackSelectActivity;
|
||
import com.ubt.jimu.unity.bluetooth.UnityActivity;
|
||
import com.ubt.jimu.user.view.UserCenterActivity;
|
||
import com.ubt.jimu.user.view.setting.SettingActivity;
|
||
import com.ubt.jimu.utils.CrashExceptionHandler;
|
||
import com.ubt.jimu.utils.LocaleUtils;
|
||
import com.ubt.jimu.utils.PackageHelper;
|
||
import com.ubt.jimu.utils.SPUtils;
|
||
import com.ubtech.utils.XLog;
|
||
import com.ubtrobot.jimu.bluetooth.ConnectionState;
|
||
import com.ubtrobot.jimu.bluetooth.ConnectionStateListener;
|
||
import com.ubtrobot.jimu.robotapi.IPowerStateListener;
|
||
import com.ubtrobot.jimu.robotapi.JimuManager;
|
||
import com.ubtrobot.log.ALog;
|
||
import com.ubtrobot.ubtlib.analytics.UbtPageIdUtil;
|
||
import com.ubtrobot.ubtlib.social.SocialTool;
|
||
import com.ubtrobot.ubtlib.stat.UbtStats;
|
||
import io.reactivex.functions.Consumer;
|
||
import io.reactivex.plugins.RxJavaPlugins;
|
||
import java.lang.Thread;
|
||
import java.lang.reflect.Field;
|
||
import java.lang.reflect.Method;
|
||
import java.util.Iterator;
|
||
import java.util.List;
|
||
|
||
/* loaded from: classes.dex */
|
||
public class JimuApplication extends Application implements NetworkStateObserver {
|
||
public static long i = 0;
|
||
private static JimuApplication j = null;
|
||
public static Context k = null;
|
||
public static boolean l = false;
|
||
private Thread.UncaughtExceptionHandler a;
|
||
private String b = "86";
|
||
private boolean c = false;
|
||
private UnityActivity d;
|
||
private Activity e;
|
||
private DaoSession f;
|
||
private ConnectionStateListener g;
|
||
private IPowerStateListener h;
|
||
|
||
private static class JimuManagerHolder {
|
||
private static JimuManager a = new JimuManager(JimuApplication.k);
|
||
}
|
||
|
||
public JimuApplication() {
|
||
NetworkType networkType = NetworkType.NONE_NET;
|
||
this.g = new ConnectionStateListener() { // from class: com.ubt.jimu.JimuApplication.1
|
||
@Override // com.ubtrobot.jimu.bluetooth.ConnectionStateListener
|
||
public void onConnectionStateChange(String str, ConnectionState connectionState) {
|
||
if (str == null) {
|
||
return;
|
||
}
|
||
if (connectionState == ConnectionState.STATE_CONNECTED) {
|
||
JimuApplication.this.f().o();
|
||
JimuApplication.this.f().a(JimuApplication.this.h);
|
||
} else if (connectionState == ConnectionState.STATE_DISCONNECTED) {
|
||
JimuApplication.this.f().p();
|
||
}
|
||
}
|
||
};
|
||
this.h = new JimuStatusMonitor();
|
||
}
|
||
|
||
private void j() {
|
||
t();
|
||
u();
|
||
}
|
||
|
||
private String k() {
|
||
int myPid = Process.myPid();
|
||
ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService("activity");
|
||
if (activityManager == null || activityManager.getRunningAppProcesses() == null) {
|
||
return "";
|
||
}
|
||
for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : activityManager.getRunningAppProcesses()) {
|
||
if (myPid == runningAppProcessInfo.pid) {
|
||
return runningAppProcessInfo.processName;
|
||
}
|
||
}
|
||
return "";
|
||
}
|
||
|
||
public static JimuApplication l() {
|
||
return j;
|
||
}
|
||
|
||
private Thread.UncaughtExceptionHandler m() {
|
||
if (this.a == null) {
|
||
this.a = CrashExceptionHandler.b(this);
|
||
}
|
||
return this.a;
|
||
}
|
||
|
||
private void n() {
|
||
UbtPageIdUtil.a(PackSelectActivity.class.getSimpleName(), "P2");
|
||
UbtPageIdUtil.a(JimuTaskListActivity.class.getSimpleName(), "P11");
|
||
UbtPageIdUtil.a(UserDiyActivity.class.getSimpleName(), "P12");
|
||
UbtPageIdUtil.a(CourseListActivity.class.getSimpleName(), "P13");
|
||
UbtPageIdUtil.a(UserCenterActivity.class.getSimpleName(), "P14");
|
||
UbtPageIdUtil.a(SettingActivity.class.getSimpleName(), "P15");
|
||
}
|
||
|
||
private void o() {
|
||
this.f = new DaoMaster(new JimuOpenHelper(l(), "local").getWritableDb()).newSession();
|
||
}
|
||
|
||
private void p() {
|
||
FileDownloader.a(this);
|
||
UbtStats.a(this, false);
|
||
XLog.a(false);
|
||
}
|
||
|
||
private void q() {
|
||
}
|
||
|
||
private boolean r() {
|
||
return getApplicationContext().getPackageName().equals(k());
|
||
}
|
||
|
||
private void s() {
|
||
try {
|
||
NetWorkUtil.isNetworkAvailable(this);
|
||
NetWorkUtil.getAPNType(this);
|
||
NetworkStateReceiver.getInstance().registerNetworkStateReceiver(this);
|
||
NetworkStateReceiver.getInstance().registerObserver(this);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
private void t() {
|
||
if ("OPPO".equalsIgnoreCase(Build.MANUFACTURER)) {
|
||
try {
|
||
Field declaredField = Class.forName("java.lang.Daemons").getDeclaredField("MAX_FINALIZE_NANOS");
|
||
declaredField.setAccessible(true);
|
||
declaredField.set(null, Long.MAX_VALUE);
|
||
} catch (ClassNotFoundException e) {
|
||
e.printStackTrace();
|
||
} catch (IllegalAccessException e2) {
|
||
e2.printStackTrace();
|
||
} catch (NoSuchFieldException e3) {
|
||
e3.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
|
||
private static void u() {
|
||
if ("OPPO".equalsIgnoreCase(Build.MANUFACTURER)) {
|
||
try {
|
||
Class<?> cls = Class.forName("java.lang.Daemons$FinalizerWatchdogDaemon");
|
||
Method declaredMethod = cls.getSuperclass().getDeclaredMethod("stop", new Class[0]);
|
||
declaredMethod.setAccessible(true);
|
||
Field declaredField = cls.getDeclaredField("INSTANCE");
|
||
declaredField.setAccessible(true);
|
||
declaredMethod.invoke(declaredField.get(null), new Object[0]);
|
||
} catch (Throwable th) {
|
||
th.printStackTrace();
|
||
}
|
||
}
|
||
}
|
||
|
||
private void v() {
|
||
try {
|
||
((NotificationManager) getSystemService("notification")).cancelAll();
|
||
NetworkStateReceiver.getInstance().unRegisterNetworkStateReceiver(this);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
public void a(String str) {
|
||
}
|
||
|
||
@Override // android.content.ContextWrapper
|
||
protected void attachBaseContext(Context context) {
|
||
a(context);
|
||
super.attachBaseContext(context);
|
||
j();
|
||
}
|
||
|
||
public void b() {
|
||
List<ActivityManager.AppTask> appTasks = ((ActivityManager) getApplicationContext().getSystemService("activity")).getAppTasks();
|
||
if (appTasks != null && !appTasks.isEmpty()) {
|
||
Iterator<ActivityManager.AppTask> it = appTasks.iterator();
|
||
while (it.hasNext()) {
|
||
it.next().finishAndRemoveTask();
|
||
}
|
||
}
|
||
UnityActivity unityActivity = this.d;
|
||
if (unityActivity != null) {
|
||
unityActivity.finish();
|
||
}
|
||
}
|
||
|
||
public String c() {
|
||
return LocaleUtils.d();
|
||
}
|
||
|
||
public String d() {
|
||
return this.b;
|
||
}
|
||
|
||
public DaoSession e() {
|
||
return this.f;
|
||
}
|
||
|
||
public JimuManager f() {
|
||
return JimuManagerHolder.a;
|
||
}
|
||
|
||
public String g() {
|
||
return LocaleUtils.b();
|
||
}
|
||
|
||
public UnityActivity h() {
|
||
return this.d;
|
||
}
|
||
|
||
public boolean i() {
|
||
return getResources().getBoolean(R.bool.isTablet);
|
||
}
|
||
|
||
@Override // android.app.Application
|
||
public void onCreate() {
|
||
super.onCreate();
|
||
j = this;
|
||
k = getApplicationContext();
|
||
p();
|
||
PackageHelper.c();
|
||
Thread.setDefaultUncaughtExceptionHandler(m());
|
||
SocialTool.a(this);
|
||
if (r()) {
|
||
o();
|
||
n();
|
||
f().a(this.g);
|
||
}
|
||
ALog.a(this, "Jimu");
|
||
ARouter.a((Application) this);
|
||
registerActivityLifecycleCallbacks(new LifecycleCallback());
|
||
RxJavaPlugins.a(new Consumer() { // from class: com.ubt.jimu.c
|
||
@Override // io.reactivex.functions.Consumer
|
||
public final void accept(Object obj) {
|
||
XLog.a("rx-error", "error happen", (Throwable) obj);
|
||
}
|
||
});
|
||
a(g());
|
||
s();
|
||
q();
|
||
if (SPUtils.a(Constant.NoviceGuide.AGREE_LEGAL_EXAMINE)) {
|
||
AppDelayInit.a(getApplicationContext());
|
||
}
|
||
}
|
||
|
||
@Override // com.ubt.jimu.base.networkstate.NetworkStateObserver
|
||
public void onNetworkConnected(NetworkType networkType) {
|
||
ComponentCallbacks2 componentCallbacks2 = this.e;
|
||
if (componentCallbacks2 == null || !(componentCallbacks2 instanceof NetworkStateObserver)) {
|
||
return;
|
||
}
|
||
((NetworkStateObserver) componentCallbacks2).onNetworkConnected(networkType);
|
||
}
|
||
|
||
@Override // com.ubt.jimu.base.networkstate.NetworkStateObserver
|
||
public void onNetworkDisconnected() {
|
||
NetworkType networkType = NetworkType.NONE_NET;
|
||
ComponentCallbacks2 componentCallbacks2 = this.e;
|
||
if (componentCallbacks2 == null || !(componentCallbacks2 instanceof NetworkStateObserver)) {
|
||
return;
|
||
}
|
||
((NetworkStateObserver) componentCallbacks2).onNetworkDisconnected();
|
||
}
|
||
|
||
@Override // android.app.Application
|
||
public void onTerminate() {
|
||
v();
|
||
super.onTerminate();
|
||
}
|
||
|
||
public void a(Activity activity) {
|
||
this.e = activity;
|
||
}
|
||
|
||
private void a(Context context) {
|
||
StatusInfo licenseKey = DataDecryptTool.setLicenseKey(context, "85EB780E18D0EC8FE94AD2AAB2915B71AC38CEEB2093B643272CCE48C4A10342F7E29DF996F7BC92C01D10EC22B2718757AA734222258657C69C021B9A25C14AD16DE950BFF1CF5D61528C027FE323D1B796E4C366031DC2526C7C3AC843307CE6D4");
|
||
if (licenseKey.getStatusCode() == 1) {
|
||
XLog.c("JimuApp", "授权成功");
|
||
} else {
|
||
XLog.b("JimuApp", "授权失败,reason:" + licenseKey.getStatusDescribe());
|
||
}
|
||
DataDecryptTool.doworkForDecrypt(context, DataDecryptTool.DECRYPT_SP_FILE);
|
||
}
|
||
|
||
public void a(UnityActivity unityActivity) {
|
||
this.d = unityActivity;
|
||
}
|
||
|
||
public boolean a() {
|
||
"google_play".equals(Channel.FIR_TEST.getChannelName());
|
||
String b = SPUtils.b(Constant.Course.LAST_ALTER_LANGUAGE_KEY);
|
||
String b2 = LocaleUtils.b();
|
||
if (TextUtils.isEmpty(b)) {
|
||
SPUtils.a(Constant.Course.LAST_ALTER_LANGUAGE_KEY, b2);
|
||
return false;
|
||
}
|
||
if (!b.equals(b2)) {
|
||
SPUtils.a(Constant.Course.LAST_ALTER_LANGUAGE_KEY, b2);
|
||
Intent intent = new Intent(this, (Class<?>) SplashActivity.class);
|
||
intent.setFlags(268468224);
|
||
startActivity(intent);
|
||
UnityActivity unityActivity = this.d;
|
||
if (unityActivity != null) {
|
||
unityActivity.finish();
|
||
} else {
|
||
Process.killProcess(Process.myPid());
|
||
}
|
||
System.exit(0);
|
||
}
|
||
return this.c;
|
||
}
|
||
}
|