鸠摩搜书官方正版 v1.7版本的 MD5 值为:01c9a20d2c415de3233d7f691829edf5
以下内容为反编译后的 FractalAdapter.java 源代码,内容仅作参考
package com.admogo.adapters;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import android.webkit.WebView;
import com.admogo.AdMogoLayout;
import com.admogo.GetUserInfo;
import com.admogo.obj.Ftad;
import com.admogo.obj.Ration;
import com.admogo.util.AdMogoUtil;
import com.madhouse.android.ads.AdView;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class FractalAdapter extends AdMogoAdapter {
private static WebView webView;
private final int TIMEOUT_TIME;
private String UA;
AdMogoLayout adMogoLayout;
private String adclicktype;
private String adtype;
private WebView bannerView;
private double density;
Ftad ftadAD;
private int px320;
private int px50;
public FractalAdapter(AdMogoLayout adMogoLayout, Ration ration) {
super(adMogoLayout, ration);
Activity activity;
this.TIMEOUT_TIME = 30000;
this.adtype = "1,2,3";
this.adclicktype = "1,2,3,4";
this.ftadAD = null;
this.UA = "";
if (adMogoLayout == null || (activity = (Activity) adMogoLayout.activityReference.get()) == null) {
return;
}
webView = new WebView(activity);
this.UA = getUA(activity);
}
private Ftad analysisAdcontentJson(JSONArray jSONArray) {
if (((jSONArray == null) | TextUtils.isEmpty(jSONArray.toString())) || (jSONArray.length() <= 0)) {
return null;
}
Ftad ftad = new Ftad();
try {
JSONObject jSONObject = jSONArray.getJSONObject(0);
ftad.setAdviewparam1(jSONObject.getString("adviewparam1"));
ftad.setAdviewparam2(jSONObject.getString("adviewparam2"));
ftad.setAdviewurl1(jSONObject.getString("adviewurl1"));
ftad.setAdviewurl2(jSONObject.getString("adviewurl2"));
ftad.setAdclicktype(jSONObject.getString("adclicktype"));
ftad.setAdclickslogan(jSONObject.getString("adclickslogan"));
ftad.setAdclickurl1(jSONObject.getString("adclickurl1"));
ftad.setAdclickurl2(jSONObject.getString("adclickurl2"));
ftad.setAdclickurl3(jSONObject.getString("adclickurl3"));
ftad.setAdviewtype(jSONObject.getInt("adviewtype"));
ftad.setAdtitle(jSONObject.getString("adtitle"));
ftad.setBeacon(jSONObject.getString("beacon"));
ftad.setAddesc(jSONObject.getString("addesc"));
return ftad;
} catch (JSONException e) {
Log.w(AdMogoUtil.ADMOGO, "fractal analysis ftad Fail :" + e);
this.adMogoLayout.rollover();
return ftad;
}
}
private void analysisJson(String str) {
if (TextUtils.isEmpty(str)) {
Log.w(AdMogoUtil.ADMOGO, "fractal request Fail at json is null");
this.adMogoLayout.rollover();
return;
}
try {
this.ftadAD = analysisAdcontentJson(new JSONObject(str).getJSONObject("ftad").getJSONObject("adcontents").getJSONArray("adcontent"));
} catch (JSONException e) {
Log.w(AdMogoUtil.ADMOGO, "fractal analysis json Fail :" + e);
this.adMogoLayout.rollover();
}
}
private ArrayList getHttpParams(String str) {
Activity activity;
ArrayList arrayList = new ArrayList();
arrayList.add(new BasicNameValuePair("version", "2.0"));
arrayList.add(new BasicNameValuePair("pid", str));
arrayList.add(new BasicNameValuePair("adtype", this.adtype));
arrayList.add(new BasicNameValuePair("adclicktype", this.adclicktype));
arrayList.add(new BasicNameValuePair("devicename", Build.MODEL));
arrayList.add(new BasicNameValuePair("deviceos", "android" + Build.VERSION.RELEASE));
if (TextUtils.isEmpty(this.UA)) {
arrayList.add(new BasicNameValuePair("deviceua", this.UA));
}
if (this.adMogoLayout != null && (activity = (Activity) this.adMogoLayout.activityReference.get()) != null) {
arrayList.add(new BasicNameValuePair("udid", GetUserInfo.getDeviceID(activity)));
arrayList.add(new BasicNameValuePair("mac", GetUserInfo.getIDByMAC(activity)));
arrayList.add(new BasicNameValuePair("deviceua", GetUserInfo.getImei(activity)));
}
return arrayList;
}
private static String getUA(Context context) {
return context == null ? "" : webView.getSettings().getUserAgentString();
}
public void requestFeactalAD(String str) {
BasicHttpParams basicHttpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(basicHttpParams, 30000);
HttpConnectionParams.setSoTimeout(basicHttpParams, 30000);
DefaultHttpClient defaultHttpClient = new DefaultHttpClient(basicHttpParams);
if (TextUtils.isEmpty(AdMogoUtil.FRSCTSL_URL)) {
Log.w(AdMogoUtil.ADMOGO, "fractal request Fail at URl err:http://www.admarket.mobi/ftad/apiadreq");
this.adMogoLayout.rollover();
return;
}
HttpPost httpPost = new HttpPost(AdMogoUtil.FRSCTSL_URL);
try {
httpPost.setEntity(new UrlEncodedFormEntity(getHttpParams(str), "UTF-8"));
HttpResponse execute = defaultHttpClient.execute(httpPost);
if (execute.getStatusLine().getStatusCode() != 200) {
Log.w(AdMogoUtil.ADMOGO, "fractal request Fail at StatusCode:" + execute.getStatusLine().getStatusCode());
this.adMogoLayout.rollover();
return;
}
analysisJson(EntityUtils.toString(execute.getEntity()));
if (this.ftadAD != null) {
String str2 = "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /><style type='text/css'>*{padding:0px;margin:0px;} a:link{text-decoration:none;}</style>";
switch (this.ftadAD.getAdviewtype()) {
case 1:
str2 = String.valueOf("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /><style type='text/css'>*{padding:0px;margin:0px;} a:link{text-decoration:none;}</style>") + String.format("<a href='www.baidu.com'><div style='width:%dpx;height:%dpx;'><p style='line-height:%dpx;text-align:center'>%s</p></div></a>", Integer.valueOf(AdView.PHONE_AD_MEASURE_320), 50, 50, this.ftadAD.getAdtitle());
break;
case 2:
str2 = String.valueOf("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /><style type='text/css'>*{padding:0px;margin:0px;} a:link{text-decoration:none;}</style>") + String.format("<a href='www.baidu.com'><div style='width:%dpx;height:%dpx;'><img style='width:%dpx;height:%dpx;float:left;padding:2px' src='%s'></img> <p style='line-height:%dpx;color:#000;'>%s</p></div></a>", Integer.valueOf(AdView.PHONE_AD_MEASURE_320), 50, 45, 45, this.ftadAD.getAdviewurl2(), 50, this.ftadAD.getAdviewparam1());
break;
case 3:
str2 = String.valueOf("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /><style type='text/css'>*{padding:0px;margin:0px;} a:link{text-decoration:none;}</style>") + String.format("<a href='www.baidu.com'><img width='%d' height='%d' src='%s'></img></a>", Integer.valueOf(AdView.PHONE_AD_MEASURE_320), 50, this.ftadAD.getAdviewurl1());
break;
case 4:
this.adMogoLayout.handler.post(new e(this));
break;
}
if (this.adMogoLayout == null || this.ftadAD.getAdviewtype() == 4) {
return;
}
this.adMogoLayout.handler.post(new f(this, str2));
}
} catch (Exception e) {
Log.w(AdMogoUtil.ADMOGO, "fractal request Fail :" + e);
this.adMogoLayout.rollover();
}
}
public void DisplayFractalAD(String str) {
AdMogoLayout adMogoLayout;
Activity activity;
if (TextUtils.isEmpty(str) || (adMogoLayout = (AdMogoLayout) this.adMogoLayoutReference.get()) == null || (activity = (Activity) adMogoLayout.activityReference.get()) == null) {
return;
}
Log.d(AdMogoUtil.ADMOGO, "Serving Fractal type: banner");
this.bannerView = new WebView(activity);
this.bannerView.getSettings().setJavaScriptEnabled(true);
this.bannerView.loadDataWithBaseURL(null, str, "text/html", "UTF-8", null);
this.bannerView.getSettings().setDefaultTextEncodingName("UTF-8");
this.bannerView.setScrollBarStyle(33554432);
this.bannerView.setWebViewClient(new h(this, (byte) 0));
}
@Override
public void click() {
if (this.adMogoLayout != null) {
if (this.ftadAD == null || !this.ftadAD.getAdclicktype().equals(2)) {
this.adMogoLayout.countClick();
}
}
}
@Override
public void finish() {
if (this.bannerView != null) {
this.bannerView.clearCache(true);
this.bannerView.clearView();
this.bannerView = null;
webView.clearCache(true);
webView = null;
this.ftadAD = null;
}
}
@Override
public void handle() {
this.adMogoLayout = (AdMogoLayout) this.adMogoLayoutReference.get();
if (this.adMogoLayout == null) {
return;
}
if (this.adMogoLayout.getAdType() == 6) {
this.adtype = "4";
this.adclicktype = "0,1,2,3,4";
} else if (this.adMogoLayout.getAdType() != 7) {
this.adtype = "1,2,3";
this.adclicktype = "1";
}
this.density = AdMogoUtil.density;
this.px50 = AdMogoUtil.convertToScreenPixels(50, this.density);
this.px320 = AdMogoUtil.convertToScreenPixels(AdView.PHONE_AD_MEASURE_320, this.density);
this.adMogoLayout.scheduler.schedule(new g(this, this.ration), 0L, TimeUnit.SECONDS);
}
public void loadUrl(String str) {
BasicHttpParams basicHttpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(basicHttpParams, 30000);
HttpConnectionParams.setSoTimeout(basicHttpParams, 30000);
try {
new DefaultHttpClient(basicHttpParams).execute(new HttpGet(str));
} catch (Exception e) {
Log.e(AdMogoUtil.ADMOGO, "fractal load URL err:" + e);
}
}
public void sendClick() {
AdMogoLayout adMogoLayout = (AdMogoLayout) this.adMogoLayoutReference.get();
if (adMogoLayout != null) {
adMogoLayout.countClick();
}
}
public void sendImp() {
if (!TextUtils.isEmpty(this.ftadAD.getBeacon())) {
loadUrl(this.ftadAD.getBeacon());
}
AdMogoLayout adMogoLayout = (AdMogoLayout) this.adMogoLayoutReference.get();
if (adMogoLayout != null) {
adMogoLayout.countImpAd();
}
}
}