what-the-bank/sources/com/huawei/hms/adapter/ui/UpdateAdapter.java

286 lines
11 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package com.huawei.hms.adapter.ui;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.view.KeyEvent;
import com.huawei.hms.activity.BridgeActivity;
import com.huawei.hms.activity.IBridgeActivityDelegate;
import com.huawei.hms.adapter.AvailableUtil;
import com.huawei.hms.adapter.internal.CommonCode;
import com.huawei.hms.adapter.sysobs.SystemManager;
import com.huawei.hms.availableupdate.c;
import com.huawei.hms.support.log.HMSLog;
import com.huawei.hms.update.kpms.KpmsConstant;
import com.huawei.hms.update.ui.UpdateBean;
import com.huawei.hms.utils.HMSPackageManager;
import com.huawei.hms.utils.PackageManagerHelper;
import java.lang.ref.WeakReference;
/* loaded from: classes2.dex */
public class UpdateAdapter implements IBridgeActivityDelegate {
private WeakReference<Activity> a;
private Context b;
private int c;
private UpdateBean d;
private boolean e = false;
private static Object a(String str, String str2, Object[] objArr) throws Throwable {
if (TextUtils.isEmpty(str)) {
HMSLog.e("UpdateAdapter", "className is empty.");
return null;
}
if (TextUtils.isEmpty(str2)) {
HMSLog.e("UpdateAdapter", "methodName is empty.");
return null;
}
if (objArr == null) {
HMSLog.e("UpdateAdapter", "args is null.");
return null;
}
Class<?>[] clsArr = new Class[objArr.length];
for (int i = 0; i < objArr.length; i++) {
Object obj = objArr[i];
if (obj instanceof Activity) {
clsArr[i] = Activity.class;
} else if (obj instanceof Context) {
clsArr[i] = Context.class;
} else if (obj instanceof UpdateBean) {
clsArr[i] = UpdateBean.class;
} else if (obj instanceof Integer) {
clsArr[i] = Integer.TYPE;
} else if (obj instanceof Boolean) {
clsArr[i] = Boolean.TYPE;
} else {
StringBuilder sb = new StringBuilder("not set args[");
sb.append(i);
sb.append("] type");
HMSLog.e("UpdateAdapter", sb.toString());
}
}
Class<?> cls = Class.forName(str);
return cls.getMethod(str2, clsArr).invoke(cls.getDeclaredConstructor(new Class[0]).newInstance(new Object[0]), objArr);
}
private void c() {
SystemManager.getInstance().notifyUpdateResult(8);
a();
}
public static Object invokeMethod(String str, String str2, Object[] objArr) {
try {
return a(str, str2, objArr);
} catch (Throwable th) {
StringBuilder sb = new StringBuilder("invoke ");
sb.append(str);
sb.append(".");
sb.append(str2);
sb.append(" fail. ");
sb.append(th.getMessage());
HMSLog.e("UpdateAdapter", sb.toString());
return null;
}
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public int getRequestCode() {
return 1001;
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public void onBridgeActivityCreate(Activity activity) {
if (activity == null) {
HMSLog.i("UpdateAdapter", "activity == null");
c();
return;
}
if (activity.isFinishing()) {
HMSLog.i("UpdateAdapter", "activity is finishing");
c();
return;
}
this.b = activity.getApplicationContext();
this.a = new WeakReference<>(activity);
if (c.b.a(b())) {
Intent intent = activity.getIntent();
if (intent == null) {
c();
return;
}
try {
this.c = intent.getIntExtra(CommonCode.MapKey.UPDATE_VERSION, 0);
} catch (Throwable th) {
StringBuilder sb = new StringBuilder("get update_version:");
sb.append(th.getMessage());
HMSLog.e("UpdateAdapter", sb.toString());
}
if (this.c == 0) {
c();
return;
}
if (intent.hasExtra("installHMS")) {
this.e = true;
}
if (a(intent, activity)) {
return;
}
try {
if (AvailableUtil.isInstallerLibExist(this.b)) {
UpdateBean updateBean = (UpdateBean) a("com.huawei.hms.adapter.ui.InstallerAdapter", "setUpdateBean", new Object[]{activity, Integer.valueOf(this.c), Boolean.valueOf(this.e)});
this.d = updateBean;
a("com.huawei.hms.adapter.ui.InstallerAdapter", "startUpdateHms", new Object[]{activity, updateBean, 1001});
this.d = null;
}
} catch (Throwable th2) {
StringBuilder sb2 = new StringBuilder("InstallerAdapter.startUpdateHms is failed. message");
sb2.append(th2.getMessage());
HMSLog.e("UpdateAdapter", sb2.toString());
c();
}
}
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public void onBridgeActivityDestroy() {
HMSLog.i("UpdateAdapter", "onBridgeActivityDestroy");
c.b.b(b());
this.a = null;
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public boolean onBridgeActivityResult(int i, int i2, Intent intent) {
if (i != getRequestCode()) {
this.d = null;
return false;
}
HMSLog.i("UpdateAdapter", "onBridgeActivityResult ".concat(String.valueOf(i2)));
if (AvailableUtil.isInstallerLibExist(this.b) && i2 == 1214) {
HMSLog.i("UpdateAdapter", "Enter update escape route");
Activity b = b();
if (b == null) {
HMSLog.e("UpdateAdapter", "bridgeActivity is null, update escape failed ");
this.d = null;
return true;
}
invokeMethod("com.huawei.hms.update.manager.UpdateManager", "startUpdate", new Object[]{b, 1001, this.d});
this.d = null;
}
if (i2 == -1) {
if (intent != null) {
try {
if (intent.getIntExtra(KpmsConstant.KIT_UPDATE_RESULT, 0) == 1) {
HMSLog.i("UpdateAdapter", "new framework update process,Error resolved successfully!");
SystemManager.getInstance().notifyUpdateResult(0);
this.d = null;
a();
return true;
}
} catch (Throwable unused) {
HMSLog.w("UpdateAdapter", "get kit_update_result failed, throwable occur.");
}
a(intent);
}
} else if (i2 == 0) {
HMSLog.i("UpdateAdapter", "Activity.RESULT_CANCELED");
this.d = null;
Activity b2 = b();
if (b2 == null) {
return true;
}
String hMSPackageName = HMSPackageManager.getInstance(b2.getApplicationContext()).getHMSPackageName();
if (TextUtils.isEmpty(hMSPackageName)) {
hMSPackageName = "com.huawei.hwid";
}
if (!this.e && !a(b2, hMSPackageName, this.c)) {
SystemManager.getInstance().notifyUpdateResult(0);
} else {
HMSLog.i("UpdateAdapter", "Resolve error, process canceled by user clicking back button!");
SystemManager.getInstance().notifyUpdateResult(13);
}
} else if (i2 == 1) {
SystemManager.getInstance().notifyUpdateResult(28);
}
a();
return true;
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public void onBridgeConfigurationChanged() {
HMSLog.i("UpdateAdapter", "onBridgeConfigurationChanged");
}
@Override // com.huawei.hms.activity.IBridgeActivityDelegate
public void onKeyUp(int i, KeyEvent keyEvent) {
HMSLog.i("UpdateAdapter", "On key up when resolve conn error");
}
private Activity b() {
WeakReference<Activity> weakReference = this.a;
if (weakReference == null) {
return null;
}
return weakReference.get();
}
private boolean a(Intent intent, Activity activity) {
if (!intent.getBooleanExtra(CommonCode.MapKey.NEW_UPDATE, false)) {
return false;
}
HMSLog.i("UpdateAdapter", "4.0 framework HMSCore upgrade process");
String hMSPackageName = HMSPackageManager.getInstance(activity.getApplicationContext()).getHMSPackageName();
if (TextUtils.isEmpty(hMSPackageName)) {
HMSLog.w("UpdateAdapter", "hmsPackageName is empty, update invalid.");
c();
return true;
}
ComponentName componentName = new ComponentName(hMSPackageName, "com.huawei.hms.fwksdk.stub.UpdateStubActivity");
Intent intent2 = new Intent();
intent2.putExtra(KpmsConstant.CALLER_PACKAGE_NAME, activity.getApplicationContext().getPackageName());
intent2.putExtra(KpmsConstant.UPDATE_PACKAGE_NAME, hMSPackageName);
intent2.setComponent(componentName);
activity.startActivityForResult(intent2, 1001);
return true;
}
private void a(Intent intent) {
int i = -1;
try {
i = intent.getIntExtra(BridgeActivity.EXTRA_RESULT, -1);
} catch (Throwable unused) {
HMSLog.w("UpdateAdapter", "get extra_result failed, throwable occur.");
}
if (i == 0) {
HMSLog.i("UpdateAdapter", "Error resolved successfully!");
SystemManager.getInstance().notifyUpdateResult(0);
} else if (i == 13) {
HMSLog.i("UpdateAdapter", "Resolve error process canceled by user!");
SystemManager.getInstance().notifyUpdateResult(13);
} else if (i == 8) {
HMSLog.i("UpdateAdapter", "Internal error occurred, recommended retry.");
SystemManager.getInstance().notifyUpdateResult(8);
} else {
HMSLog.i("UpdateAdapter", "Other error codes.");
SystemManager.getInstance().notifyUpdateResult(i);
}
}
private void a() {
Activity b = b();
if (b == null || b.isFinishing()) {
return;
}
b.finish();
}
private boolean a(Context context, String str, int i) {
if (context != null && !TextUtils.isEmpty(str) && i != 0) {
PackageManagerHelper packageManagerHelper = new PackageManagerHelper(context);
return PackageManagerHelper.PackageStates.NOT_INSTALLED.equals(packageManagerHelper.getPackageStates(str)) || packageManagerHelper.getPackageVersionCode(str) < i;
}
HMSLog.w("UpdateAdapter", "Please check your params, one of params is invalid.");
return false;
}
}