jimu-decompiled/sources/com/ubt/jimu/JimuApplication.java
2025-05-13 19:24:51 +02:00

350 lines
12 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.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;
}
}