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");
        }
    }
}