QQ浏览器 v12.2.3.7053版本的 MD5 值为:8285ab3059e5c8b521a264dfbc5c3685
以下内容为反编译后的 ShareEngine.java 源代码,内容仅作参考
package com.tencent.mtt.browser.share.export.socialshare;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
import com.tencent.common.utils.StringUtils;
import com.tencent.common.utils.UrlUtils;
import com.tencent.mtt.ContextHolder;
import com.tencent.mtt.R;
import com.tencent.mtt.account.base.IAccount;
import com.tencent.mtt.base.account.AccountInfo;
import com.tencent.mtt.base.functionwindow.ActivityHandler;
import com.tencent.mtt.base.stat.StatManager;
import com.tencent.mtt.base.wup.DomainListDataManager;
import com.tencent.mtt.browser.share.export.ShareImpl;
import com.tencent.mtt.browser.share.export.ShareReceiveData;
import com.tencent.mtt.browser.share.export.ShareReportUtils;
import com.tencent.mtt.browser.share.export.socialshare.ShareUrlCreater;
import com.tencent.mtt.browser.share.export.socialshare.shareitem.DefaultItem;
import com.tencent.mtt.browser.share.facade.IShare;
import com.tencent.mtt.browser.share.facade.IShareStateListener;
import com.tencent.mtt.browser.share.facade.IShareStateListenerExt;
import com.tencent.mtt.browser.share.facade.ShareBundle;
import com.tencent.mtt.browser.share.sharedebug.ShareDebugManager;
import com.tencent.mtt.external.qrcode.facade.OnQrCodeGenerateListener;
import com.tencent.mtt.log.access.Logs;
import com.tencent.mtt.qbcontext.core.QBContext;
import com.tencent.mtt.sdkcontext.SDKContext;
import com.tencent.mtt.setting.PublicSettingManager;
import com.tencent.mtt.video.internal.media.IMediaPlayerInter;
import com.tencent.mtt.view.toast.MttToaster;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;
public class ShareEngine implements DialogInterface.OnDismissListener {
private static ShareEngine f44869a;
private ShareDialog f44870b;
private ShareBundle f44871c;
private CopyOnWriteArrayList<IShareStateListener> f44872d = new CopyOnWriteArrayList<>();
private ShareEngine() {
}
public static ShareEngine a() {
if (f44869a == null) {
f44869a = new ShareEngine();
}
return f44869a;
}
private void a(Activity activity, ShareBundle shareBundle) {
ShareDialog shareDialog = this.f44870b;
if (shareDialog != null) {
shareDialog.dismiss();
this.f44870b = null;
}
if (this.f44870b == null) {
if (activity == null) {
activity = ActivityHandler.b().a();
}
if (activity != null) {
this.f44870b = new ShareDialog(activity, shareBundle);
this.f44870b.setOnDismissListener(this);
Logs.c("ShareEngine", "显示分享面板");
this.f44870b.show();
ShareDebugManager.getInstance().addReportData("显示分享面板", new String[0]);
}
}
}
private void a(String str) {
if (!TextUtils.isEmpty(str) && str.startsWith("file://")) {
String replaceFirst = UrlUtils.decode(str).replaceFirst("file://", "");
if (new File(replaceFirst).exists()) {
ShareBundle shareBundle = this.f44871c;
shareBundle.f45013a = 4;
shareBundle.g = replaceFirst;
}
}
}
private boolean a(int i) {
int i2;
ContextHolder.getAppContext();
if (i == 3 && !ShareImpl.getInstance().isSupportQZone(this.f44871c.D)) {
i2 = R.string.bls;
} else if (i == 4 && !ShareImpl.getInstance().isSupportQQ()) {
i2 = R.string.blr;
} else if ((i == 1 || i == 8 || i == 14) && !ShareImpl.getInstance().isSupporWx()) {
i2 = R.string.blu;
} else {
if (i != 11 || ShareImpl.getInstance().isSupportSinaWB()) {
return true;
}
i2 = R.string.blt;
}
MttToaster.show(i2, 0);
a().b(-2, this.f44871c.w);
return false;
}
public static void b() {
int i;
AccountInfo currentUserInfo = ((IAccount) SDKContext.getInstance().getService(IAccount.class)).getCurrentUserInfo();
if (currentUserInfo != null && currentUserInfo.isValidLogin()) {
if (currentUserInfo.isQQAccount()) {
i = 1;
} else if (currentUserInfo.isWXAccount()) {
i = 2;
} else if (currentUserInfo.isConnectAccount()) {
i = 3;
}
StatManager.b().c("CCSH01".concat("_").concat(String.valueOf(i)));
}
i = 0;
StatManager.b().c("CCSH01".concat("_").concat(String.valueOf(i)));
}
private void b(Activity activity, ShareBundle shareBundle) {
if (shareBundle == null || shareBundle.f45013a == -1) {
return;
}
this.f44871c = shareBundle;
ShareDebugManager.getInstance().addReportData("doShare activity 开始分享解析的数据: ", shareBundle.toString());
if (!"1".equals(PublicSettingManager.a().getString("ANDROID_PUBLIC_PREFS_SHARE_PAGE_WEAPP", "0"))) {
this.f44871c.K = false;
}
a(this.f44871c.f45016d);
Logs.c("ShareEngine", "doShare bundle:" + this.f44871c);
if (shareBundle.w == -1) {
ShareDebugManager.getInstance().addReportData("showShareBox 001", "share_0001", this.f44871c.m + "", this.f44871c.f45016d, this.f44871c.f45014b, this.f44871c.w + "", "", this.f44871c.f45013a + "");
Logs.c("ShareEngine", "doShare 未指定app,打开分享面板");
a(activity, shareBundle);
return;
}
ShareDebugManager.getInstance().addReportData("showShareBox 002", "share_0002", this.f44871c.m + "", this.f44871c.f45016d, this.f44871c.f45014b, this.f44871c.w + "", "", this.f44871c.f45013a + "");
boolean a2 = a(shareBundle.w);
StringBuilder sb = new StringBuilder();
sb.append("doShare 指定分享App:");
sb.append(shareBundle.K);
sb.append(", hasInstalled:");
sb.append(a2);
Logs.c("ShareEngine", sb.toString());
if (a2) {
IShareItem a3 = ShareItemFactory.a(shareBundle.w);
if (a3 instanceof DefaultItem) {
Logs.c("ShareEngine", "doShare 创建指定分享item失败");
return;
}
a3.a(shareBundle);
a3.g();
((IShare) QBContext.getInstance().getService(IShare.class)).recordCurrentShareChannel(shareBundle.w);
((IShare) QBContext.getInstance().getService(IShare.class)).doReportShareClick();
b();
}
}
public Intent a(int i, String str, String str2, String str3, String str4, String str5, boolean z, int i2) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(268435456);
intent.setData(Uri.parse("qb://share"));
intent.putExtra("type", i);
intent.putExtra("title", str);
intent.putExtra("customTxt", str2);
intent.putExtra("url", str3);
intent.putExtra("srcPath", str5);
intent.putExtra(IMediaPlayerInter.ITvkAdvListener.KEY_ADV_DES, str4);
intent.putExtra("validurl", z);
intent.putExtra("validurl", z);
intent.putExtra(IShare.SHARE_ID, i2);
return intent;
}
public void a(int i, int i2) {
Iterator<IShareStateListener> it = this.f44872d.iterator();
while (it.hasNext()) {
IShareStateListener next = it.next();
if (next instanceof IShareStateListenerExt) {
((IShareStateListenerExt) next).a(i, i2);
}
}
}
public void a(Intent intent) {
if (intent == null) {
return;
}
this.f44871c = b(intent);
ShareDebugManager.getInstance().addReportData("doShare intent 开始分享解析的数据: ", this.f44871c.toString());
if (this.f44871c.J == null) {
this.f44871c.J = ActivityHandler.b().a();
}
a(this.f44871c.f45016d);
int intExtra = intent.getIntExtra(IShare.SHARE_ID, -1);
if (intExtra == -1) {
a((Activity) null, this.f44871c);
ShareReportUtils.a(true, "share_0001", this.f44871c.m, this.f44871c.f45016d, this.f44871c.f45014b, this.f44871c.w, "", this.f44871c.f45013a);
} else if (a(intExtra)) {
IShareItem a2 = ShareItemFactory.a(intExtra);
if ((a2 instanceof DefaultItem) || a2.a(intent)) {
return;
}
a2.a(this.f44871c);
a2.g();
b();
}
}
public void a(IShareStateListener iShareStateListener) {
if (this.f44872d.contains(iShareStateListener)) {
return;
}
this.f44872d.add(iShareStateListener);
}
public void a(ShareBundle shareBundle) {
b(shareBundle.J, shareBundle);
}
public void a(final ShareBundle shareBundle, final int i, final int i2, final int i3, final OnQrCodeGenerateListener onQrCodeGenerateListener) {
if (shareBundle == null || shareBundle.f45013a == -1) {
return;
}
if (shareBundle.m == -1) {
shareBundle.m = 1;
}
shareBundle.n = 1200;
new ShareUrlCreater().a(shareBundle, String.valueOf(13), new ShareUrlCreater.IUrlReceiveListener() {
@Override
public void a(ShareReceiveData shareReceiveData) {
shareBundle.f45016d = shareReceiveData.url;
QRShare.a(shareReceiveData.url, i, i2, i3, onQrCodeGenerateListener);
}
});
}
public Intent b(ShareBundle shareBundle) {
Intent intent = new Intent("android.intent.action.VIEW");
intent.addFlags(268435456);
intent.setData(Uri.parse("qb://share"));
intent.putExtra("type", shareBundle.f45013a);
intent.putExtra("title", shareBundle.f45014b);
intent.putExtra("customTxt", shareBundle.v);
intent.putExtra("url", shareBundle.f45016d);
intent.putExtra("srcPath", shareBundle.g);
intent.putExtra(IMediaPlayerInter.ITvkAdvListener.KEY_ADV_DES, shareBundle.f45015c);
intent.putExtra("validurl", shareBundle.u);
intent.putExtra("eShareChannel", shareBundle.m);
intent.putExtra("eShareApp", shareBundle.n);
intent.putExtra(IMediaPlayerInter.ITvkAdvListener.KEY_ADV_LOGO_URL, shareBundle.e);
intent.putExtra("fromWhere", shareBundle.D);
shareBundle.t = intent.getByteArrayExtra("customInfo");
intent.putExtra(IShare.SHARE_ID, shareBundle.w);
return intent;
}
public ShareBundle b(Intent intent) {
ShareBundle shareBundle = new ShareBundle(intent.getIntExtra("type", 0));
shareBundle.f45014b = intent.getStringExtra("title");
shareBundle.v = intent.getStringExtra("customTxt");
shareBundle.f45016d = intent.getStringExtra("url");
shareBundle.g = intent.getStringExtra("srcPath");
shareBundle.f45015c = intent.getStringExtra(IMediaPlayerInter.ITvkAdvListener.KEY_ADV_DES);
shareBundle.u = intent.getBooleanExtra("validurl", false);
shareBundle.m = intent.getIntExtra("eShareChannel", -1);
shareBundle.n = intent.getIntExtra("eShareApp", -1);
shareBundle.e = intent.getStringExtra(IMediaPlayerInter.ITvkAdvListener.KEY_ADV_LOGO_URL);
shareBundle.t = intent.getByteArrayExtra("customInfo");
shareBundle.w = intent.getIntExtra(IShare.SHARE_ID, -1);
shareBundle.D = intent.getIntExtra("fromWhere", -1);
return shareBundle;
}
public void b(int i, int i2) {
if ((i2 == 4 || i2 == 3) && i == 0) {
((IShare) QBContext.getInstance().getService(IShare.class)).doReportShareSuccess();
}
CopyOnWriteArrayList<IShareStateListener> copyOnWriteArrayList = this.f44872d;
for (IShareStateListener iShareStateListener : (IShareStateListener[]) copyOnWriteArrayList.toArray(new IShareStateListener[copyOnWriteArrayList.size()])) {
if (iShareStateListener != null) {
iShareStateListener.onShareFinished(i, i2);
}
}
}
public void b(IShareStateListener iShareStateListener) {
this.f44872d.remove(iShareStateListener);
}
public void c() {
Iterator<IShareStateListener> it = this.f44872d.iterator();
while (it.hasNext()) {
IShareStateListener next = it.next();
if (next != null) {
next.onShareInfoUpdated();
}
}
}
public void c(ShareBundle shareBundle) {
int i = shareBundle.f45013a;
if (i == 0) {
if (shareBundle.m == -1) {
shareBundle.m = 1;
}
if (shareBundle.n != -1) {
return;
}
} else {
if (i != 1) {
return;
}
if (shareBundle.m == -1) {
shareBundle.m = 3;
}
if (shareBundle.n != -1) {
return;
}
}
shareBundle.n = 100;
}
public String d() {
ArrayList<String> a2 = DomainListDataManager.a().a(46);
String str = "";
if (StringUtils.b((a2 == null || a2.size() <= 0) ? "" : a2.get(0))) {
return "https://sc.qq.com/fx/";
}
ArrayList<String> a3 = DomainListDataManager.a().a(46);
if (a3 != null && a3.size() > 0) {
str = a3.get(0);
}
return str + "/";
}
@Override
public void onDismiss(DialogInterface dialogInterface) {
this.f44870b = null;
}
}