13Poker by gametower unlimited gems v0.4版本的 MD5 值为:51324fc0f195c34821074948ab266846

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


package com.sd.ads;

import android.content.Context;
import android.util.DisplayMetrics;
import android.util.Log;
import com.adsdk.sdk.Const;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Map;
public class AdRequest {
    static final String AD_TYPE_BANNER = "1";
    static final String AD_TYPE_DIALOG = "10";
    static final String AD_TYPE_INTERSTITIAL = "2";
    static final String AD_TYPE_OFFERWALL = "7";
    protected static final String OPTIN_DATA_URL = "http://push.senddroid.com/optin.php";
    static final String PARAMETER_ANDROID_ID = "android_id";
    static final String PARAMETER_CARRIER_ID = "carrier_id";
    static final String PARAMETER_CARRIER_NAME = "carrier";
    private static final String PARAMETER_CONNECTION_SPEED = "connection_speed";
    static final String PARAMETER_DEVICE_ID = "udid";
    static final String PARAMETER_HOUROFDAY = "hour";
    static final String PARAMETER_LANGUAGES = "languages";
    private static final String PARAMETER_LATITUDE = "lat";
    private static final String PARAMETER_LONGITUDE = "long";
    static final String PARAMETER_RESPONSE_FORMAT = "format";
    static final String PARAMETER_SCREEN_DENSITY = "sd";
    private static final String PARAMETER_USER_AGENT = "ua";
    private static final String PARAMETER_ZONE = "app";
    protected static final String SERVER_BASE_URL = "http://push.senddroid.com";
    public static final String TAG = "AdRequest";
    protected final Map<String, String> parameters = Collections.synchronizedMap(new HashMap());
    protected String adserverURL = "http://push.senddroid.com/ad.php";
    protected final Map<String, String> customParameters = Collections.synchronizedMap(new HashMap());
    String adType = AD_TYPE_BANNER;

    AdRequest() {
    }

    public AdRequest(String zone) {
        setZone(zone);
    }

    public void initDefaultParameters(Context context) {
        String orientation;
        String carrierName = Utils.getCarrier(context);
        String carrierId = Utils.getCarrierId(context);
        String ua = Utils.getUserAgentString(context);
        this.parameters.put(PARAMETER_RESPONSE_FORMAT, "json");
        String deviceIdMD5 = Utils.getDeviceIdMD5(context);
        if (deviceIdMD5 != null && deviceIdMD5.length() > 0) {
            this.parameters.put(PARAMETER_DEVICE_ID, deviceIdMD5);
        }
        String androidIdMD5 = Utils.getDeviceOpenUDIDMD5(context);
        if (androidIdMD5 != null && androidIdMD5.length() > 0) {
            this.parameters.put("android_id", androidIdMD5);
        }
        this.parameters.put(PARAMETER_LANGUAGES, Locale.getDefault().getLanguage());
        this.parameters.put("carrier", carrierName);
        this.parameters.put(PARAMETER_CARRIER_ID, carrierId);
        this.parameters.put("sdk", "senddroid-v" + SD.getVersion());
        if (ua != null) {
            this.parameters.put(PARAMETER_USER_AGENT, ua);
        }
        DisplayMetrics metrics = Utils.getDisplayMetrics(context);
        String sd = String.format(Locale.getDefault(), "%1.2f", Float.valueOf(metrics.density));
        this.parameters.put(PARAMETER_SCREEN_DENSITY, sd);
        this.parameters.put("w", String.format(Locale.getDefault(), "%d", Integer.valueOf(metrics.widthPixels)));
        this.parameters.put("h", String.format(Locale.getDefault(), "%d", Integer.valueOf(metrics.heightPixels - 30)));
        String dpi = String.format(Locale.getDefault(), "DPI = %d, ", Integer.valueOf(metrics.densityDpi));
        String screenSize = dpi + "Density: " + sd + ", Screen: " + metrics.widthPixels + " X " + metrics.heightPixels;
        Log.d("SendDROID", screenSize);
        int orientationCode = Utils.getDeviceOrientation(context);
        if (orientationCode == 2) {
            orientation = "l";
        } else if (orientationCode == 0) {
            orientation = "x";
        } else {
            orientation = "p";
        }
        this.parameters.put("o", orientation);
        SimpleDateFormat sdf = new SimpleDateFormat("HH");
        this.parameters.put(PARAMETER_HOUROFDAY, sdf.format(Calendar.getInstance().getTime()));
    }

    String getAdserverURL() {
        return this.adserverURL;
    }

    public void setAdserverURL(String adserverURL) {
        if (adserverURL != null && adserverURL.length() > 0) {
            this.adserverURL = adserverURL;
        }
    }

    public AdRequest setUa(String ua) {
        if (ua != null) {
            synchronized (this.parameters) {
                this.parameters.put(PARAMETER_USER_AGENT, ua);
            }
        }
        return this;
    }

    final AdRequest setZone(String zone) {
        if (zone != null) {
            synchronized (this.parameters) {
                this.parameters.put("app", zone);
            }
        }
        return this;
    }

    public AdRequest setLatitude(String latitude) {
        if (latitude != null) {
            synchronized (this.parameters) {
                this.parameters.put(PARAMETER_LATITUDE, latitude);
            }
        }
        return this;
    }

    public AdRequest setLongitude(String longitude) {
        if (longitude != null) {
            synchronized (this.parameters) {
                this.parameters.put(PARAMETER_LONGITUDE, longitude);
            }
        }
        return this;
    }

    public AdRequest setConnectionSpeed(Integer connectionSpeed) {
        if (connectionSpeed != null) {
            synchronized (this.parameters) {
                this.parameters.put(PARAMETER_CONNECTION_SPEED, String.valueOf(connectionSpeed));
            }
        }
        return this;
    }

    public String getUa() {
        String str;
        synchronized (this.parameters) {
            str = this.parameters.get(PARAMETER_USER_AGENT);
        }
        return str;
    }

    public String getZone() {
        String str;
        synchronized (this.parameters) {
            str = this.parameters.get("app");
        }
        return str;
    }

    public String getLatitude() {
        String str;
        synchronized (this.parameters) {
            str = this.parameters.get(PARAMETER_LATITUDE);
        }
        return str;
    }

    public String getLongitude() {
        String str;
        synchronized (this.parameters) {
            str = this.parameters.get(PARAMETER_LONGITUDE);
        }
        return str;
    }

    public Integer getConnectionSpeed() {
        Integer intParameter;
        synchronized (this.parameters) {
            String connectionSpeed = this.parameters.get(PARAMETER_CONNECTION_SPEED);
            intParameter = getIntParameter(connectionSpeed);
        }
        return intParameter;
    }

    @Deprecated
    public void setCustomParameters(Hashtable<String, String> cParams) {
        synchronized (this.customParameters) {
            for (String key : cParams.keySet()) {
                this.customParameters.put(key, cParams.get(key));
            }
        }
    }

    public void setCustomParameters(Map<String, String> cParams) {
        synchronized (this.customParameters) {
            if (cParams != null) {
                this.customParameters.putAll(cParams);
            } else {
                this.customParameters.clear();
            }
        }
    }

    public Map<String, String> getCustomParameters() {
        return new HashMap(this.customParameters);
    }

    public Map<String, String> getPrivateParameters() {
        return this.parameters;
    }

    public boolean isTestMode() {
        return "test".equalsIgnoreCase(this.customParameters.get("mode"));
    }

    public void setTestMode(boolean isTestMode) {
        if (isTestMode) {
            this.customParameters.put("mode", "test");
        } else if ("test".equalsIgnoreCase(this.customParameters.get("mode"))) {
            this.customParameters.remove("mode");
        }
    }

    public void setAdType(String adType) {
        this.adType = adType;
    }

    String buildBaseUrlString() {
        int size = this.parameters.size() + this.customParameters.size();
        Map<String, String> combinedParams = new HashMap<>(size, 1.0f);
        synchronized (this.customParameters) {
            combinedParams.putAll(this.customParameters);
        }
        synchronized (this.parameters) {
            combinedParams.putAll(this.parameters);
        }
        StringBuilder builderToString = new StringBuilder();
        builderToString.append(this.adserverURL);
        appendParameters(builderToString, combinedParams);
        String url = builderToString.toString();
        return url;
    }

    @Deprecated
    public String toAlertAdUrlString() {
        return buildBaseUrlString() + "&adtype=" + AD_TYPE_DIALOG;
    }

    @Deprecated
    public String toInterstitialAdUrlString() {
        return buildBaseUrlString() + "&adtype=" + AD_TYPE_INTERSTITIAL;
    }

    @Deprecated
    public String toOfferWallAdUrlString() {
        return buildBaseUrlString() + "&adtype=" + AD_TYPE_OFFERWALL;
    }

    public String toUrlString() {
        return buildBaseUrlString() + "&adtype=" + this.adType;
    }

    static Integer getIntParameter(String stringValue) {
        if (stringValue != null) {
            return Integer.valueOf(Integer.parseInt(stringValue));
        }
        return null;
    }

    static void appendParameters(StringBuilder builderToString, Map<String, String> parameters) {
        if (parameters != null) {
            boolean hasParms = builderToString.indexOf("?") >= 0;
            for (Map.Entry<String, String> stringStringEntry : parameters.entrySet()) {
                String value = stringStringEntry.getValue();
                if (value != null) {
                    if (hasParms) {
                        try {
                            builderToString.append('&');
                        } catch (UnsupportedEncodingException e) {
                            Log.e("SendDROID", "couldn't urlencode parameters", e);
                        }
                    } else {
                        builderToString.append('?');
                        hasParms = true;
                    }
                    builderToString.append(URLEncoder.encode(stringStringEntry.getKey(), Const.ENCODING)).append('=').append(URLEncoder.encode(value, Const.ENCODING));
                }
            }
        }
    }
}