导航菜单

页面标题

页面副标题

CallApp v2.226 - AuthWebViewDialog.java 源代码

正在查看: CallApp v2.226 应用的 AuthWebViewDialog.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.callapp.contacts.util.webview;

import a1.d0;
import android.app.Activity;
import android.content.DialogInterface;
import android.net.Uri;
import android.os.Message;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.ValueCallback;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import androidx.fragment.app.n;
import com.callapp.contacts.R;
import com.callapp.contacts.api.helper.common.LoginListener;
import com.callapp.contacts.api.helper.gmail.GmailManager;
import com.callapp.contacts.api.helper.twitter.TwitterHelper;
import com.callapp.contacts.manager.task.Task;
import com.callapp.contacts.util.CLog;
import com.callapp.contacts.util.webview.BaseWebViewDialog;
import com.callapp.framework.util.StringUtils;

public class AuthWebViewDialog extends BaseWebViewDialog {
    public static final int h = 0;
    public final Activity g;

    public class MultiWindowWebChromeClient extends BaseWebViewDialog.SingleWindowWebChromeClient {
        public MultiWindowWebChromeClient(ProgressBar progressBar) {
            super(progressBar);
        }

        @Override
        public final void onCloseWindow(WebView webView) {
            ((ViewGroup) webView.getParent()).removeView(webView);
        }

        @Override
        public final boolean onCreateWindow(WebView webView, boolean z, boolean z2, Message message) {
            AuthWebViewDialog authWebViewDialog = AuthWebViewDialog.this;
            WebView webView2 = new WebView(authWebViewDialog.g);
            webView2.getSettings().setJavaScriptEnabled(true);
            webView2.setWebChromeClient(this);
            webView2.setWebViewClient(authWebViewDialog.getWebViewClient());
            ((ViewGroup) webView.getParent()).addView(webView2);
            ((WebView.WebViewTransport) message.obj).setWebView(webView2);
            message.sendToTarget();
            return true;
        }
    }

    public class OAuthWebViewClient extends WebViewClient {
        public OAuthWebViewClient(AuthWebViewDialog authWebViewDialog, int i) {
            this();
        }

        @Override
        public final void onPageFinished(WebView webView, String str) {
            super.onPageFinished(webView, str);
            int i = AuthWebViewDialog.h;
            char c = str.contains("https://api.twitter.com/oauth/authorize?") ? (char) 4 : (char) 65535;
            String str2 = c != 6 ? c != '\t' ? "" : "id" : "username";
            String gmailAccount = StringUtils.t("") ? GmailManager.get().getGmailAccount() : "";
            if (StringUtils.x(gmailAccount) && StringUtils.x(str2) && StringUtils.x(gmailAccount)) {
                try {
                    webView.evaluateJavascript(d0.s(n.t("try { var elem=document.getElementById('", str2, "'); if (!elem){elem=document.getElementsByName('", str2, "')[0];} if (elem){elem.value = '"), gmailAccount, "';} } catch(err) { }"), new ValueCallback<String>() {
                        @Override
                        public final void onReceiveValue(String str3) {
                        }
                    });
                } catch (Exception e) {
                    CLog.k(WebViewUtils.class, e);
                }
            }
        }

        @Override
        public final boolean onRenderProcessGone(WebView webView, RenderProcessGoneDetail renderProcessGoneDetail) {
            super.onRenderProcessGone(webView, renderProcessGoneDetail);
            if (webView == null) {
                return true;
            }
            ((ViewGroup) webView.getParent()).removeView(webView);
            webView.destroy();
            return true;
        }

        @Override
        public final boolean shouldOverrideUrlLoading(WebView webView, String str) {
            String str2;
            TwitterHelper twitterHelper;
            int i = AuthWebViewDialog.h;
            if (str.contains("twitterauth.callapp.com")) {
                str2 = Uri.parse(str).getQueryParameter("oauth_verifier");
                twitterHelper = TwitterHelper.get();
            } else {
                str2 = null;
                twitterHelper = null;
            }
            Pair pair = new Pair(twitterHelper, str2);
            final LoginListener loginListener = (LoginListener) pair.first;
            final String str3 = (String) pair.second;
            boolean t = StringUtils.t(str3);
            AuthWebViewDialog authWebViewDialog = AuthWebViewDialog.this;
            if (t || loginListener == null) {
                if (loginListener != null) {
                    new Task(this) {
                        @Override
                        public final void doTask() {
                            loginListener.a(str3);
                        }
                    }.execute();
                    authWebViewDialog.f = true;
                    authWebViewDialog.dismiss();
                }
                return false;
            }
            if (!StringUtils.x(str3)) {
                webView.loadUrl(str);
                return true;
            }
            new Task(this) {
                @Override
                public final void doTask() {
                    loginListener.a(str3);
                }
            }.execute();
            authWebViewDialog.f = true;
            authWebViewDialog.dismiss();
            return false;
        }

        private OAuthWebViewClient() {
        }
    }

    public AuthWebViewDialog(Activity activity, String str, DialogInterface.OnCancelListener onCancelListener, LoginListener loginListener) {
        super(str, null, onCancelListener);
        this.g = activity;
    }

    @Override
    public WebViewClient getWebViewClient() {
        return new OAuthWebViewClient(this, 0);
    }

    @Override
    public final View onViewCreated(LayoutInflater layoutInflater, ViewGroup viewGroup) {
        View onViewCreated = super.onViewCreated(layoutInflater, viewGroup);
        this.a.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        this.a.getSettings().setSupportMultipleWindows(true);
        this.a.setWebChromeClient(new MultiWindowWebChromeClient((ProgressBar) onViewCreated.findViewById(R.id.center_vertical_progressbar)));
        return onViewCreated;
    }
}