翰林优商.apk(点击下载) / UaidTracker.java


package com.nirvana.tools.logger;

import android.content.Context;
import android.net.Network;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import com.bytedance.sdk.openadsdk.api.plugin.PluginConstants;
import com.mbridge.msdk.playercommon.exoplayer2.text.ttml.TtmlNode;
import com.nirvana.tools.cache.CacheHandler;
import com.nirvana.tools.cache.CacheManager;
import com.nirvana.tools.cache.SharedPreferenceTemplate;
import com.nirvana.tools.core.ExecutorManager;
import com.nirvana.tools.core.MobileNetRequestManager;
import com.nirvana.tools.core.NetworkUtils;
import com.nirvana.tools.core.SupportJarUtils;
import com.nirvana.tools.logger.uaid.HttpUtils;
import com.nirvana.tools.logger.uaid.UaidUtils;
import java.text.ParseException;
import org.json.JSONException;
import org.json.JSONObject;

public class UaidTracker {
    private static final String CMCC = "CMCC";
    private static final long CMCC_EXPIRED_TIME = 120000;
    private static final String CMCC_URL = "https://verify.cmpassport.com/h5/getMobile";
    private static final String CUCC = "CUCC";
    private static final long CUCC_EXPIRED_TIME = 60000;
    private static final String CUCC_GET_AUTH_ADDR_URL = "https://nisportal.10010.com:9001/api";
    private static final String KEY_CACHE_UAID_TRACKER = "KEY_CACHE_UAID_TRACKER";
    private static final String TAG = "UaidTracker";
    private static final String UAID_EXPIRED_TIME_KEY = "expiredTime";
    private static final String UAID_ISUSABLE_KEY = "isUsable";
    private static final String UAID_TOKENS_KEY = "tokens";
    private static final String UAID_TRACKER_DATA = "UAID_TRACKER_DATA";
    private static final int UAID_TRACKER_DATA_VERSION = 1;
    private static boolean isTackerEnable = false;
    private static volatile UaidTracker sInstance;
    private String cmccAppID = "";
    private String cmccAppKey = "";
    private String cuccAppID = "";
    private boolean isLoggerEnable = false;

    private CacheHandler getCacheHandler(Context context, String str, String str2) {
        CacheManager instance = CacheManager.getInstance(context.getApplicationContext());
        CacheHandler cacheHandler = instance.getCacheHandler(KEY_CACHE_UAID_TRACKER);
        if (cacheHandler != null) {
            return cacheHandler;
        }
        return instance.registerCacheHandler(KEY_CACHE_UAID_TRACKER, new SharedPreferenceTemplate(1, false, UAID_TRACKER_DATA, str2 + str));
    }

    public static UaidTracker getInstance() {
        if (sInstance == null) {
            synchronized (UaidTracker.class) {
                if (sInstance == null) {
                    sInstance = new UaidTracker();
                }
            }
        }
        return sInstance;
    }

    public static boolean isEnable() {
        return isTackerEnable;
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void requestToken(Context context, String str, String str2, boolean z, Network network) {
        if ("CMCC".equals(str)) {
            requestTokenCmcc(context, str, str2, z, network);
        } else if ("CUCC".equals(str)) {
            requestTokenCucc(context, str, str2, z, network);
        }
    }

    private void requestTokenCmcc(Context context, String str, String str2, boolean z, Network network) {
        if (z ? new MobileNetRequestManager().switchToMobile_4x(context, CMCC_URL) : true) {
            try {
                String post = HttpUtils.post(CMCC_URL, UaidUtils.composeCmccGetTokenParams(this.cmccAppID, this.cmccAppKey), 3000, network);
                if (this.isLoggerEnable) {
                    Log.w(TAG, "requestTokenCmcc====respone:" + post);
                }
                JSONObject jSONObject = new JSONObject(post);
                JSONObject jSONObject2 = jSONObject.getJSONObject(TtmlNode.TAG_BODY);
                JSONObject jSONObject3 = jSONObject.getJSONObject("header");
                String string = jSONObject2.getString("resultCode");
                String string2 = jSONObject2.getString("token");
                String string3 = jSONObject3.getString("timestamp");
                if ("103000".equals(string) && !TextUtils.isEmpty(string2)) {
                    JSONObject jSONObject4 = new JSONObject();
                    JSONObject jSONObject5 = new JSONObject();
                    jSONObject5.put("token", string2);
                    jSONObject4.put(UAID_TOKENS_KEY, jSONObject5);
                    Long valueOf = Long.valueOf(System.currentTimeMillis());
                    if (!TextUtils.isEmpty(string3)) {
                        try {
                            valueOf = Long.valueOf(UaidUtils.TIMESTAMP_FORMAT.parse(string3).getTime());
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                    }
                    jSONObject4.put(UAID_EXPIRED_TIME_KEY, valueOf.longValue() + CMCC_EXPIRED_TIME);
                    jSONObject4.put(UAID_ISUSABLE_KEY, false);
                    getCacheHandler(context, str, str2).save(jSONObject4.toString());
                }
            } catch (JSONException e2) {
                e2.printStackTrace();
                if (this.isLoggerEnable) {
                    Log.e(TAG, "requestTokenCmcc====e:" + e2.getMessage());
                }
            }
        }
    }

    /* JADX WARNING: Removed duplicated region for block: B:17:0x0061  */
    /* JADX WARNING: Removed duplicated region for block: B:35:? A[RETURN, SYNTHETIC] */
    private void requestTokenCucc(Context context, String str, String str2, boolean z, Network network) {
        String str3;
        boolean switchToMobile_4x = z ? new MobileNetRequestManager().switchToMobile_4x(context, CUCC_GET_AUTH_ADDR_URL) : true;
        if (switchToMobile_4x) {
            String str4 = HttpUtils.get("https://nisportal.10010.com:9001/api?" + UaidUtils.composeCuccAuthAddrParams(this.cuccAppID), 3000, network);
            if (this.isLoggerEnable) {
                Log.w(TAG, "requestTokenCucc==url==response:" + str4);
            }
            if (!TextUtils.isEmpty(str4)) {
                try {
                    str3 = new JSONObject(str4).getString("authurl");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                if (TextUtils.isEmpty(str3)) {
                    if (z) {
                        switchToMobile_4x = new MobileNetRequestManager().switchToMobile_4x(context, str3);
                    }
                    if (switchToMobile_4x) {
                        String localIPAddress = NetworkUtils.getLocalIPAddress();
                        String str5 = HttpUtils.get(str3 + "/api?" + UaidUtils.composeCuccAuthCodeParams(this.cuccAppID, localIPAddress), 3000, network);
                        if (this.isLoggerEnable) {
                            Log.w(TAG, "requestTokenCucc==token==response:" + str5);
                        }
                        try {
                            JSONObject jSONObject = new JSONObject(str5);
                            if (jSONObject.has(PluginConstants.KEY_ERROR_CODE)) {
                                JSONObject jSONObject2 = new JSONObject();
                                jSONObject2.put(UAID_TOKENS_KEY, jSONObject);
                                jSONObject2.put(UAID_EXPIRED_TIME_KEY, Long.valueOf(System.currentTimeMillis()).longValue() + 60000);
                                jSONObject2.put(UAID_ISUSABLE_KEY, false);
                                getCacheHandler(context, str, str2).save(jSONObject2.toString());
                                return;
                            }
                            return;
                        } catch (JSONException e2) {
                            if (this.isLoggerEnable) {
                                Log.e(TAG, "requestTokenCucc====e:" + e2.getMessage());
                                return;
                            }
                            return;
                        }
                    } else {
                        return;
                    }
                } else {
                    return;
                }
            }
            str3 = "";
            if (TextUtils.isEmpty(str3)) {
            }
        }
    }

    private void switchToMobileNet(final Context context, final String str, final String str2) {
        ExecutorManager.getInstance().scheduleFuture(new ExecutorManager.SafeRunnable() {
            /* class com.nirvana.tools.logger.UaidTracker.AnonymousClass1 */

            /* access modifiers changed from: protected */
            @Override // com.nirvana.tools.core.ExecutorManager.SafeRunnable
            public void onException(Throwable th) {
                if (UaidTracker.this.isLoggerEnable) {
                    Log.e(UaidTracker.TAG, "====safeRun===Failed:" + th.getMessage());
                }
            }

            /* access modifiers changed from: protected */
            @Override // com.nirvana.tools.core.ExecutorManager.SafeRunnable
            public void safeRun() {
                if (NetworkUtils.isMobileNetConnected(context)) {
                    Log.i(UaidTracker.TAG, "====isMobileNetConnected===");
                    UaidTracker.this.requestToken(context, str, str2, false, null);
                } else if (NetworkUtils.isMobileNetworkOpen(context)) {
                    Log.i(UaidTracker.TAG, "====isMobileNetworkOpen===");
                    int checkSelfPermission = SupportJarUtils.checkSelfPermission(context.getApplicationContext(), "android.permission.CHANGE_NETWORK_STATE");
                    int checkSelfPermission2 = SupportJarUtils.checkSelfPermission(context.getApplicationContext(), "android.permission.WRITE_SETTINGS");
                    if (checkSelfPermission != 0) {
                        Log.w(UaidTracker.TAG, "====permissionChangeNet==NotGrant===");
                        return;
                    }
                    if (checkSelfPermission2 != 0) {
                        Log.w(UaidTracker.TAG, "====permissionWriteSet==NotGrant===");
                    }
                    if (Build.VERSION.SDK_INT >= 21) {
                        new MobileNetRequestManager().switchToMobile_L(context, 3000, new MobileNetRequestManager.SwitchToMobileListener() {
                            /* class com.nirvana.tools.logger.UaidTracker.AnonymousClass1.AnonymousClass1 */

                            @Override // com.nirvana.tools.core.MobileNetRequestManager.SwitchToMobileListener
                            public void onFail(int i, String str, long j) {
                                if (UaidTracker.this.isLoggerEnable) {
                                    Log.e(UaidTracker.TAG, "====switchToMobile_L===Failed:" + str);
                                }
                            }

                            @Override // com.nirvana.tools.core.MobileNetRequestManager.SwitchToMobileListener
                            public void onSuccess(Network network, long j) {
                                UaidTracker.this.requestToken(context, str, str2, false, network);
                            }
                        });
                    } else {
                        UaidTracker.this.requestToken(context, str, str2, true, null);
                    }
                }
            }
        });
    }

    public String getIdToken(Context context, String str, String str2) {
        String load = getCacheHandler(context, str, str2).load();
        if (TextUtils.isEmpty(load)) {
            return null;
        }
        try {
            JSONObject jSONObject = new JSONObject(load);
            long j = jSONObject.getLong(UAID_EXPIRED_TIME_KEY);
            boolean z = jSONObject.getBoolean(UAID_ISUSABLE_KEY);
            if (j > System.currentTimeMillis() && !z) {
                return jSONObject.getJSONObject(UAID_TOKENS_KEY).toString();
            }
        } catch (JSONException unused) {
        }
        return null;
    }

    public boolean isUsable(Context context, String str, String str2) {
        try {
            return new JSONObject(getCacheHandler(context, str, str2).load()).getBoolean(UAID_ISUSABLE_KEY);
        } catch (JSONException unused) {
            return false;
        }
    }

    public void setEnable(boolean z) {
        isTackerEnable = z;
    }

    public void setKey(String str, String str2, String str3) {
        this.cmccAppID = str;
        this.cmccAppKey = str2;
        this.cuccAppID = str3;
    }

    public void setLoggerEnable(boolean z) {
        this.isLoggerEnable = z;
    }

    public void setUsable(Context context, String str, String str2) {
        CacheHandler cacheHandler = getCacheHandler(context, str, str2);
        try {
            JSONObject jSONObject = new JSONObject(cacheHandler.load());
            jSONObject.put(UAID_ISUSABLE_KEY, true);
            cacheHandler.save(jSONObject.toString());
        } catch (JSONException unused) {
        }
    }

    public void updateIdTokens(Context context, String str, String str2) {
        if (isTackerEnable && !TextUtils.isEmpty(str) && !TextUtils.isEmpty(str2)) {
            String load = getCacheHandler(context, str, str2).load();
            if (TextUtils.isEmpty(load)) {
                Log.i(TAG, "Token===empty====");
                switchToMobileNet(context, str, str2);
                return;
            }
            if (this.isLoggerEnable) {
                Log.w(TAG, "updateIdTokens:" + load);
            }
            try {
                JSONObject jSONObject = new JSONObject(load);
                long j = jSONObject.getLong(UAID_EXPIRED_TIME_KEY);
                boolean z = jSONObject.getBoolean(UAID_ISUSABLE_KEY);
                if (j < System.currentTimeMillis() && !z) {
                    Log.w(TAG, "requestToken===过期且未被使用====");
                    switchToMobileNet(context, str, str2);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}