Stick Squad 3 v1.2.5.9版本的 MD5 值为:375cf7f77a7075270cd68d1397368279
以下内容为反编译后的 M2RActivity.java 源代码,内容仅作参考
package com.fusepowered.m2.mobileads;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.fusepowered.m2.common.AdReport;
import com.fusepowered.m2.common.DataKeys;
import com.fusepowered.m2.common.VisibleForTesting;
import com.fusepowered.m2.common.logging.MoPubLog;
import com.fusepowered.m2.mobileads.BaseInterstitialActivity;
import com.fusepowered.m2.mobileads.CustomEventInterstitial;
import com.fusepowered.m2.mraid.MraidController;
import com.fusepowered.m2.mraid.MraidWebViewDebugListener;
import com.fusepowered.m2.mraid.PlacementType;
public class M2RActivity extends BaseInterstitialActivity {
@Nullable
private MraidWebViewDebugListener mDebugListener;
@Nullable
private MraidController mMraidController;
public static void preRenderHtml(@NonNull Context context, @NonNull final CustomEventInterstitial.CustomEventInterstitialListener customEventInterstitialListener, @NonNull String htmlData) {
BaseWebView dummyWebView = new BaseWebView(context);
dummyWebView.enablePlugins(false);
dummyWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
CustomEventInterstitial.CustomEventInterstitialListener.this.onInterstitialLoaded();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
CustomEventInterstitial.CustomEventInterstitialListener.this.onInterstitialFailed(MoPubErrorCode.MRAID_LOAD_ERROR);
}
});
dummyWebView.loadDataWithBaseURL("http://ads.mopub.com/", htmlData, "text/html", "UTF-8", null);
}
public static void start(@NonNull Context context, @Nullable AdReport adreport, @NonNull String htmlData, long broadcastIdentifier) {
Intent intent = createIntent(context, adreport, htmlData, broadcastIdentifier);
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
Log.d("MraidInterstitial", "MraidActivity.class not found. Did you declare MraidActivity in your manifest?");
}
}
@VisibleForTesting
protected static Intent createIntent(@NonNull Context context, @Nullable AdReport adReport, @NonNull String htmlData, long broadcastIdentifier) {
Intent intent = new Intent(context, (Class<?>) M2RActivity.class);
intent.putExtra(DataKeys.HTML_RESPONSE_BODY_KEY, htmlData);
intent.putExtra(DataKeys.BROADCAST_IDENTIFIER_KEY, broadcastIdentifier);
intent.putExtra(DataKeys.AD_REPORT_KEY, adReport);
intent.addFlags(268435456);
return intent;
}
@Override
public View getAdView() {
String htmlData = getIntent().getStringExtra(DataKeys.HTML_RESPONSE_BODY_KEY);
if (htmlData == null) {
MoPubLog.w("MraidActivity received a null HTML body. Finishing the activity.");
finish();
return new View(this);
}
this.mMraidController = new MraidController(this, this.mAdReport, PlacementType.INTERSTITIAL);
this.mMraidController.setDebugListener(this.mDebugListener);
this.mMraidController.setMraidListener(new MraidController.MraidListener() {
@Override
public void onLoaded(View view) {
MraidController mraidController;
mraidController = M2RActivity.this.mMraidController;
mraidController.loadJavascript(BaseInterstitialActivity.JavaScriptWebViewCallbacks.WEB_VIEW_DID_APPEAR.getJavascript());
}
@Override
public void onFailedToLoad() {
MoPubLog.d("MraidActivity failed to load. Finishing the activity");
EventForwardingBroadcastReceiver.broadcastAction(M2RActivity.this, M2RActivity.this.getBroadcastIdentifier().longValue(), EventForwardingBroadcastReceiver.ACTION_INTERSTITIAL_FAIL);
M2RActivity.this.finish();
}
@Override
public void onClose() {
MraidController mraidController;
mraidController = M2RActivity.this.mMraidController;
mraidController.loadJavascript(BaseInterstitialActivity.JavaScriptWebViewCallbacks.WEB_VIEW_DID_CLOSE.getJavascript());
M2RActivity.this.finish();
}
@Override
public void onExpand() {
}
@Override
public void onOpen() {
EventForwardingBroadcastReceiver.broadcastAction(M2RActivity.this, M2RActivity.this.getBroadcastIdentifier().longValue(), EventForwardingBroadcastReceiver.ACTION_INTERSTITIAL_CLICK);
}
});
this.mMraidController.setUseCustomCloseListener(new MraidController.UseCustomCloseListener() {
@Override
public void useCustomCloseChanged(boolean useCustomClose) {
if (useCustomClose) {
M2RActivity.this.hideInterstitialCloseButton();
} else {
M2RActivity.this.showInterstitialCloseButton();
}
}
});
this.mMraidController.loadContent(htmlData);
return this.mMraidController.getAdContainer();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventForwardingBroadcastReceiver.broadcastAction(this, getBroadcastIdentifier().longValue(), EventForwardingBroadcastReceiver.ACTION_INTERSTITIAL_SHOW);
if (Build.VERSION.SDK_INT >= 14) {
getWindow().setFlags(16777216, 16777216);
}
}
@Override
public void onPause() {
if (this.mMraidController != null) {
this.mMraidController.pause(isFinishing());
}
super.onPause();
}
@Override
public void onResume() {
super.onResume();
if (this.mMraidController != null) {
this.mMraidController.resume();
}
}
@Override
public void onDestroy() {
if (this.mMraidController != null) {
this.mMraidController.destroy();
}
EventForwardingBroadcastReceiver.broadcastAction(this, getBroadcastIdentifier().longValue(), EventForwardingBroadcastReceiver.ACTION_INTERSTITIAL_DISMISS);
super.onDestroy();
}
@VisibleForTesting
public void setDebugListener(@Nullable MraidWebViewDebugListener debugListener) {
this.mDebugListener = debugListener;
if (this.mMraidController != null) {
this.mMraidController.setDebugListener(debugListener);
}
}
}