AdManagerEx.java 源代码
package com.x8zs.ad;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.Messenger;
import android.text.TextUtils;
import android.util.Log;
import com.efs.sdk.base.Constants;
import com.umeng.analytics.pro.c;
import com.x8zs.BuildConfig;
import com.x8zs.app.a;
import com.x8zs.ds2.R;
import com.x8zs.model.ServerApi;
import com.x8zs.model.b;
import com.x8zs.model.event.ActivityEvent;
import com.x8zs.model.event.AppAccEvent;
import com.x8zs.sandbox.ad.AdEnvCallback;
import com.x8zs.sandbox.ad.AdManager;
import com.x8zs.sandbox.ad.AdResultCallback;
import java.io.File;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import o2.f;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class AdManagerEx {
private static final String TAG = "AdManagerEx";
private static Messenger mLiveBinder = new Messenger(new Handler(Looper.getMainLooper()));
private static AdManagerEx sInstance;
private final Context mContext;
private AdManagerEx(Context context) {
this.mContext = context.getApplicationContext();
}
public static AdManagerEx getInstance() {
AdManagerEx adManagerEx = sInstance;
if (adManagerEx != null) {
return adManagerEx;
}
throw new RuntimeException("You must call init first!!!");
}
public static void init(final Context context) {
if (sInstance == null) {
sInstance = new AdManagerEx(context);
AdManager.init(context, new AdEnvCallback() {
@Override
public String getAdCtrlConfig() {
try {
JSONObject jSONObject = new JSONObject();
if (b.b().g("ad_stack_prefixes")) {
jSONObject.put("ad_stack_prefixes", b.b().e("ad_stack_prefixes"));
}
if (b.b().g("splash_ad_vip_text")) {
jSONObject.put("splash_ad_vip_text", b.b().e("splash_ad_vip_text"));
}
if (b.b().g("ad_close_preload_types")) {
jSONObject.put("ad_close_preload_types", b.b().e("ad_close_preload_types"));
}
if (b.b().g("splash_ad_show_limit")) {
jSONObject.put("splash_ad_show_limit", b.b().c("splash_ad_show_limit", 0));
}
return jSONObject.toString();
} catch (Throwable th) {
th.printStackTrace();
return "";
}
}
@Override
public String getAdProviderConfig() {
try {
JSONObject jSONObject = new JSONObject(context.getSharedPreferences("ad_config", 0).getString("config", ""));
String string = jSONObject.getString("adAgency");
JSONObject jSONObject2 = new JSONObject(jSONObject.getString("param1"));
jSONObject2.put(c.M, string);
Log.d(AdManagerEx.TAG, "[getAdProviderConfig] use cloud config: " + jSONObject2.toString());
return jSONObject2.toString();
} catch (Throwable th) {
th.printStackTrace();
Log.d(AdManagerEx.TAG, "[getAdProviderConfig] use local config: {\"provider\":\"topon\",\"app_id\":\"a608e8adca9f21\",\"app_key\":\"b3a5feea12676085ecfa0c2d0594a781\",\"reward_ad_id\":\"b609a40aa0603d\",\"interstitial_ad_id\":\"b609a40c9ad146\",\"splash_ad_id\":\"b609cc3b5519b0\",\"popup_ad_id\":\"b609cc3ccb370c\",\"popup_ad_id2\":\"b60acc08d244c9\"}");
return BuildConfig.DEFAULT_AD_CONFIG;
}
}
@Override
public String getAdSceneConfig(String str) {
return b.b().e(str);
}
@Override
public String getAppName() {
return context.getString(R.string.app_name);
}
@Override
public String getChannel() {
return a.b().f21547a;
}
@Override
public String getContentSourceConfig() {
return null;
}
@Override
public String getMasterPkg() {
return context.getPackageName();
}
@Override
public Intent getPayActivityIntent() {
return null;
}
@Override
public String getSubChannel() {
return a.b().f21547a;
}
@Override
public String getUserId() {
return f.B(context).f21626a;
}
@Override
public boolean isDebug() {
return new File(new File(Environment.getExternalStorageDirectory(), com.x8zs.morgoo.helper.Log.TAG), "debug.txt").exists();
}
@Override
public void startMissionCenter(Activity activity, String str, int i6) {
}
@Override
public void track(String str, Map<String, String> map) {
com.x8zs.app.c.b().h(str, map);
}
});
if (f.b()) {
Log.d(TAG, "runtime is emulator, give up ad");
return;
} else if (s1.c.a(context, null)) {
Log.d(TAG, "runtime is emulator, give up ad");
return;
} else {
AdManager.getInstance().setupAd();
return;
}
}
throw new RuntimeException("You should call init only onece!!!");
}
public void onAppAccEvent(Activity activity, final AppAccEvent appAccEvent, final IBinder iBinder) {
boolean z6;
String e6 = b.b().e("acc_start_config");
if (TextUtils.isEmpty(e6) || !e6.contains("allowed_status")) {
b.b().j("acc_start_config", "[{\n\t\"app_pkg\": \"*\",\n\t\"allowed_status\": \"2\",\n\t\"types\": [\"popup\"],\n\t\"interval\": 600\n\t\"freq_ctrl\": 0\n}]");
Log.d(TAG, "[onAppAccEvent] use def config");
}
Bundle bundle = new Bundle();
bundle.putString("ad_show_tips", this.mContext.getString(R.string.view_ad_tips));
bundle.putString("loading_policy", "stat_loading");
int i6 = 0;
bundle.putInt("loading_delay", 0);
bundle.putBoolean("full_screen", true);
bundle.putBoolean("check_network", false);
bundle.putBoolean("finish_task", true);
bundle.putString("app_pkg", appAccEvent.pkg);
bundle.putInt("orientation", appAccEvent.orientation);
if (appAccEvent.status == 2) {
z6 = true;
} else {
z6 = false;
}
boolean doShowAdProcess = AdManager.getInstance().doShowAdProcess(activity, "onAppAccEvent", "acc_start_config", "app_acc", appAccEvent.pkg, appAccEvent.times, z6, bundle, new AdManager.AdShowProcessAdapter() {
@Override
public JSONObject getAdConfig(String str) throws JSONException {
String[] split;
boolean optBoolean;
boolean z7;
JSONArray jSONArray = new JSONArray(str);
for (int i7 = 0; i7 < jSONArray.length(); i7++) {
JSONObject jSONObject = jSONArray.getJSONObject(i7);
String optString = jSONObject.optString("app_name");
String optString2 = jSONObject.optString("app_pkg");
if (jSONObject.optBoolean("black")) {
if (AdManager.isAppNameMatchPattern(appAccEvent.name, optString)) {
continue;
} else {
if (AdManager.isAppPkgMatchPattern(appAccEvent.pkg, optString2)) {
continue;
}
split = jSONObject.optString("allowed_status").split(",");
optBoolean = jSONObject.optBoolean("exclude_pause");
if (split != null || split.length == 0 || TextUtils.isEmpty(split[0])) {
if (!optBoolean) {
split = new String[]{"1", "2"};
} else {
split = new String[]{"0", "1", "2"};
}
}
z7 = false;
for (String str2 : split) {
if (Integer.toString(appAccEvent.status).equals(str2)) {
z7 = true;
}
}
if (!z7) {
return jSONObject;
}
}
} else {
if (!AdManager.isAppNameMatchPattern(appAccEvent.name, optString) && !AdManager.isAppPkgMatchPattern(appAccEvent.pkg, optString2)) {
}
split = jSONObject.optString("allowed_status").split(",");
optBoolean = jSONObject.optBoolean("exclude_pause");
if (split != null) {
}
if (!optBoolean) {
}
z7 = false;
while (r5 < r4) {
}
if (!z7) {
}
}
}
return null;
}
});
if (doShowAdProcess) {
AdManager.getInstance().mResultCallback = new AdResultCallback() {
@Override
public void onAdPlayResult(int i7) {
if (iBinder != null) {
try {
Message obtain = Message.obtain();
obtain.what = 2;
obtain.arg1 = i7;
obtain.arg2 = appAccEvent.status;
obtain.replyTo = AdManagerEx.mLiveBinder;
new Messenger(iBinder).send(obtain);
} catch (Throwable th) {
th.printStackTrace();
}
}
}
@Override
public void onAdPlayStart() {
}
};
}
if (iBinder != null) {
try {
Message obtain = Message.obtain();
obtain.what = 1;
if (doShowAdProcess) {
i6 = 1;
}
obtain.arg1 = i6;
obtain.arg2 = appAccEvent.status;
obtain.replyTo = mLiveBinder;
new Messenger(iBinder).send(obtain);
} catch (Throwable th) {
th.printStackTrace();
}
}
}
public void onAppActivityEvent(Activity activity, final ActivityEvent activityEvent) {
if (TextUtils.isEmpty(b.b().e("app_start_config"))) {
b.b().j("app_start_config", "[ { \"app_name\": \"*\", \"types\": [\"splash\"], \"interval\": 600, \"timeout\":8, \"freq_ctrl\":0 } ]");
Log.d(TAG, "[onAppActivityEvent] use def config");
}
Bundle bundle = new Bundle();
bundle.putString("ad_show_tips", "");
bundle.putString("loading_policy", "delay_loading");
bundle.putInt("loading_delay", 3);
bundle.putBoolean("full_screen", true);
bundle.putBoolean("check_network", false);
bundle.putBoolean("finish_task", true);
bundle.putString("app_pkg", activityEvent.pkg);
bundle.putInt("orientation", activityEvent.orientation);
AdManager.getInstance().doShowAdProcess(activity, "onAppActivityEvent", "app_start_config", "app_start", activityEvent.pkg, 0, false, bundle, new AdManager.AdShowProcessAdapter() {
@Override
public JSONObject getAdConfig(String str) throws JSONException {
int optInt;
String optString;
JSONArray jSONArray = new JSONArray(str);
for (int i6 = 0; i6 < jSONArray.length(); i6++) {
JSONObject jSONObject = jSONArray.getJSONObject(i6);
String optString2 = jSONObject.optString("app_name");
String optString3 = jSONObject.optString("app_pkg");
if (jSONObject.optBoolean("black")) {
if (AdManager.isAppNameMatchPattern(activityEvent.name, optString2) || AdManager.isAppPkgMatchPattern(activityEvent.pkg, optString3)) {
Log.d(AdManagerEx.TAG, "[onVMTopAppEvent] block by black");
}
optInt = jSONObject.optInt("orientation");
if (optInt == 0 && optInt != activityEvent.orientation) {
Log.d(AdManagerEx.TAG, "[onVMTopAppEvent] block by orientation");
} else {
optString = jSONObject.optString("activity");
if (TextUtils.isEmpty(optString) && !optString.equals("*") && !optString.equals(activityEvent.cls)) {
Log.d(AdManagerEx.TAG, "[onVMTopAppEvent] block by activity");
} else if (!jSONObject.optBoolean("only_root", true) && !activityEvent.rootActivity) {
Log.d(AdManagerEx.TAG, "[onVMTopAppEvent] block by root");
} else {
return jSONObject;
}
}
} else {
if (!AdManager.isAppNameMatchPattern(activityEvent.name, optString2) && !AdManager.isAppPkgMatchPattern(activityEvent.pkg, optString3)) {
Log.d(AdManagerEx.TAG, "[onVMTopAppEvent] block by white");
}
optInt = jSONObject.optInt("orientation");
if (optInt == 0) {
}
optString = jSONObject.optString("activity");
if (TextUtils.isEmpty(optString)) {
}
if (!jSONObject.optBoolean("only_root", true)) {
}
return jSONObject;
}
}
return null;
}
});
HashMap hashMap = new HashMap();
hashMap.put("app_pkg", activityEvent.pkg);
hashMap.put("app_name", activityEvent.name);
hashMap.put("locale", Locale.getDefault().toString());
hashMap.put("all", activityEvent.pkg + "|" + activityEvent.name + "|" + Locale.getDefault().toString());
com.x8zs.app.c.b().h("app_ui", hashMap);
}
public boolean onDsSplash(Activity activity, AdResultCallback adResultCallback) {
if (TextUtils.isEmpty(b.b().e("splash_config"))) {
b.b().j("splash_config", "{ \"types\": [\"splash\"], \"interval\": 300, \"timeout\":10, \"freq_ctrl\":0 }");
Log.d(TAG, "[onDsSplash] use def config");
}
Bundle bundle = new Bundle();
bundle.putString("ad_show_tips", "");
bundle.putString("loading_policy", Constants.CP_NONE);
bundle.putInt("loading_delay", 0);
bundle.putBoolean("full_screen", true);
bundle.putBoolean("check_network", false);
boolean doShowAdProcess = AdManager.getInstance().doShowAdProcess(activity, "onDsSplash", "splash_config", "ds_splash", "", 0, false, bundle, null);
if (doShowAdProcess) {
AdManager.getInstance().mResultCallback = adResultCallback;
}
return doShowAdProcess;
}
public boolean onPatchApkEvent(Activity activity, AdResultCallback adResultCallback) {
if (TextUtils.isEmpty(b.b().e("patch_config"))) {
b.b().j("patch_config", "{ \"types\": [\"reward\"], \"interval\": 0, \"timeout\":0, \"freq_ctrl\":0 }");
Log.d(TAG, "[onPatchApkEvent] use def config");
}
Bundle bundle = new Bundle();
bundle.putString("ad_show_tips", this.mContext.getString(R.string.view_ad_tips));
bundle.putString("loading_policy", "stat_loading");
bundle.putInt("loading_delay", 0);
bundle.putBoolean("full_screen", false);
bundle.putBoolean("check_network", false);
boolean doShowAdProcess = AdManager.getInstance().doShowAdProcess(activity, "onPatchApkEvent", "patch_config", "patch", "", 0, false, bundle, null);
if (doShowAdProcess) {
AdManager.getInstance().mResultCallback = adResultCallback;
}
return doShowAdProcess;
}
public void syncAdConfig(boolean z6) {
boolean z7 = false;
SharedPreferences sharedPreferences = this.mContext.getSharedPreferences("ad_config", 0);
String string = sharedPreferences.getString("config", "");
long j6 = sharedPreferences.getLong("last_update_time", 0L);
long currentTimeMillis = System.currentTimeMillis();
boolean z8 = true;
if (!TextUtils.isEmpty(string)) {
try {
int i6 = new JSONObject(string).getInt("expiry");
long j7 = currentTimeMillis - j6;
if (i6 == 0) {
i6 = 1;
}
} catch (Throwable th) {
th.printStackTrace();
}
}
z7 = true;
if (!z6) {
z8 = z7;
}
if (!z8) {
Log.d(TAG, "[syncAdConfig] no need to sync");
return;
}
Log.d(TAG, "[syncAdConfig] fire sync");
String e6 = new ServerApi(this.mContext).e(f.B(this.mContext));
if (TextUtils.isEmpty(e6)) {
Log.d(TAG, "[syncAdConfig] ignore empty config");
return;
}
try {
new JSONObject(e6);
sharedPreferences.edit().putString("config", e6).commit();
sharedPreferences.edit().putLong("last_update_time", currentTimeMillis).commit();
Log.d(TAG, "[syncAdConfig] save config");
} catch (Throwable th2) {
th2.printStackTrace();
Log.d(TAG, "[syncAdConfig] ignore bad config");
}
}
}