Swiggy v4.51.1版本的 MD5 值为:5af7ec91512a0a8c1510e3f8bac20b8b

以下内容为反编译后的 d.java 源代码,内容仅作参考


package amazonpay.silentpay;

import amazonpay.silentpay.i;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Build;
import com.amazon.identity.auth.device.api.authorization.Region;
import com.newrelic.agent.android.api.v2.TraceFieldInterface;
import com.newrelic.agent.android.instrumentation.AsyncTaskInstrumentation;
import com.newrelic.agent.android.instrumentation.Instrumented;
import com.newrelic.agent.android.instrumentation.JSONObjectInstrumentation;
import com.newrelic.agent.android.instrumentation.URLConnectionInstrumentation;
import com.newrelic.agent.android.tracing.Trace;
import com.newrelic.agent.android.tracing.TraceMachine;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.X509TrustManager;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@Instrumented
public final class d {
    private static final com.amazon.identity.auth.device.api.authorization.e[] t = {com.amazon.identity.auth.device.api.authorization.f.a("payments::conduct_silentpay"), com.amazon.identity.auth.device.api.authorization.f.a("profile:contact")};
    private static WeakReference<d> u = new WeakReference<>(null);
    private static p v;
    private static PackageManager w;
    private static String x;
    private int a;
    private String b;
    private int c;
    private float d;
    private int e;
    private long f;
    private long g;
    private int h;
    private String i;
    private int j;
    private String k;
    private String l;
    private String m;
    private String n;
    private int o;
    private Region p;
    private com.amazon.identity.auth.device.api.authorization.e[] q;
    private boolean r;
    private List<String> s;

    @Instrumented
    public static class a extends AsyncTask implements TraceFieldInterface {
        private static boolean b = false;
        public Trace a;

        private a() {
        }

        private boolean c() {
            if (!d.v.g("UPDATE_CONFIG_AFTER_MS")) {
                d.v.c("UPDATE_CONFIG_AFTER_MS", 0L);
            }
            if (d.v.f("UPDATE_CONFIG_AFTER_MS") < System.currentTimeMillis()) {
                return true;
            }
            return false;
        }

        private String d() {
            if (d.v.g("CONFIGURATION_URL")) {
                return d.v.a("CONFIGURATION_URL");
            }
            return "https://amazonpay.amazon.in/getDynamicConfig";
        }

        @Override
        public void _nr_setTrace(Trace trace) {
            try {
                this.a = trace;
            } catch (Exception unused) {
            }
        }

        protected String a(Void... voidArr) {
            URL url;
            try {
                if (!isCancelled()) {
                    String d = d();
                    try {
                        HashMap<String, String> hashMap = new HashMap<String, String>() {
                            {
                                put("key", "android-silentPay-v2");
                            }
                        };
                        if (d != null) {
                            url = new URL(r.b(new URL(d), hashMap, null).toString());
                        } else {
                            url = new URL(r.b(new URL("https://amazonpay.amazon.in/getDynamicConfig"), hashMap, null).toString());
                        }
                    } catch (MalformedURLException e) {
                        k.e("FetchConfigTask", "Malformed url in background task", e);
                        o.d(i.a.CONFIG_FETCH_UNSUCCESSFUL);
                        url = null;
                    }
                    if (url != null) {
                        try {
                            HttpsURLConnection httpsURLConnection = (HttpsURLConnection) URLConnectionInstrumentation.openConnection(url.openConnection());
                            if (httpsURLConnection != null) {
                                int responseCode = httpsURLConnection.getResponseCode();
                                if (responseCode == 200) {
                                    o.d(i.a.CONFIG_FETCH_SUCCESSFUL);
                                    return r.c(httpsURLConnection.getInputStream());
                                }
                                o.d(i.a.CONFIG_FETCH_UNSUCCESSFUL);
                                k.d("FetchConfigTask", String.format("Config endpoint returned non 200 response: %s", String.valueOf(responseCode)));
                                return null;
                            }
                        } catch (IOException e2) {
                            k.e("FetchConfigTask", "Unable to contact config endpoint", e2);
                            o.d(i.a.CONFIG_FETCH_UNSUCCESSFUL);
                        }
                    }
                }
            } catch (Exception e3) {
                k.e("FetchConfigTask", "Something went wrong while fetching config", e3);
                o.d(i.a.CONFIG_FETCH_UNSUCCESSFUL);
            }
            return null;
        }

        protected void b(String str) {
            super.onPostExecute(str);
            if (!isCancelled() && str != null) {
                try {
                    JSONObject jSONObject = new JSONObject(str);
                    if (jSONObject.has("UPDATE_CONFIG_AFTER_MS")) {
                        d.v.c("UPDATE_CONFIG_AFTER_MS", System.currentTimeMillis() + jSONObject.getLong("UPDATE_CONFIG_AFTER_MS"));
                    }
                    d.v.d("CONFIGURATION", JSONObjectInstrumentation.toString(jSONObject));
                    d.v.c("UPDATE_CONFIG_AFTER_MS", System.currentTimeMillis() + Long.valueOf(jSONObject.getString("UPDATE_CONFIG_AFTER_MS")).longValue());
                    d.v.d("CONFIGURATION_URL", jSONObject.getString("CONFIGURATION_URL"));
                    b = false;
                } catch (Exception e) {
                    k.e("FetchConfigTask", "Error while processing dynamic config", e);
                    o.d(i.a.CONFIG_PROCESSING_ERROR);
                    d.v.b();
                }
            }
        }

        @Override
        protected Object doInBackground(Object[] objArr) {
            try {
                TraceMachine.enterMethod(this.a, "d$a#doInBackground", null);
            } catch (NoSuchFieldError unused) {
                TraceMachine.enterMethod(null, "d$a#doInBackground", null);
            }
            String a = a((Void[]) objArr);
            TraceMachine.exitMethod();
            return a;
        }

        @Override
        protected void onPostExecute(Object obj) {
            try {
                TraceMachine.enterMethod(this.a, "d$a#onPostExecute", null);
            } catch (NoSuchFieldError unused) {
                TraceMachine.enterMethod(null, "d$a#onPostExecute", null);
            }
            b((String) obj);
            TraceMachine.exitMethod();
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            if (!c() || b) {
                cancel(true);
                b = true;
            }
        }

        a(b bVar) {
            this();
        }
    }

    public static class b implements X509TrustManager {
    }

    @Instrumented
    public static class c extends AsyncTask implements TraceFieldInterface {
        public Trace a;

        private c() {
        }

        @Override
        public void _nr_setTrace(Trace trace) {
            try {
                this.a = trace;
            } catch (Exception unused) {
            }
        }

        protected String a(Void... voidArr) {
            try {
                try {
                    d.j("in.amazon.mShop.android.shopping");
                    o.d(i.a.MSHOP_APP_PRESENT);
                } catch (PackageManager.NameNotFoundException unused) {
                    o.d(i.a.MSHOP_APP_NOT_PRESENT);
                    return null;
                }
            } catch (Exception e) {
                k.e("MShopAppTask", "Something went wrong", e);
            }
            return null;
        }

        @Override
        protected Object doInBackground(Object[] objArr) {
            try {
                TraceMachine.enterMethod(this.a, "d$b#doInBackground", null);
            } catch (NoSuchFieldError unused) {
                TraceMachine.enterMethod(null, "d$b#doInBackground", null);
            }
            String a = a((Void[]) objArr);
            TraceMachine.exitMethod();
            return a;
        }

        c(b bVar) {
            this();
        }
    }

    private d(int i, String str, int i2, float f, int i3, long j, long j2, int i4, String str2, int i5, String str3, String str4, String str5, String str6, int i6, Region region, com.amazon.identity.auth.device.api.authorization.e[] eVarArr, boolean z, List<String> list) {
        this.a = i;
        this.b = str;
        this.c = i2;
        this.d = f;
        this.e = i3;
        this.f = j;
        this.g = j2;
        this.h = i4;
        this.i = str2;
        this.j = i5;
        this.k = str3;
        this.l = str4;
        this.m = str5;
        this.n = str6;
        this.o = i6;
        this.p = region;
        this.q = eVarArr;
        this.r = z;
        this.s = list;
    }

    private static void A() {
        try {
            AsyncTaskInstrumentation.execute(new a(null), new Void[0]);
            AsyncTaskInstrumentation.execute(new c(null), new Void[0]);
        } catch (Exception e) {
            k.e("Configuration", "Error while executing background tasks.", e);
        }
    }

    private static boolean B() {
        return v.g("CONFIGURATION");
    }

    private static d C() {
        k.a("Configuration", "Returning default config");
        return new d(0, "Processing...Please Wait.", e.b, 24.0f, e.a, 1800000L, 1000L, 3, "https://amazonpay.amazon.in/postRecords", 5, "https://amazonpay.amazon.in/payments/v1/sfa/instrument/AMAZON_PAY_BALANCE/api/balance", "https://amazonpay.amazon.in/customer/CONSENT_TOKEN/info/v1", "https://amazonpay.amazon.in/payments/v1/sfa/instrument/AMAZON_PAY_BALANCE/api/processCharge", "https://amazonpay.amazon.in/payments/v1/api/chargeStatus", 300000, Region.EU, t, false, null);
    }

    private static d D() throws JSONException {
        k.a("Configuration", "Returning cached config");
        JSONObject jSONObject = new JSONObject(v.a("CONFIGURATION"));
        JSONArray d = d(jSONObject);
        com.amazon.identity.auth.device.api.authorization.e[] eVarArr = new com.amazon.identity.auth.device.api.authorization.e[d.length()];
        for (int i = 0; i < d.length(); i++) {
            if (d.getString(i).equalsIgnoreCase("ProfileScope.profile")) {
                eVarArr[i] = com.amazon.identity.auth.device.api.authorization.d.a();
            } else {
                eVarArr[i] = com.amazon.identity.auth.device.api.authorization.f.a(d.getString(i));
            }
        }
        return new d(Integer.valueOf(jSONObject.getString("MINIMUM_OS_VERSION_FOR_CUSTOM_TAB")).intValue(), jSONObject.getString("TRANSITION_SCREEN_TEXT"), Color.parseColor(jSONObject.getString("TRANSITION_SCREEN_TEXT_COLOR")), Float.valueOf(jSONObject.getString("TRANSITION_SCREEN_TEXT_SIZE")).floatValue(), Color.parseColor(jSONObject.getString("TRANSITION_SCREEN_BACKGROUND_COLOR")), Long.valueOf(jSONObject.getString("PUBLISH_RECORDS_IN_MS")).longValue(), Long.valueOf(jSONObject.getString("MAX_RECORDS_SIZE")).longValue(), Integer.valueOf(jSONObject.getString("PUBLISH_RECORDS_MAX_RETRYS")).intValue(), jSONObject.getString("PUBLISH_RECORDS_ENDPOINT"), Integer.valueOf(jSONObject.getString("PUBLISH_MIN_LOG_LEVEL")).intValue(), jSONObject.getString("BALANCE_ENDPOINT"), jSONObject.getString("CUSTOMER_INFO_ENDPOINT"), jSONObject.getString("PROCESS_CHARGE_ENDPOINT"), jSONObject.getString("CHARGE_STATUS_ENDPOINT"), jSONObject.getInt("APAY_SERVICE_CONNECTION_TIMEOUT"), Region.valueOf(jSONObject.getString("AUTH_REGION")), eVarArr, Boolean.valueOf(jSONObject.getString("RETURN_USER_DATA")).booleanValue(), h(jSONObject));
    }

    private boolean E() {
        boolean z;
        Intent intent = new Intent("android.support.customtabs.action.CustomTabsService");
        intent.setPackage("com.android.chrome");
        List<ResolveInfo> queryIntentServices = w.queryIntentServices(intent, 0);
        if (queryIntentServices != null && !queryIntentServices.isEmpty()) {
            z = true;
        } else {
            z = false;
        }
        k.a("Configuration", String.format("isCustomTabSupported: %s", String.valueOf(z)));
        return z;
    }

    private boolean F() {
        boolean z;
        if (Build.VERSION.SDK_INT >= this.a) {
            z = true;
        } else {
            z = false;
        }
        k.a("Configuration", String.format("isAndroidVersionSupported: %s", String.valueOf(z)));
        return z;
    }

    public static d a(Context context) {
        if (u.get() == null) {
            u = new WeakReference<>(f(context));
        }
        return u.get();
    }

    private static JSONArray d(JSONObject jSONObject) throws JSONException {
        JSONArray jSONArray = jSONObject.getJSONArray("PROFILE_AUTH_SCOPES");
        JSONArray jSONArray2 = jSONObject.getJSONArray("PAYMENT_AUTH_SCOPES");
        JSONArray jSONArray3 = new JSONArray();
        for (int i = 0; i < jSONArray.length(); i++) {
            jSONArray3.put(jSONArray.get(i));
        }
        for (int i2 = 0; i2 < jSONArray2.length(); i2++) {
            jSONArray3.put(jSONArray2.get(i2));
        }
        return jSONArray3;
    }

    private static d f(Context context) {
        v = new p(context.getSharedPreferences("CONFIG_PREFS", 0));
        w = context.getPackageManager();
        x = context.getPackageName();
        A();
        if (B()) {
            try {
                return D();
            } catch (Exception unused) {
                k.a("Configuration", "unable to fetch cached config.");
                v.b();
                return C();
            }
        }
        return C();
    }

    private static List<String> h(JSONObject jSONObject) throws JSONException {
        JSONArray jSONArray = jSONObject.getJSONArray("PUBLISH_LOGS_FOR_APPS");
        if (jSONArray != null && jSONArray.length() > 0) {
            ArrayList arrayList = new ArrayList();
            for (int i = 0; i < jSONArray.length(); i++) {
                arrayList.add(jSONArray.getString(i));
            }
            return arrayList;
        }
        return null;
    }

    public static String j(String str) throws PackageManager.NameNotFoundException {
        return w.getPackageInfo(str, 0).versionName;
    }

    public String b() {
        return this.b;
    }

    public String c(String str) {
        return this.l.replace("{customerIdentifier}", str);
    }

    public int e() {
        return this.c;
    }

    public float i() {
        return this.d;
    }

    public long k() {
        return this.f;
    }

    public long l() {
        return this.g;
    }

    public int m() {
        return this.h;
    }

    public String n() {
        return this.i;
    }

    public int o() {
        return this.j;
    }

    public String p() {
        return this.k;
    }

    public String q() {
        return this.m;
    }

    public String r() {
        return this.n;
    }

    public int s() {
        return this.o;
    }

    public Region t() {
        return this.p;
    }

    public com.amazon.identity.auth.device.api.authorization.e[] u() {
        return this.q;
    }

    public String v() {
        return x;
    }

    public boolean w() {
        return this.r;
    }

    public List<String> x() {
        return this.s;
    }

    public boolean y() {
        if (E() && F()) {
            return true;
        }
        return false;
    }
}