鸠摩搜书官方正版 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();
        }
    }
}