package com.mbridge.msdk.mbjscommon.windvane; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.text.TextUtils; import android.util.Base64; import com.baidu.mobads.sdk.internal.bf; import com.mbridge.msdk.click.c; import com.mbridge.msdk.foundation.entity.CampaignEx; import com.mbridge.msdk.foundation.entity.DomainCampaignEx; import com.mbridge.msdk.foundation.tools.w; import com.mbridge.msdk.interstitial.view.MBInterstitialActivity; import com.mbridge.msdk.out.IDownloadListener; import java.io.File; import java.util.HashMap; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public abstract class AbsMbridgeDownload extends AbsFeedBackForH5 { private static final int HANDLER_WHAT_KEY = 1; private long DEFAULT_PROGRESS_NOTIFY_INTERVAL = 2000; private String JSON_KEY_AKDLUI = DomainCampaignEx.JSON_KEY_AKDLUI; private String JSON_KEY_CAMPAIGN = MBInterstitialActivity.INTENT_CAMAPIGN; private String JSON_KEY_DOWNLOAD_PROGRESS_NOTIFY_INTERVAL = "progressNotifyInterval"; private String JSON_KEY_PACKAGE_NAME = "packageName"; private String JSON_KEY_PROGRESS = "progress"; private String JSON_KEY_STATUS = "status"; private String JSON_KEY_UNIQUE = "uniqueKey"; private String JSON_KEY_URL = "apkURL"; private String TAG = "MbridgeDownload"; private boolean canNotifyProgress = true; private Object currentObject; private String downloadUrl; private Handler handler = new Handler(Looper.getMainLooper()) { /* class com.mbridge.msdk.mbjscommon.windvane.AbsMbridgeDownload.AnonymousClass1 */ public final void handleMessage(Message message) { super.handleMessage(message); if (message.what == 1) { AbsMbridgeDownload.this.canNotifyProgress = true; } } }; private HashMap<String, IDownloadListener> keyListenerMap = new HashMap<>(); private int mProgress; private int mStatus; private String packageName; private long progressNotifyInterval = 2000; private WindVaneWebView webView; private String statusIntToString(int i) { return i != 1 ? i != 2 ? (i == 5 || i == 6) ? CampaignEx.JSON_NATIVE_VIDEO_PAUSE : i != 8 ? i != 9 ? "undownload" : "installed" : "fail" : "downloading" : bf.o; } public abstract void sendNoticeAndCallBackClick(Object obj, String str); private IDownloadListener getiDownloadListenerByUniqueKey(final String str) { if (this.keyListenerMap.containsKey(str)) { return this.keyListenerMap.get(str); } AnonymousClass2 r0 = new IDownloadListener() { /* class com.mbridge.msdk.mbjscommon.windvane.AbsMbridgeDownload.AnonymousClass2 */ @Override // com.mbridge.msdk.out.IDownloadListener public final void onStart() { } @Override // com.mbridge.msdk.out.IDownloadListener public final void onStatus(int i) { w.a("click control", "onStatus:" + i); if (AbsMbridgeDownload.this.mStatus != i) { w.a("click control", "========onStatus:" + i); AbsMbridgeDownload.this.mStatus = i; AbsMbridgeDownload.this.onDownloadAPKStatusChange(i, str); } } @Override // com.mbridge.msdk.out.IDownloadListener public final void onProgressUpdate(int i) { w.a("click control", "onProgressUpdate:" + i); if (AbsMbridgeDownload.this.canNotifyProgress || (i == 100 && AbsMbridgeDownload.this.mProgress != i)) { w.a("click control", "=============onProgressUpdate:" + i); AbsMbridgeDownload.this.canNotifyProgress = false; AbsMbridgeDownload.this.handler.sendEmptyMessageDelayed(1, AbsMbridgeDownload.this.progressNotifyInterval); AbsMbridgeDownload.this.mProgress = i; AbsMbridgeDownload.this.onDownloadAPKProgressChange(i, str); } } @Override // com.mbridge.msdk.out.IDownloadListener public final void onEnd(int i, int i2, String str) { String str2 = AbsMbridgeDownload.this.TAG; w.b(str2, "download listener onEnd result = " + i + " nid = " + i2 + " file = " + str); if (!TextUtils.isEmpty(str)) { File file = new File(str); if (file.exists()) { c.a(AbsMbridgeDownload.this.mContext, Uri.fromFile(file), AbsMbridgeDownload.this.downloadUrl, str); } } } }; this.keyListenerMap.put(str, r0); return r0; } private String getUniqueKeyAndIntervalTimeFromCampaign(JSONObject jSONObject) { String str = ""; if (jSONObject != null) { try { if (jSONObject.opt(this.JSON_KEY_AKDLUI) != null) { str = jSONObject.getString(this.JSON_KEY_AKDLUI); } if (jSONObject.opt(this.JSON_KEY_DOWNLOAD_PROGRESS_NOTIFY_INTERVAL) != null) { this.progressNotifyInterval = jSONObject.optLong(this.JSON_KEY_DOWNLOAD_PROGRESS_NOTIFY_INTERVAL, this.DEFAULT_PROGRESS_NOTIFY_INTERVAL); } } catch (JSONException e) { e.printStackTrace(); } } return str; } private String getUniqueKeyAndUrl(String str) throws JSONException { if (TextUtils.isEmpty(str)) { return ""; } JSONObject jSONObject = new JSONObject(str); String string = jSONObject.getString(this.JSON_KEY_UNIQUE); this.downloadUrl = jSONObject.getString(this.JSON_KEY_URL); this.packageName = jSONObject.optString(this.JSON_KEY_PACKAGE_NAME); return string; } public void getMultipleDownloadAPKStatus(Object obj, String str) { String optString; JSONObject downloadStatus; this.currentObject = obj; if (!TextUtils.isEmpty(str)) { try { JSONObject jSONObject = new JSONObject(str); JSONArray jSONArray = new JSONArray(); JSONArray optJSONArray = jSONObject.optJSONArray("downloaderList"); if (optJSONArray == null) { callbackExcep(obj, "downloaderList is null"); } else if (optJSONArray.length() > 0) { for (int i = 0; i < optJSONArray.length(); i++) { JSONObject optJSONObject = optJSONArray.optJSONObject(i); if (!(optJSONObject == null || (downloadStatus = getDownloadStatus(obj, (optString = optJSONObject.optString("uniqueKey")))) == null)) { downloadStatus.put("uniqueKey", optString); jSONArray.put(downloadStatus); } } } else { callbackExcep(obj, "downloaderList is 0"); } if (jSONArray.length() > 0) { JSONObject jSONObject2 = new JSONObject(); jSONObject2.put("downloaderList", jSONArray); callbackSuccessWithData(obj, jSONObject2); } } catch (Throwable th) { th.printStackTrace(); callbackExcep(obj, th.getMessage()); } } else { callbackExcep(obj, "params is null"); } } public void getDownloadAPKStatus(Object obj, String str) { this.currentObject = obj; try { JSONObject downloadStatus = getDownloadStatus(obj, getUniqueKeyAndUrl(str)); if (downloadStatus != null) { callbackSuccessWithData(obj, downloadStatus); } } catch (Throwable th) { th.printStackTrace(); callbackExcep(obj, th.getMessage()); } } private JSONObject getDownloadStatus(Object obj, String str) { try { this.currentObject = obj; if (!TextUtils.isEmpty(str)) { Class<?> cls = Class.forName("com.mbridge.msdk.mbdownload.manager.ADownloadManager"); Object invoke = cls.getMethod("getInstance", new Class[0]).invoke(null, new Object[0]); int intValue = ((Integer) cls.getMethod("getTaskStatusByUniqueKey", String.class).invoke(invoke, str)).intValue(); int intValue2 = ((Integer) cls.getMethod("getTaskProgressByUniqueKey", String.class).invoke(invoke, str)).intValue(); JSONObject jSONObject = new JSONObject(); jSONObject.put("status", statusIntToString(intValue)); jSONObject.put("progress", intValue2); return jSONObject; } callbackExcep(obj, "uniqueKey is null"); return null; } catch (Throwable th) { w.a(this.TAG, th.getMessage()); callbackExcep(obj, th.getMessage()); } } private void checkMustParamsAndFillDefaultIfNull(JSONObject jSONObject, String str, Object obj) { try { if (jSONObject.opt(str) == null) { jSONObject.put(str, obj); } } catch (JSONException e) { e.printStackTrace(); } } private void addMultipleDownloaderListener(Object obj, String str) { this.currentObject = obj; if (!TextUtils.isEmpty(str)) { try { JSONArray optJSONArray = new JSONObject(str).optJSONArray("akdluiList"); if (optJSONArray == null) { callbackExcep(obj, "akdluiList is null"); } else if (optJSONArray.length() > 0) { for (int i = 0; i < optJSONArray.length(); i++) { addDownloadListening(obj, optJSONArray.optString(i)); } } else { callbackExcep(obj, "akdluiList is 0"); } } catch (JSONException e) { e.printStackTrace(); callbackExcep(obj, e.getMessage()); } } } public String addDownloaderListener(Object obj, String str) { w.d("=====AbsMbridgeDownload", "====before---params:" + str); this.currentObject = obj; if (!TextUtils.isEmpty(str)) { try { JSONObject jSONObject = new JSONObject(str); String uniqueKeyAndIntervalTimeFromCampaign = getUniqueKeyAndIntervalTimeFromCampaign(jSONObject); checkMustParamsAndFillDefaultIfNull(jSONObject, this.JSON_KEY_AKDLUI, ""); checkMustParamsAndFillDefaultIfNull(jSONObject, DomainCampaignEx.JSON_KEY_ATAT_TYPE, 0); checkMustParamsAndFillDefaultIfNull(jSONObject, DomainCampaignEx.JSON_KEY_NTBARPASBL, 0); checkMustParamsAndFillDefaultIfNull(jSONObject, DomainCampaignEx.JSON_KEY_NTBARPT, 0); addDownloadListening(obj, uniqueKeyAndIntervalTimeFromCampaign); str = jSONObject.toString(); } catch (JSONException e) { e.printStackTrace(); callbackExcep(obj, e.getMessage()); } } w.d("=====AbsMbridgeDownload", "====end--params:" + str); return str; } private void addDownloadListening(Object obj, String str) { if (!TextUtils.isEmpty(str)) { try { IDownloadListener iDownloadListener = getiDownloadListenerByUniqueKey(str); Class<?> cls = Class.forName("com.mbridge.msdk.mbdownload.manager.ADownloadManager"); Object invoke = cls.getMethod("getInstance", new Class[0]).invoke(null, new Object[0]); cls.getMethod("addDownloadListener", String.class, IDownloadListener.class).invoke(invoke, str, iDownloadListener); callbackSuccess(obj); } catch (Throwable th) { w.a(this.TAG, th.getMessage()); callbackExcep(obj, th.getMessage()); } } else { callbackExcep(obj, "uniqueKey is null"); } } public void restartDownloadAPK(Object obj, String str) { this.currentObject = obj; try { String uniqueKeyAndUrl = getUniqueKeyAndUrl(str); IDownloadListener iDownloadListener = getiDownloadListenerByUniqueKey(uniqueKeyAndUrl); Class<?> cls = Class.forName("com.mbridge.msdk.mbdownload.manager.ADownloadManager"); Object invoke = cls.getMethod("getInstance", new Class[0]).invoke(null, new Object[0]); cls.getMethod("addDownloadListener", String.class, IDownloadListener.class).invoke(invoke, uniqueKeyAndUrl, iDownloadListener); cls.getMethod("start", String.class, String.class).invoke(invoke, uniqueKeyAndUrl, this.downloadUrl); parseActionEvent(obj, str); callbackSuccess(obj); } catch (Throwable th) { w.a(this.TAG, th.getMessage()); callbackExcep(obj, th.getMessage()); } } public void installAPK(Object obj, String str) { try { getUniqueKeyAndUrl(str); parseActionEvent(obj, str); callbackSuccess(obj); } catch (Throwable th) { w.a(this.TAG, th.getMessage()); callbackExcep(obj, th.getMessage()); } } public void activateAPK(Object obj, String str) { try { getUniqueKeyAndUrl(str); parseActionEvent(obj, str); callbackSuccess(obj); } catch (Exception e) { callbackExcep(obj, e.getMessage()); } } public void pauseDownloadAPK(Object obj, String str) { try { String uniqueKeyAndUrl = getUniqueKeyAndUrl(str); Class<?> cls = Class.forName("com.mbridge.msdk.mbdownload.manager.ADownloadManager"); Object invoke = cls.getMethod("getInstance", new Class[0]).invoke(null, new Object[0]); cls.getMethod(CampaignEx.JSON_NATIVE_VIDEO_PAUSE, String.class).invoke(invoke, uniqueKeyAndUrl); parseActionEvent(obj, str); callbackSuccess(obj); } catch (Throwable th) { w.a(this.TAG, th.getMessage()); callbackExcep(obj, th.getMessage()); } } /* access modifiers changed from: private */ /* access modifiers changed from: public */ private void onDownloadAPKStatusChange(int i, String str) { try { JSONObject jSONObject = new JSONObject(); jSONObject.put(this.JSON_KEY_UNIQUE, str); jSONObject.put(this.JSON_KEY_URL, this.downloadUrl); jSONObject.put(this.JSON_KEY_STATUS, statusIntToString(i)); final String encodeToString = Base64.encodeToString(jSONObject.toString().getBytes(), 2); Object obj = this.currentObject; if (obj instanceof a) { a aVar = (a) obj; if (aVar.a != null && !aVar.a.isDestoryed()) { aVar.a.post(new Runnable() { /* class com.mbridge.msdk.mbjscommon.windvane.AbsMbridgeDownload.AnonymousClass3 */ public final void run() { h.a().a(AbsMbridgeDownload.this.currentObject, "onDownloadAPKStatusChange", encodeToString); } }); } } } catch (JSONException e) { e.printStackTrace(); } } /* access modifiers changed from: private */ /* access modifiers changed from: public */ private void onDownloadAPKProgressChange(int i, String str) { try { JSONObject jSONObject = new JSONObject(); jSONObject.put(this.JSON_KEY_UNIQUE, str); jSONObject.put(this.JSON_KEY_URL, this.downloadUrl); jSONObject.put(this.JSON_KEY_PROGRESS, i); final String encodeToString = Base64.encodeToString(jSONObject.toString().getBytes(), 2); Object obj = this.currentObject; if (obj instanceof a) { a aVar = (a) obj; if (aVar.a != null && !aVar.a.isDestoryed()) { aVar.a.post(new Runnable() { /* class com.mbridge.msdk.mbjscommon.windvane.AbsMbridgeDownload.AnonymousClass4 */ public final void run() { h.a().a(AbsMbridgeDownload.this.currentObject, "onDownloadAPKProgressChange", encodeToString); } }); } } } catch (JSONException e) { e.printStackTrace(); } } private void parseActionEvent(Object obj, String str) { try { if (!TextUtils.isEmpty(str)) { JSONObject jSONObject = new JSONObject(str); if (jSONObject.opt(this.JSON_KEY_CAMPAIGN) != null) { sendNoticeAndCallBackClick(obj, jSONObject.getString(this.JSON_KEY_CAMPAIGN)); } } } catch (JSONException e) { e.printStackTrace(); } } }