CEEX v1.0.1版本的 MD5 值为:d20246587215ec3471b0d051724c6d34

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


package com.geetest.sdk.dialog.views;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Handler;
import android.text.TextUtils;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.geetest.sdk.au;
import com.geetest.sdk.utils.g;
import com.geetest.sdk.utils.l;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
public class GtWebView extends WebView {
    private static final String n = GtWebView.class.getSimpleName();
    private Context a;
    private au b;
    private boolean c;
    private String d;
    private com.geetest.sdk.model.beans.b e;
    private Runnable f;
    private Handler g;
    private int h;
    private int i;
    private int j;
    private Paint k;
    private Path l;
    private RectF m;

    private class b extends WebChromeClient {
        private b(GtWebView gtWebView) {
        }

        @Override
        public final void onProgressChanged(WebView webView, int i) {
            String str = GtWebView.n;
            l.d(str, "onProgressChanged-->newProgress: " + i);
            super.onProgressChanged(webView, i);
        }
    }

    private class c extends WebViewClient {
        private GtWebView a;

        public c(GtWebView gtWebView) {
            this.a = gtWebView;
        }

        @Override
        public void onLoadResource(WebView webView, String str) {
            String str2 = GtWebView.n;
            l.b(str2, "onLoadResource-->url: " + str);
            super.onLoadResource(webView, str);
        }

        @Override
        public void onPageFinished(WebView webView, String str) {
            String str2 = GtWebView.n;
            l.b(str2, "Webview-->onPageFinished-->url: " + str);
            super.onPageFinished(webView, str);
        }

        @Override
        public void onPageStarted(WebView webView, String str, Bitmap bitmap) {
            String str2 = GtWebView.n;
            l.b(str2, "Webview-->onPageStarted-->url: " + str);
            super.onPageStarted(webView, str, bitmap);
        }

        @Override
        public void onReceivedError(WebView webView, WebResourceRequest webResourceRequest, WebResourceError webResourceError) {
            int i = Build.VERSION.SDK_INT;
            if (GtWebView.this.b != null) {
                String str = null;
                if (i >= 21) {
                    try {
                        str = "onReceivedError-->url: " + webResourceRequest.getUrl();
                        l.b(GtWebView.n, "onReceivedError-->url: " + webResourceRequest.getUrl());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (i >= 23) {
                    str = "onReceivedError-->Description: " + ((Object) webResourceError.getDescription()) + "-->onReceivedError-->ErrorCode: " + webResourceError.getErrorCode();
                    l.b(GtWebView.n, "onReceivedError-->Description: " + ((Object) webResourceError.getDescription()));
                    l.b(GtWebView.n, "onReceivedError-->ErrorCode: " + webResourceError.getErrorCode());
                }
                if (i >= 23) {
                    try {
                        if (webResourceRequest.getUrl().toString().endsWith(".mp3") && webResourceError.getErrorCode() == -1) {
                            super.onReceivedError(webView, webResourceRequest, webResourceError);
                            return;
                        }
                    } catch (Exception unused) {
                    }
                }
                l.b(GtWebView.n, "webview加载出错 错误码:204_1 中间页地址有误或加载失败");
                au auVar = GtWebView.this.b;
                if (TextUtils.isEmpty(str)) {
                    str = "Webview-->onReceivedError: webview load error !";
                }
                auVar.a("204_1", str);
            }
            if (GtWebView.this.g != null) {
                try {
                    GtWebView.this.g.removeCallbacks(GtWebView.this.f);
                    GtWebView.this.g.removeMessages(1);
                } catch (Exception unused2) {
                }
            }
            super.onReceivedError(webView, webResourceRequest, webResourceError);
        }

        @Override
        public void onReceivedHttpError(WebView webView, WebResourceRequest webResourceRequest, WebResourceResponse webResourceResponse) {
            List<String> b;
            if (Build.VERSION.SDK_INT >= 21) {
                try {
                    String uri = webResourceRequest.getUrl().toString();
                    String substring = uri.substring(0, uri.indexOf("?"));
                    String str = GtWebView.n;
                    l.b(str, "onReceivedHttpError-->getStatusCode: " + webResourceResponse.getStatusCode());
                    String str2 = GtWebView.n;
                    l.b(str2, "onReceivedHttpError-->url: " + uri);
                    if (!TextUtils.isEmpty(GtWebView.this.d) && TextUtils.equals(substring, GtWebView.this.d.substring(0, GtWebView.this.d.indexOf("?"))) && (b = GtWebView.this.e.i().b()) != null && b.size() > 1) {
                        GtWebView gtWebView = this.a;
                        StringBuilder sb = new StringBuilder();
                        sb.append(String.format("https://%s/static/appweb/app3-index.html", b.get(1)));
                        sb.append(uri.substring(uri.indexOf("?")));
                        gtWebView.loadUrl(sb.toString());
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            super.onReceivedHttpError(webView, webResourceRequest, webResourceResponse);
        }

        @Override
        public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
            super.onReceivedSslError(webView, sslErrorHandler, sslError);
            if (GtWebView.this.b != null) {
                String str = GtWebView.n;
                l.b(str, "onReceivedSslError-->webview加载出错 错误码:204_2 网络证书有误, " + sslError.toString());
                au auVar = GtWebView.this.b;
                auVar.a("204_2", "Webview-->onReceivedSslError: " + sslError.toString());
            }
            if (GtWebView.this.g != null) {
                try {
                    GtWebView.this.g.removeCallbacks(GtWebView.this.f);
                    GtWebView.this.g.removeMessages(1);
                } catch (Exception unused) {
                }
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String str) {
            if (webView != null && str != null && GtWebView.this.a != null) {
                try {
                    Intent intent = new Intent("android.intent.action.VIEW");
                    intent.addFlags(268435456);
                    intent.setData(Uri.parse(str));
                    GtWebView.this.a.startActivity(intent);
                } catch (Exception unused) {
                }
            }
            String str2 = GtWebView.n;
            l.d(str2, "shouldOverrideUrlLoading-->url: " + str);
            return true;
        }
    }

    public GtWebView(Context context) {
        super(context);
        new HashMap();
        this.c = false;
        this.g = null;
        a(context);
    }

    @Override
    public void destroy() {
        l.b(n, "GT3GtWebView-->destroy");
        this.a = null;
        this.b = null;
        super.destroy();
    }

    public Handler getMyHandler() {
        return this.g;
    }

    public Runnable getRunnable() {
        return this.f;
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        if (this.c) {
            loadUrl(StringUtils.SPACE);
        }
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        try {
            canvas.drawPath(this.l, this.k);
        } catch (Exception e) {
            e.printStackTrace();
        }
        String str = n;
        l.d(str, "webView硬件加速是否开启:" + canvas.isHardwareAccelerated());
    }

    @Override
    public void onPause() {
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        resumeTimers();
    }

    @Override
    protected void onSizeChanged(int i, int i2, int i3, int i4) {
        super.onSizeChanged(i, i2, i3, i4);
        this.h = i;
        this.i = i2;
        l.b(n, "onSizeChanged-->newWidth-->" + i + "-->newHeight" + i2 + "-->oldWidth" + i3 + "-->oldHeight" + i4);
        if (this.e != null) {
            this.j = g.a(getContext(), this.e.d());
        }
        this.m = new RectF(0.0f, 0.0f, this.h, this.i);
        Path path = new Path();
        this.l = path;
        path.setFillType(Path.FillType.INVERSE_WINDING);
        Path path2 = this.l;
        RectF rectF = this.m;
        float f = this.j;
        path2.addRoundRect(rectF, f, f, Path.Direction.CW);
    }

    public void setDataBean(com.geetest.sdk.model.beans.b bVar) {
        this.e = bVar;
    }

    public void setMyHandler(Handler handler) {
        this.g = handler;
    }

    public void setObservable(au auVar) {
        this.b = auVar;
    }

    public void setRunnable(Runnable runnable) {
        this.f = runnable;
    }

    public void setStaticUrl(String str) {
        this.d = str;
    }

    public void setTimeout(int i) {
    }

    public void setVoice(boolean z) {
        this.c = z;
    }

    private void a(Context context) {
        this.a = context;
        b(context);
    }

    public boolean b() {
        return this.c;
    }

    private void b(Context context) {
        Paint paint = new Paint();
        this.k = paint;
        paint.setColor(0);
        this.k.setStyle(Paint.Style.FILL);
        this.k.setAntiAlias(true);
        this.k.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    }

    @SuppressLint({"SetJavaScriptEnabled"})
    public void a() {
        WebSettings settings = getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setLoadWithOverviewMode(true);
        settings.setDomStorageEnabled(true);
        settings.setAppCacheEnabled(true);
        settings.setUseWideViewPort(true);
        settings.setCacheMode(1);
        settings.setTextZoom(100);
        settings.setSavePassword(false);
        settings.setAllowFileAccess(false);
        if (Build.VERSION.SDK_INT >= 16) {
            settings.setAllowFileAccessFromFileURLs(false);
            settings.setAllowUniversalAccessFromFileURLs(false);
        }
        settings.setGeolocationEnabled(false);
        settings.setAllowContentAccess(false);
        removeJavascriptInterface("searchBoxJavaBridge_");
        removeJavascriptInterface("accessibility");
        removeJavascriptInterface("accessibilityTraversal");
        setOverScrollMode(2);
        setScrollContainer(false);
        setHorizontalScrollBarEnabled(false);
        setVerticalScrollBarEnabled(false);
        onResume();
        super.setWebChromeClient(new b());
        super.setWebViewClient(new c(this));
    }
}