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


package com.androidquery.service;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.text.Editable;
import android.text.Html;
import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.androidquery.util.AQUtility;
import com.androidquery.util.Constants;
import com.baidu.mobads.sdk.internal.a;
import com.bytedance.sdk.openadsdk.api.plugin.PluginConstants;
import com.mbridge.msdk.foundation.entity.CampaignEx;
import com.sigmob.sdk.base.h;
import com.sigmob.sdk.base.mta.PointCategory;
import com.ss.android.download.api.constant.BaseConstants;
import java.util.Locale;
import org.json.JSONObject;
import org.xml.sax.XMLReader;

public class MarketService {
    private static final String BULLET = "•";
    public static final int MAJOR = 2;
    public static final int MINOR = 1;
    public static final int REVISION = 0;
    private static final String SKIP_VERSION = "aqs.skip";
    private static ApplicationInfo ai;
    private static PackageInfo pi;
    private Activity act;
    private AQuery aq;
    private boolean completed;
    private long expire = 720000;
    private boolean fetch;
    private boolean force;
    private Handler handler;
    private int level = 0;
    private String locale;
    private int progress;
    private String rateUrl;
    private String updateUrl;
    private String version;

    private String getHost() {
        return "https://androidquery.appspot.com";
    }

    public MarketService(Activity activity) {
        this.act = activity;
        this.aq = new AQuery(activity);
        this.handler = new Handler(this, null);
        this.locale = Locale.getDefault().toString();
        String marketUrl = getMarketUrl();
        this.rateUrl = marketUrl;
        this.updateUrl = marketUrl;
    }

    public MarketService rateUrl(String str) {
        this.rateUrl = str;
        return this;
    }

    public MarketService level(int i) {
        this.level = i;
        return this;
    }

    public MarketService updateUrl(String str) {
        this.updateUrl = str;
        return this;
    }

    public MarketService locale(String str) {
        this.locale = str;
        return this;
    }

    public MarketService progress(int i) {
        this.progress = i;
        return this;
    }

    public MarketService force(boolean z) {
        this.force = z;
        return this;
    }

    public MarketService expire(long j) {
        this.expire = j;
        return this;
    }

    private ApplicationInfo getApplicationInfo() {
        if (ai == null) {
            ai = this.act.getApplicationInfo();
        }
        return ai;
    }

    private PackageInfo getPackageInfo() {
        if (pi == null) {
            try {
                pi = this.act.getPackageManager().getPackageInfo(getAppId(), 0);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
        }
        return pi;
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private String getQueryUrl() {
        String str = String.valueOf(getHost()) + "/api/market?app=" + getAppId() + "&locale=" + this.locale + "&version=" + getVersion() + "&code=" + getVersionCode() + "&aq=" + Constants.VERSION;
        if (!this.force) {
            return str;
        }
        return String.valueOf(str) + "&force=true";
    }

    private String getAppId() {
        return getApplicationInfo().packageName;
    }

    private Drawable getAppIcon() {
        return getApplicationInfo().loadIcon(this.act.getPackageManager());
    }

    private String getVersion() {
        return getPackageInfo().versionName;
    }

    private int getVersionCode() {
        return getPackageInfo().versionCode;
    }

    public void checkVersion() {
        String queryUrl = getQueryUrl();
        AjaxCallback ajaxCallback = new AjaxCallback();
        ((AjaxCallback) ((AjaxCallback) ((AjaxCallback) ((AjaxCallback) ajaxCallback.url(queryUrl)).type(JSONObject.class)).handler(this.handler, "marketCb")).fileCache(!this.force)).expire(this.expire);
        ((AQuery) this.aq.progress(this.progress)).ajax(ajaxCallback);
    }

    /* access modifiers changed from: private */
    public static boolean openUrl(Activity activity, String str) {
        if (str == null) {
            return false;
        }
        try {
            activity.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(str)));
            return true;
        } catch (Exception unused) {
            return false;
        }
    }

    private String getMarketUrl() {
        String appId = getAppId();
        return BaseConstants.MARKET_PREFIX + appId;
    }

    /* access modifiers changed from: protected */
    public void callback(String str, JSONObject jSONObject, AjaxStatus ajaxStatus) {
        if (jSONObject != null) {
            String optString = jSONObject.optString("version", "0");
            int optInt = jSONObject.optInt(PluginConstants.KEY_ERROR_CODE, 0);
            AQUtility.debug("version", String.valueOf(getVersion()) + "->" + optString + ":" + getVersionCode() + "->" + optInt);
            AQUtility.debug("outdated", Boolean.valueOf(outdated(optString, optInt)));
            if (this.force || outdated(optString, optInt)) {
                showUpdateDialog(jSONObject);
            }
        }
    }

    private boolean outdated(String str, int i) {
        if (str.equals(getSkipVersion(this.act))) {
            return false;
        }
        String version2 = getVersion();
        int versionCode = getVersionCode();
        if (version2.equals(str) || versionCode > i) {
            return false;
        }
        return requireUpdate(version2, str, this.level);
    }

    /* JADX WARNING: Removed duplicated region for block: B:23:0x004f A[RETURN] */
    /* JADX WARNING: Removed duplicated region for block: B:24:0x0050 A[RETURN] */
    private boolean requireUpdate(String str, String str2, int i) {
        if (str.equals(str2)) {
            return false;
        }
        try {
            String[] split = str.split("\\.");
            String[] split2 = str2.split("\\.");
            if (split.length >= 3) {
                if (split2.length >= 3) {
                    if (i != 0) {
                        if (i != 1) {
                            if (i != 2) {
                                return true;
                            }
                            return split[split.length - 3].equals(split2[split2.length - 3]);
                        }
                    } else if (!split[split.length - 1].equals(split2[split2.length - 1])) {
                        return true;
                    }
                    if (!split[split.length - 2].equals(split2[split2.length - 2])) {
                        return true;
                    }
                    if (split[split.length - 3].equals(split2[split2.length - 3])) {
                    }
                }
            }
            return true;
        } catch (Exception e) {
            AQUtility.report(e);
            return true;
        }
    }

    /* access modifiers changed from: protected */
    public void showUpdateDialog(JSONObject jSONObject) {
        if (jSONObject != null && this.version == null && isActive()) {
            JSONObject optJSONObject = jSONObject.optJSONObject("dialog");
            String optString = optJSONObject.optString(h.p, "Update");
            String optString2 = optJSONObject.optString(PointCategory.SKIP, "Skip");
            String optString3 = optJSONObject.optString("rate", "Rate");
            String optString4 = optJSONObject.optString("wbody", "");
            String optString5 = optJSONObject.optString(CampaignEx.JSON_KEY_TITLE, "Update Available");
            AQUtility.debug("wbody", optString4);
            this.version = jSONObject.optString("version", null);
            AlertDialog create = new AlertDialog.Builder(this.act).setIcon(getAppIcon()).setTitle(optString5).setPositiveButton(optString3, this.handler).setNeutralButton(optString2, this.handler).setNegativeButton(optString, this.handler).create();
            create.setMessage(Html.fromHtml(patchBody(optString4), null, this.handler));
            this.aq.show(create);
        }
    }

    private static String patchBody(String str) {
        return "<small>" + str + "</small>";
    }

    /* access modifiers changed from: private */
    public static void setSkipVersion(Context context, String str) {
        PreferenceManager.getDefaultSharedPreferences(context).edit().putString(SKIP_VERSION, str).commit();
    }

    private static String getSkipVersion(Context context) {
        return PreferenceManager.getDefaultSharedPreferences(context).getString(SKIP_VERSION, null);
    }

    private boolean isActive() {
        return !this.act.isFinishing();
    }

    /* access modifiers changed from: private */
    public class Handler implements DialogInterface.OnClickListener, Html.TagHandler {
        private Handler() {
        }

        /* synthetic */ Handler(MarketService marketService, Handler handler) {
            this();
        }

        public void marketCb(String str, JSONObject jSONObject, AjaxStatus ajaxStatus) {
            if (!MarketService.this.act.isFinishing()) {
                if (jSONObject != null) {
                    String optString = jSONObject.optString("status");
                    if ("1".equals(optString)) {
                        if (jSONObject.has("dialog")) {
                            cb(str, jSONObject, ajaxStatus);
                        }
                        if (!MarketService.this.fetch && jSONObject.optBoolean("fetch", false) && ajaxStatus.getSource() == 1) {
                            MarketService.this.fetch = true;
                            String optString2 = jSONObject.optString("marketUrl", null);
                            AjaxCallback ajaxCallback = new AjaxCallback();
                            ((AjaxCallback) ((AjaxCallback) ajaxCallback.url(optString2)).type(String.class)).handler(this, "detailCb");
                            ((AQuery) MarketService.this.aq.progress(MarketService.this.progress)).ajax(ajaxCallback);
                        }
                    } else if ("0".equals(optString)) {
                        ajaxStatus.invalidate();
                    } else {
                        cb(str, jSONObject, ajaxStatus);
                    }
                } else {
                    cb(str, jSONObject, ajaxStatus);
                }
            }
        }

        private void cb(String str, JSONObject jSONObject, AjaxStatus ajaxStatus) {
            if (!MarketService.this.completed) {
                MarketService.this.completed = true;
                MarketService.this.progress = 0;
                MarketService.this.callback(str, jSONObject, ajaxStatus);
            }
        }

        public void detailCb(String str, String str2, AjaxStatus ajaxStatus) {
            if (str2 != null && str2.length() > 1000) {
                String queryUrl = MarketService.this.getQueryUrl();
                AjaxCallback ajaxCallback = new AjaxCallback();
                ((AjaxCallback) ((AjaxCallback) ajaxCallback.url(queryUrl)).type(JSONObject.class)).handler(this, "marketCb");
                ajaxCallback.param(a.f, str2);
                ((AQuery) MarketService.this.aq.progress(MarketService.this.progress)).ajax(ajaxCallback);
            }
        }

        public void onClick(DialogInterface dialogInterface, int i) {
            if (i == -3) {
                MarketService.setSkipVersion(MarketService.this.act, MarketService.this.version);
            } else if (i == -2) {
                MarketService.openUrl(MarketService.this.act, MarketService.this.updateUrl);
            } else if (i == -1) {
                MarketService.openUrl(MarketService.this.act, MarketService.this.rateUrl);
            }
        }

        public void handleTag(boolean z, String str, Editable editable, XMLReader xMLReader) {
            if (!"li".equals(str)) {
                return;
            }
            if (z) {
                editable.append("  ");
                editable.append(MarketService.BULLET);
                editable.append("  ");
                return;
            }
            editable.append("\n");
        }
    }
}