Apk Done v1.0版本的 MD5 值为:44cfb8e1ce639995aa7f0de6a3a6388b
以下内容为反编译后的 AdView.java 源代码,内容仅作参考
package com.appsgeyser.sdk.ads;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.WindowManager;
import android.webkit.ConsoleMessage;
import android.webkit.GeolocationPermissions;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.RelativeLayout;
import com.appsgeyser.sdk.InternalEntryPoint;
import com.appsgeyser.sdk.ads.behavior.BehaviorAcceptor;
import com.appsgeyser.sdk.ads.behavior.BehaviorVisitor;
import com.appsgeyser.sdk.ads.behavior.bannerBehaviors.AdViewBehavior;
import com.appsgeyser.sdk.deviceidparser.DeviceIdParameters;
import com.appsgeyser.sdk.deviceidparser.DeviceIdParser;
import com.appsgeyser.sdk.deviceidparser.IDeviceIdParserListener;
import com.appsgeyser.sdk.server.network.OnNetworkStateChangedListener;
public class AdView extends RelativeLayout implements BehaviorAcceptor {
private Activity activity;
private AdsLoader adsLoader;
private WebView browser;
private AdsBannerWebViewClient browserClient;
private boolean isAdmobInitialized;
private OnNetworkStateChangedListener networkListener;
private String uniqueId;
private boolean wasPausedBefore;
public AdView(Context context) {
super(context);
this.wasPausedBefore = false;
this.uniqueId = "-1";
this.isAdmobInitialized = false;
init();
}
private void init() {
this.activity = (Activity) getContext();
this.adsLoader = new AdsLoader();
this.networkListener = new OnNetworkStateChangedListener(this.activity.getLocalClassName()) {
@Override
public void networkIsUp() {
AdView.this.show();
AdView.this.adsLoader.reload();
}
@Override
public void networkIsDown() {
AdView.this.hide();
}
};
InternalEntryPoint.getInstance().addNetworkListener(this.networkListener, getContext());
setVisibility(8);
if (getContext().checkCallingOrSelfPermission("android.permission.ACCESS_NETWORK_STATE") != 0 || getContext().checkCallingOrSelfPermission("android.permission.INTERNET") != 0) {
Log.e("AppsgeyserSDK", "You have to grant ACCESS_NETWORK_STATE and INTERNET permissions to work properly");
return;
}
DeviceIdParser deviceIdParser = DeviceIdParser.getInstance();
if (deviceIdParser.isEmpty()) {
deviceIdParser.rescan(getContext(), new IDeviceIdParserListener() {
@Override
public void onDeviceIdParametersObtained(Context context, DeviceIdParameters deviceIdParameters) {
AdView.this.initWithDeviceIdParameters(deviceIdParameters);
}
});
} else {
initWithDeviceIdParameters(deviceIdParser.getDeviceIdParameters());
}
}
public void initWithDeviceIdParameters(DeviceIdParameters deviceIdParameters) {
WebView webView = new WebView(getContext());
this.browser = webView;
addView(webView, new RelativeLayout.LayoutParams(-1, -1));
this.adsLoader.init(this, deviceIdParameters);
AdsHeaderReceiver adsHeaderReceiver = new AdsHeaderReceiver(this, this.adsLoader);
this.adsLoader.setAdsLoadingFinishedListener(adsHeaderReceiver);
this.adsLoader.setHeaderReceiver(adsHeaderReceiver);
this.browser.addJavascriptInterface(new BannerJavascriptInterface(this, this.adsLoader), "AppsgeyserBanner");
AdsBannerWebViewClient adsBannerWebViewClient = new AdsBannerWebViewClient();
this.browserClient = adsBannerWebViewClient;
adsBannerWebViewClient.setOnPageFinishedListener(this.adsLoader);
this.browserClient.setOnPageStartedListener(this.adsLoader);
this.browser.setWebChromeClient(new WebChromeClient() {
@Override
public void onGeolocationPermissionsShowPrompt(String str, GeolocationPermissions.Callback callback) {
callback.invoke(str, true, false);
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d("SmallBannerJsError", consoleMessage.message() + " -- From line " + consoleMessage.lineNumber() + " of " + consoleMessage.sourceId());
return super.onConsoleMessage(consoleMessage);
}
});
this.browser.setWebViewClient(this.browserClient);
((WindowManager) getContext().getSystemService("window")).getDefaultDisplay().getMetrics(new DisplayMetrics());
applyDefaultSettings();
this.adsLoader.reload();
}
public void applyDefaultSettings() {
setVerticalScrollBarEnabled(false);
setHorizontalScrollBarEnabled(false);
WebView webView = this.browser;
if (webView != null) {
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setAllowFileAccess(true);
settings.setGeolocationEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
Context context = getContext();
String path = context.getDir("appcache", 0).getPath();
String path2 = context.getDir("databases", 0).getPath();
String path3 = context.getDir("geolocation", 0).getPath();
settings.setAppCachePath(path);
settings.setDatabasePath(path2);
settings.setGeolocationDatabasePath(path3);
}
}
public WebView getBrowser() {
return this.browser;
}
public void acceptBehavior(BehaviorVisitor behaviorVisitor) {
if (behaviorVisitor instanceof AdViewBehavior) {
behaviorVisitor.visit(this);
}
}
public void hide() {
Log.d("AppsgeyserSDK", "Hiding banner");
setVisibility(8);
WebView webView = this.browser;
if (webView != null) {
webView.setWebViewClient(null);
this.browser.loadUrl("about:blank");
}
}
public void show() {
Log.d("AppsgeyserSDK", "Showing banner");
setVisibility(0);
WebView webView = this.browser;
if (webView != null) {
webView.setWebViewClient(this.browserClient);
}
}
public void switchToHtmlBanner() {
WebView webView = this.browser;
if (webView == null) {
return;
}
webView.setVisibility(0);
}
public Activity getActivity() {
return this.activity;
}
public void onPause() {
if (this.browser != null) {
post(new Runnable() {
@Override
public void run() {
AdView.this.setVisibility(8);
}
});
if (Build.VERSION.SDK_INT >= 11) {
this.browser.onPause();
}
this.browser.clearHistory();
this.browser.clearCache(true);
this.wasPausedBefore = true;
this.adsLoader.stopLoading();
InternalEntryPoint.getInstance().removeNetworkListener(this.networkListener);
}
}
public void onResume() {
if (this.browser == null || this.adsLoader == null) {
return;
}
if (Build.VERSION.SDK_INT >= 11) {
this.browser.onResume();
}
post(new Runnable() {
@Override
public void run() {
AdView.this.setVisibility(8);
}
});
if (this.wasPausedBefore) {
init();
}
}
public void setUniqueId(String str) {
this.uniqueId = str;
}
public String getUniqueId() {
return this.uniqueId;
}
public void addJsCode(String str) {
WebView webView = this.browser;
if (webView == null || webView.getProgress() < 100 || this.browser.getUrl() == null || this.browser.getUrl().startsWith("https://")) {
return;
}
WebView webView2 = this.browser;
webView2.loadUrl("javascript:(function(){ " + str + " })()");
}
}