QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 ApkInstallFailChecker.java 源代码,内容仅作参考
package com.tencent.mtt.browser.file.open;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageInfo;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import com.tencent.mtt.ContextHolder;
import com.tencent.mtt.QbActivityBase;
import com.tencent.mtt.base.functionwindow.ActivityHandler;
import com.tencent.mtt.base.skin.MttResources;
import com.tencent.mtt.browser.common.WhiteDomainUtil;
import com.tencent.mtt.browser.file.facade.IInstallParams;
import com.tencent.mtt.browser.file.facade.whitedomain.WhiteDomainItem;
import com.tencent.mtt.browser.utils.FileLog;
import com.tencent.mtt.browser.window.UrlParams;
import com.tencent.mtt.businesscenter.facade.IFrameworkDelegate;
import com.tencent.mtt.fileclean.install.FileInstallManager;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.view.common.QBTextView;
import com.tencent.mtt.view.common.QBView;
import com.tencent.mtt.view.dialog.alert.QBLinearDialogClickListener;
import com.tencent.mtt.view.dialog.alert.QBListDialog;
import com.tencent.mtt.view.dialog.alert.QbListDialogBuilder;
import com.tencent.mtt.view.layout.QBLinearLayout;
import com.tencent.qqlive.module.videoreport.collect.EventCollector;
import qb.a.e;
import qb.a.f;
public class ApkInstallFailChecker implements ActivityHandler.ActivityStateListener {
private static boolean f38520d;
private long f38521a;
private int f38522b;
private IInstallParams f38523c;
private String e = null;
public void a() {
if (this.f38523c.e != null) {
this.f38523c.e.a(this.f38523c);
}
}
public void a(QBListDialog qBListDialog) {
qBListDialog.c();
f38520d = false;
}
private boolean a(String str) {
Context appContext = ContextHolder.getAppContext();
if (appContext == null) {
return false;
}
PackageInfo packageInfo = null;
try {
packageInfo = appContext.getPackageManager().getPackageInfo(str, 0);
} catch (Exception unused) {
}
return packageInfo != null;
}
public void b() {
UrlParams urlParams = new UrlParams("https://bbs.mb.qq.com/mobilefb/fbList?tid=e1083095-5945-4665-9578-386d1b149bdf&ttype=0&tname=%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85");
urlParams.d(true);
((IFrameworkDelegate) QBContext.getInstance().getService(IFrameworkDelegate.class)).doLoad(urlParams);
}
private void b(String str) {
QBLinearLayout qBLinearLayout = new QBLinearLayout(ContextHolder.getAppContext());
qBLinearLayout.setOrientation(1);
qBLinearLayout.setLayoutParams(new ViewGroup.LayoutParams(-1, -2));
QBTextView qBTextView = new QBTextView(ContextHolder.getAppContext());
qBTextView.setGravity(17);
qBTextView.setPadding(MttResources.s(30), MttResources.s(30), MttResources.s(30), 0);
qBTextView.setLayoutParams(new ViewGroup.LayoutParams(-1, -2));
String str2 = "你刚安装\"" + str + "\",是否安装完成?";
FileLog.a("ApkInstallFailChecker", "[ID857164409] showDialog content=" + str2);
qBTextView.setText(str2);
qBTextView.setTextSize(MttResources.h(f.s));
qBTextView.setTextColorNormalIds(e.n);
QBTextView qBTextView2 = new QBTextView(ContextHolder.getAppContext());
qBTextView2.setGravity(17);
qBTextView2.setPadding(MttResources.s(30), MttResources.s(12), MttResources.s(30), MttResources.s(12));
qBTextView2.setLayoutParams(new ViewGroup.LayoutParams(-1, MttResources.s(60)));
qBTextView2.setText("遇到问题 请点这里 >");
qBTextView2.setTextSize(MttResources.h(f.r));
qBTextView2.setTextColorNormalIds(e.o);
QBView qBView = new QBView(ContextHolder.getAppContext());
qBView.setBackgroundNormalIds(0, e.Q);
qBView.setLayoutParams(new ViewGroup.LayoutParams(-1, 1));
qBLinearLayout.addView(qBTextView);
qBLinearLayout.addView(qBTextView2);
qBLinearLayout.addView(qBView);
QbListDialogBuilder qbListDialogBuilder = new QbListDialogBuilder();
String[] strArr = {"继续安装", "已安装完成", "取消"};
qbListDialogBuilder.a(strArr);
qbListDialogBuilder.a(strArr.length - 1);
qbListDialogBuilder.a(qBLinearLayout);
final QBListDialog a2 = qbListDialogBuilder.a();
a2.a(0, MttResources.c(e.f));
qBTextView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventCollector.getInstance().onViewClickedBefore(view);
FileInstallManager.a().a(ApkInstallFailChecker.this.f38523c.f38338b, "install_0020");
ApkInstallFailChecker.this.a(a2);
ApkInstallFailChecker.this.b();
EventCollector.getInstance().onViewClicked(view);
}
});
a2.a(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
ApkInstallFailChecker.this.a(a2);
}
});
a2.a(false);
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
if (a2.d()) {
a2.a(true);
}
}
}, 100L);
a2.a(new QBLinearDialogClickListener() {
@Override
public void a(int i) {
FileInstallManager a3;
String str3;
String str4;
FileLog.a("ApkInstallFailChecker", "[ID857164409] onClick id=" + i);
if (i == 0) {
FileInstallManager.a().a(ApkInstallFailChecker.this.f38523c.f38338b, "install_0018");
ApkInstallFailChecker.this.a(a2);
ApkInstallFailChecker.this.a();
return;
}
if (i != 1) {
if (i == 2) {
a3 = FileInstallManager.a();
str3 = ApkInstallFailChecker.this.f38523c.f38338b;
str4 = "install_0021";
}
ApkInstallFailChecker.this.a(a2);
}
a3 = FileInstallManager.a();
str3 = ApkInstallFailChecker.this.f38523c.f38338b;
str4 = "install_0019";
a3.a(str3, str4);
ApkInstallFailChecker.this.a(a2);
}
});
a2.b();
}
public void a(IInstallParams iInstallParams) {
WhiteDomainItem b2 = WhiteDomainUtil.b(iInstallParams.f38337a, iInstallParams.f38338b);
FileLog.a("ApkInstallFailChecker", "[ID857164409] startInstallFailedCheck " + b2.toString());
if (b2.a()) {
ActivityHandler.ActivityInfo m = ActivityHandler.b().m();
if (m != null && m.b() != null) {
this.e = m.b().getComponentName().getClassName();
}
FileLog.a("ApkInstallFailChecker", "curClassName:" + this.e);
this.f38523c = iInstallParams;
String a2 = b2.a("timeCost");
this.f38522b = TextUtils.isEmpty(a2) ? 0 : Integer.parseInt(a2);
this.f38521a = System.currentTimeMillis();
ActivityHandler.b().a(this);
new Handler(Looper.myLooper()).postDelayed(new Runnable() {
@Override
public void run() {
ActivityHandler.b().b(ApkInstallFailChecker.this);
}
}, this.f38522b + 100);
}
}
@Override
public void onActivityState(QbActivityBase qbActivityBase, ActivityHandler.LifeCycle lifeCycle) {
if (lifeCycle == ActivityHandler.LifeCycle.onStart) {
if (qbActivityBase != null && !TextUtils.isEmpty(this.e) && qbActivityBase.getComponentName() != null && !this.e.equals(qbActivityBase.getComponentName().getClassName())) {
FileLog.a("ApkInstallFailChecker", "new className:" + qbActivityBase.getComponentName().getClassName());
return;
}
ActivityHandler.b().b(this);
if (System.currentTimeMillis() - this.f38521a > this.f38522b) {
return;
}
boolean a2 = a(this.f38523c.f38338b);
FileLog.a("ApkInstallFailChecker", "[ID857164409] startInstallFailedCheck apkInstalled=" + a2 + ";dialogShowing=" + f38520d);
if (a2 || f38520d) {
return;
}
f38520d = true;
FileLog.a("ApkInstallFailChecker", "[ID857164409] startInstallFailedCheck dialogShow=true");
FileInstallManager.a().a(this.f38523c.f38338b, "install_0017");
b(ApkFileUtils.a(this.f38523c.f38339c));
}
}
}