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