号簿助手 v4.6.31版本的 MD5 值为:9d7ff98a6bb5cc178eac2df4d1b2f0e0

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


package com.chinatelecom.pim.activity.setting;

import android.annotation.TargetApi;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.ClipboardManager;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.widget.PopupWindow;
import android.widget.Toast;
import com.chinatelecom.pim.PimApplication;
import com.chinatelecom.pim.PimHomeActivity;
import com.chinatelecom.pim.R;
import com.chinatelecom.pim.activity.found.JumpActivity;
import com.chinatelecom.pim.activity.message.MessageRecipientChooseActivity;
import com.chinatelecom.pim.core.CoreManagerFactory;
import com.chinatelecom.pim.core.IConstant;
import com.chinatelecom.pim.core.manager.PreferenceKeyManager;
import com.chinatelecom.pim.core.manager.SyncAndroidDeviceManager;
import com.chinatelecom.pim.core.threadpool.BackgroundJob;
import com.chinatelecom.pim.core.threadpool.model.Runner;
import com.chinatelecom.pim.core.utils.IntentFactory;
import com.chinatelecom.pim.core.view.ActivityView;
import com.chinatelecom.pim.foundation.common.model.sync.SyncResponse;
import com.chinatelecom.pim.foundation.lang.KeyValuePare;
import com.chinatelecom.pim.foundation.lang.log.Log;
import com.chinatelecom.pim.foundation.lang.model.Theme;
import com.chinatelecom.pim.foundation.lang.model.WebviewHistory;
import com.chinatelecom.pim.foundation.lang.net.Connection;
import com.chinatelecom.pim.foundation.lang.utils.DeviceUtils;
import com.chinatelecom.pim.foundation.lang.utils.StringUtils;
import com.chinatelecom.pim.foundation.lang.utils.ToastTool;
import com.chinatelecom.pim.ui.adapter.setting.WebViewAdapter;
import com.chinatelecom.pim.ui.view.MiddleViewDropdownView;
import com.chinatelecom.pim.ui.view.dialog.DialogFactory;
import com.chinatelecom.pim.ui.view.dialog.NetSmsAlertDialogView;
import com.ffcs.inapppaylib.PayHelper;
import com.ffcs.inapppaylib.bean.Constants;
import com.ffcs.inapppaylib.bean.response.BaseResponse;
import com.ffcs.inapppaylib.bean.response.PayResponse;
import ctuab.proto.message.GetMemberInfoProto;
import ctuab.proto.message.OrderMemberProto;
import java.util.HashMap;
import org.apache.http.cookie.SM;

public class WebViewActivity extends ActivityView<WebViewAdapter> {
    private static final Log logger = Log.build(WebViewActivity.class);
    private WebViewAdapter adapter;
    private PimHomeActivity homeActivity;
    private boolean isVip;
    private MiddleViewDropdownView middleViewDropdownView;
    private String payFailUrl;
    private String paySuccessUrl;
    private ToastTool toastTool;
    private String webTitle;
    private String webUrl;
    private PreferenceKeyManager preferenceKeyManager = CoreManagerFactory.getInstance().getPreferenceKeyManager();
    private boolean isFreeMessage = false;
    private boolean isCallLog = false;
    private boolean isShowMoreList = false;
    private boolean isGoback = false;
    private SyncAndroidDeviceManager syncAndroidDeviceManager = CoreManagerFactory.getInstance().getSyncAndroidDeviceManager();
    private String price = IConstant.SplashUrl.appInnerBrowser;
    String payID = IConstant.Params.PAY_ID;
    private Boolean isFirst = true;
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case Constants.RESULT_PAY_SUCCESS:
                    BaseResponse resp = (BaseResponse) msg.obj;
                    Toast.makeText(WebViewActivity.this, resp.getRes_code() + ":" + resp.getRes_message(), 0).show();
                    if (resp instanceof PayResponse) {
                        PayResponse payResponse = (PayResponse) resp;
                        final String orderNo = payResponse.getOrder_no();
                        if (orderNo == null || orderNo.length() == 0) {
                            WebViewActivity.this.isFirst = true;
                            ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("购买成功后的订单信息为空");
                            return;
                        } else {
                            Runner runner = new Runner(new BackgroundJob() {
                                private SyncResponse<OrderMemberProto.MemberOrderResponse> mmberOrderResponse;

                                @Override
                                public void prepare(Runner.Info info) {
                                }

                                @Override
                                public Object run(Runner.Info info) {
                                    if (orderNo != null && orderNo.length() != 0) {
                                        this.mmberOrderResponse = WebViewActivity.this.syncAndroidDeviceManager.getMmberOrderResponse(WebViewActivity.this.price, WebViewActivity.this.payID, orderNo, GetMemberInfoProto.MemberType.BUY);
                                        return null;
                                    }
                                    ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("购买成功后的订单信息为空");
                                    return null;
                                }

                                @Override
                                public void onComplete(Runner.Info info, Object result) {
                                    WebViewActivity.this.isFirst = true;
                                    if (this.mmberOrderResponse.getBody() != null) {
                                        if (this.mmberOrderResponse.getBody().getResCode() == 0) {
                                            WebViewActivity.this.preferenceKeyManager.getContactBackupSetting().openUnlimitedRecoveryMemberShip().set(false);
                                            ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("恭喜您,开通成功");
                                        } else {
                                            ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("未成功,服务器失败");
                                        }
                                    }
                                }
                            });
                            runner.execute();
                            return;
                        }
                    }
                    return;
                case Constants.RESULT_PAY_FAILURE:
                    BaseResponse resp2 = (BaseResponse) msg.obj;
                    WebViewActivity.this.isFirst = true;
                    Toast.makeText(WebViewActivity.this.getApplicationContext(), resp2.getRes_code() + ":" + resp2.getRes_message(), 0).show();
                    return;
                case Constants.RESULT_VALIDATE_FAILURE:
                    BaseResponse resp3 = (BaseResponse) msg.obj;
                    WebViewActivity.this.isFirst = true;
                    Toast.makeText(WebViewActivity.this, resp3.getRes_code() + ":" + resp3.getRes_message(), 0).show();
                    return;
                default:
                    return;
            }
        }
    };

    @Override
    public WebViewAdapter initializeAdapter() {
        this.toastTool = ToastTool.getToast(this);
        this.homeActivity = PimHomeActivity.getHomeActivity();
        return new WebViewAdapter(this, null);
    }

    @Override
    public void doCreate(Bundle bundle, WebViewAdapter adapter) {
        adapter.setup();
        adapter.setTheme(new Theme());
        this.adapter = adapter;
        this.isCallLog = getIntent().getBooleanExtra(IConstant.Params.IS_CALL_LOG, false);
        this.isShowMoreList = getIntent().getBooleanExtra(IConstant.WebViewSettings.Show_More_SettingList, false);
        logger.debug("##@@ isShowMoreList in WebViewActivity=== " + this.isShowMoreList);
        if (getIntent().getBooleanExtra(IConstant.Intent.LIFE_FLAG, false)) {
            PimApplication.currentNumber = 3;
            this.preferenceKeyManager.getMessageSettings().isLifeNotification().set(true);
        }
        checkNetWork();
        startLoadWebview(adapter);
    }

    public void checkNetWork() {
        if (!DeviceUtils.networkIsConnected(this)) {
            this.adapter.setConnectionFileView(this, false);
        } else {
            this.adapter.setConnectionFileView(this, true);
        }
    }

    @TargetApi(8)
    public void startLoadWebview(WebViewAdapter adapter) {
        adapter.setWebViewRes(this, this.isGoback);
        createUrl(adapter);
        if (!TextUtils.isEmpty(this.webUrl)) {
            loadUrl(this.webUrl, adapter);
        } else {
            String aa = getIntent().getStringExtra("level");
            String faliUrl = getIntent().getStringExtra("faliUrl");
            if (aa.equals("level")) {
                HashMap<String, String> map = new HashMap<>();
                map.put("PimCookie", this.syncAndroidDeviceManager.getCookie().get(SM.COOKIE));
                adapter.getModel().getSearchWebView().loadUrl(this.syncAndroidDeviceManager.getMemberChangeLevelUrl(), map);
            } else if (aa.equals("levels")) {
                HashMap<String, String> map2 = new HashMap<>();
                map2.put("PimCookie", this.syncAndroidDeviceManager.getCookie().get(SM.COOKIE));
                adapter.getModel().getSearchWebView().loadUrl(faliUrl, map2);
            }
        }
        adapter.setupProgressView(this);
        if (TextUtils.isEmpty(getIntent().getStringExtra("vip"))) {
            MJavascriptInterface mJavascriptInterface = new MJavascriptInterface(this);
            adapter.getModel().getSearchWebView().addJavascriptInterface(mJavascriptInterface, "FoundWebView");
        } else {
            TestInterface mJavascriptInterface2 = new TestInterface(this);
            adapter.getModel().getSearchWebView().addJavascriptInterface(mJavascriptInterface2, "TestInterface");
        }
    }

    @Override
    public void doResume(WebViewAdapter adapter) {
        super.doResume((WebViewActivity) adapter);
        adapter.getModel().getHeaderView().getLayout().getBackground().setAlpha(255);
        adapter.getModel().getHeaderView().setBackgroundColor(getResources().getColor(R.color.orange_main_normal_color));
        if (this.isShowMoreList) {
            adapter.getModel().getHeaderView().getRightView().setVisibility(0);
            adapter.getModel().getHeaderView().getRightView().setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    WebViewActivity.this.setupPopupView();
                }
            });
        } else {
            adapter.getModel().getHeaderView().getRightView().setVisibility(8);
        }
    }

    private void loadUrl(String url, WebViewAdapter adapter) {
        if (adapter.getModel().getSearchWebView() != null) {
            adapter.getModel().getSearchWebView().loadUrl(url);
            MJavascriptInterface mJavascriptInterface = new MJavascriptInterface(this);
            adapter.getModel().getSearchWebView().addJavascriptInterface(mJavascriptInterface, "FoundWebView");
            adapter.getModel().getSearchWebView().setSaveEnabled(false);
        }
    }

    private void saveWebViewHistory() {
        Intent intent = getIntent();
        if (intent != null) {
            this.isGoback = intent.getBooleanExtra(IConstant.Params.IS_GO_BACK, false);
        }
        if (!this.isGoback) {
            CoreManagerFactory.getInstance().getWebViewHistoryManager().saveWebViewHistory(intent);
        }
    }

    private void gobackUrl() {
        WebviewHistory history = CoreManagerFactory.getInstance().getWebViewHistoryManager().getLast();
        if (history != null) {
            Intent intent = new Intent();
            intent.setClass(this, WebViewActivity.class);
            intent.putExtra(IConstant.Intent.INTENT_WEB_URL, history.getUrl());
            intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, history.getTitle());
            intent.putExtra(IConstant.Params.IS_GO_BACK, true);
            startActivity(intent);
            finish();
        }
    }

    private void createUrl(WebViewAdapter adapter) {
        Intent intent = getIntent();
        if (intent != null) {
            this.webUrl = intent.getStringExtra(IConstant.Intent.INTENT_WEB_URL);
            this.webTitle = intent.getStringExtra(IConstant.Intent.INTENT_WEB_TITLE);
            this.isVip = intent.getBooleanExtra(IConstant.Intent.INTENT_WEB_VIP_TAG, false);
            if (!this.isFreeMessage) {
                this.isFreeMessage = intent.getBooleanExtra(IConstant.Intent.INTENT_WEB_FREE_MESSAGE, false);
            }
            logger.debug("isfreeemessage==%s, weburl=%s,====webTitel=%s === ", Boolean.valueOf(this.isFreeMessage), this.webUrl, this.webTitle);
            setupListener(adapter, this.webTitle);
            return;
        }
        finish();
    }

    private void setupListener(final WebViewAdapter adapter, String strTitle) {
        adapter.getModel().getHeaderView().setMiddleView(strTitle);
        adapter.getModel().getHeaderView().getLeftView().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (adapter.getModel().getSearchWebView().canGoBack()) {
                    adapter.getModel().getSearchWebView().goBack();
                    return;
                }
                View windowView = WebViewActivity.this.getWindow().peekDecorView();
                DeviceUtils.hideSoftInputFromWindow(WebViewActivity.this, windowView.getWindowToken());
                WebViewActivity.this.finish();
            }
        });
        adapter.getModel().getHeaderView().getRightNextTextView().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (WebViewActivity.this.isCallLog) {
                    WebViewActivity.this.finish();
                    WebViewActivity.this.isCallLog = false;
                }
                if (WebViewActivity.this.isFreeMessage) {
                    Intent intent = new Intent(WebViewActivity.this, (Class<?>) JumpActivity.class);
                    intent.putExtra("found_jump_page", 0);
                    WebViewActivity.this.startActivityForResult(intent, 3);
                    WebViewActivity.this.isFreeMessage = false;
                    return;
                }
                View windowView = WebViewActivity.this.getWindow().peekDecorView();
                DeviceUtils.hideSoftInputFromWindow(WebViewActivity.this, windowView.getWindowToken());
                WebViewActivity.this.finish();
            }
        });
        adapter.getModel().getBtnNoConnect().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                WebViewActivity.this.startActivity(new Intent("android.settings.SETTINGS"));
            }
        });
        adapter.getModel().getBtnRetry().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                WebViewActivity.this.checkNetWork();
                WebViewActivity.this.startLoadWebview(adapter);
                adapter.getModel().getHeaderView().setBackgroundColor(WebViewActivity.this.getResources().getColor(R.color.orange_main_normal_color));
            }
        });
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == 4 && event.getRepeatCount() == 0) {
            if (this.adapter.getModel().getSearchWebView().canGoBack()) {
                this.adapter.getModel().getSearchWebView().goBack();
                return true;
            }
            View windowView = getWindow().peekDecorView();
            DeviceUtils.hideSoftInputFromWindow(this, windowView.getWindowToken());
            finish();
            return true;
        }
        return true;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == 78 && data != null) {
            String redirectUrl = data.getExtras().getString(IConstant.Extra.REDIRECT_URL);
            data.getExtras().getString(IConstant.Params.ACCOUNT_TOKEN);
            this.webTitle = StringUtils.isNotBlank(data.getExtras().getString(IConstant.Extra.WEB_TITLE)) ? this.webTitle : "生活";
            Intent intent = new Intent();
            intent.setClass(this, WebViewActivity.class);
            intent.putExtra(IConstant.Intent.INTENT_WEB_URL, redirectUrl + "?token=" + redirectUrl);
            intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, this.webTitle);
            startActivity(intent);
        }
        if (requestCode >= 0) {
            Intent intent2 = new Intent(this, (Class<?>) PimHomeActivity.class);
            intent2.putExtra(IConstant.Extra.CURRENT_TAB, requestCode);
            startActivity(intent2);
            finish();
        }
    }

    @Override
    public void doDestory(WebViewAdapter adapter) {
        super.doDestory((WebViewActivity) adapter);
        if (adapter != null && adapter.getModel().getSearchWebView() != null) {
            adapter.getModel().getSearchWebView().removeAllViews();
            adapter.getModel().getSearchWebView().destroy();
        }
        finish();
    }

    public void setupPopupView() {
        if (this.middleViewDropdownView != null) {
            this.middleViewDropdownView.dismiss();
        }
        this.middleViewDropdownView = new MiddleViewDropdownView(this, this.adapter.getModel().getHeaderView().getRightView(), false, false, false);
        this.middleViewDropdownView.appendChild(0, "复制链接", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                WebViewActivity.this.middleViewDropdownView.dismiss();
                ClipboardManager ClipMan = (ClipboardManager) WebViewActivity.this.getSystemService("clipboard");
                ClipMan.setText(WebViewActivity.this.webUrl);
                WebViewActivity.this.toastTool.showMessage("已经复制到剪切板");
            }
        });
        this.middleViewDropdownView.appendChild(0, "在浏览器中打开", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(WebViewActivity.this.webUrl));
                WebViewActivity.this.startActivity(intent);
                WebViewActivity.this.middleViewDropdownView.dismiss();
            }
        });
        this.middleViewDropdownView.appendChild(0, "发送给朋友", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String shareContent = WebViewActivity.this.webTitle + " " + WebViewActivity.this.webUrl;
                WebViewActivity.this.startActivity(IntentFactory.createShareIntent("推荐给朋友", shareContent));
                WebViewActivity.this.middleViewDropdownView.dismiss();
            }
        });
        this.middleViewDropdownView.setOnDismissListener(new PopupWindow.OnDismissListener() {
            @Override
            public void onDismiss() {
            }
        });
        this.middleViewDropdownView.popupWindwShowing(MiddleViewDropdownView.Position.BOTTOM_CENTER_PUBLIC);
    }

    public class TestInterface {
        private final Context context;
        String url = "";

        public TestInterface(Context context) {
            this.context = context;
        }

        @JavascriptInterface
        public void dredgeBackInTime() {
            SyncResponse<GetMemberInfoProto.MemberInfoResponse> memberInfoResponse = null;
            try {
                memberInfoResponse = WebViewActivity.this.syncAndroidDeviceManager.getMemberInfoResponse();
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (memberInfoResponse != null && memberInfoResponse.getBody() != null) {
                int vip = memberInfoResponse.getBody().getMemberLevel().getNumber();
                if (vip == 1) {
                    WebViewActivity.this.startActivity(new Intent(WebViewActivity.this, (Class<?>) TimeMachineUnlimitedSubscribeActivity.class));
                } else if (vip == 2) {
                    WebViewActivity.this.startActivity(new Intent(WebViewActivity.this, (Class<?>) TimeMachineUnlimitedStepsActivity.class));
                }
            }
        }

        @JavascriptInterface
        public void securitUpgrade() {
            if (WebViewActivity.this.isVip) {
                WebViewActivity.this.startActivity(new Intent(WebViewActivity.this, (Class<?>) SafeSettingsActivity.class));
            } else {
                ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("您的会员等级不够,请开通VIP会员");
            }
        }

        @JavascriptInterface
        public void startNetSms() {
            if (Connection.checkConnection(WebViewActivity.this)) {
                final Dialog loadingDialog = DialogFactory.createLoadingDialog(WebViewActivity.this);
                loadingDialog.show();
                SyncResponse<GetMemberInfoProto.MemberInfoResponse> memberInfoResponse = null;
                try {
                    memberInfoResponse = WebViewActivity.this.syncAndroidDeviceManager.getMemberInfoResponse();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                if (memberInfoResponse != null && memberInfoResponse.getBody() != null) {
                    int vip = memberInfoResponse.getBody().getMemberLevel().getNumber();
                    if (vip == 1) {
                        this.url = "http://outinterface.tykd.vnet.cn/SmsMass/NewSms/Index";
                    } else if (vip == 2) {
                        this.url = "http://outinterface.tykd.vnet.cn/SmsMassVIP/NewSms/Index";
                    }
                }
                if (WebViewActivity.this.preferenceKeyManager.getSysMsgSetting().isShowNetSmsProtocol().get().booleanValue()) {
                    final NetSmsAlertDialogView.Builder builder = new NetSmsAlertDialogView.Builder(WebViewActivity.this);
                    builder.setCancelable(false);
                    builder.setIcon(android.R.drawable.ic_dialog_alert);
                    builder.setTitle((CharSequence) "号簿助手网络短信服务使用许可协议");
                    builder.setMessage((CharSequence) "    号簿助手网络短信功能(以下简称“本服务”),现已开放给号簿助手会员用户使用,以下是《号簿助手网络短信服务使用许可协议》内容,如果您对本协议的任何条款有异议,您可选择不使用;当您点选 “ 同意 ” 即视为您已仔细阅读本条款,接受本服务条款的所有规范,并愿受其拘束。具体内容如下:\n\n一、短信下发额度、计费规则:\n1.号簿助手根据会员级别不同,每月可享受一定数量免费网络短信下发额度,其中免费会员20条/月,与中国电信其他业务共享额度;VIP会员50条/月专享额度;在此额度内,不向用户收取短信下发费用;\n2.号簿助手有权单方面根据业务需求对网络短信下发额度进行调整,具体调整事项将提前通过官网和号簿助手APP进行公告;\n3.用户在免费短信下发额度使用完后可以选择签订计费短信协议,继续发送计费短信,计费短信按每条0.1元进行计费;用户拥有手机套餐短信额度或增值短信订购包额度时,默认优先使用手机套餐短信额度或增值短信订购包额度。\n\n二、号簿助手应以本协议约定的方式向会员用户提供网络短信服务。\n\n三、用户使用本服务发送的网络短信,发件人均显示为发送者的手机号码,以用户使用本服务时所登录的天翼帐号为准。\n\n四、用户使用本服务发送短信时,需保证发送信息内容的合法性,并对发送信息内容承担责任,不得发送传播含有以下内容的信息:\n1.违反中华人民共和国宪法所确定的基本原则的;\n2.危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统一的;\n3.损害国家荣誉和利益;\n4.煽动民族仇恨、民族歧视、破坏民族团结的;\n5.破坏国家宗教政策、宣扬邪教和封建迷信的;\n6.造谣中伤、扰乱社会秩序、破坏社会稳定的;\n7.反动、色情、淫秽、赌博、暴力、凶杀、恐怖、恐吓或者教唆犯罪的;\n8.侮辱、谩骂、诽谤他人合法权益的;\n9.中华人民共和国法律、行政法规所禁止的其他内容的;\n如果用户发送信息内容违反以上约束,平台有权单方面取消发件人当月的短信额度,甚至终止提供短信服务,已支付的会员费不予退还。\n五、短信消息在极少数情况下可能会因为网络拥塞引起短信消息的延时或丢失,该风险需您自行承担,敬请谅解!\n");
                    builder.setCheckBox(true, true);
                    builder.setPositiveButton((CharSequence) "确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            if (builder.getIsCheck()) {
                                dialog.dismiss();
                                WebViewActivity.this.preferenceKeyManager.getSysMsgSetting().isShowNetSmsProtocol().set(false);
                                loadingDialog.dismiss();
                                Intent intent = new Intent(WebViewActivity.this, (Class<?>) WebViewActivity.class);
                                intent.putExtra(IConstant.Intent.INTENT_WEB_URL, TestInterface.this.url);
                                intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, "网络短信");
                                intent.putExtra("sms", "sms");
                                WebViewActivity.this.startActivity(intent);
                                return;
                            }
                            loadingDialog.dismiss();
                            WebViewActivity.this.toastTool.showMessage("请阅读号簿助手网络短信服务使用许可协议");
                        }
                    });
                    builder.setNegativeButton((CharSequence) "取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            loadingDialog.dismiss();
                        }
                    });
                    builder.create().show();
                    return;
                }
                loadingDialog.dismiss();
                Intent intent = new Intent(WebViewActivity.this, (Class<?>) WebViewActivity.class);
                intent.putExtra(IConstant.Intent.INTENT_WEB_URL, this.url);
                intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, "网络短信");
                intent.putExtra("sms", "sms");
                WebViewActivity.this.startActivity(intent);
                return;
            }
            WebViewActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    WebViewActivity.this.toastTool.showMessage("请检查网络");
                }
            });
        }

        @JavascriptInterface
        public void openToTemind() {
        }

        @JavascriptInterface
        public void sharedMyAddressBook() {
            Intent intent = new Intent(WebViewActivity.this, (Class<?>) MessageRecipientChooseActivity.class);
            intent.putExtra(IConstant.Extra.DELETE_CONTACT, true);
            WebViewActivity.this.startActivity(intent);
        }

        @JavascriptInterface
        public void payResultNotification(String rescode, String resnessage, String time, String level, String period, String price) {
            Toast.makeText(WebViewActivity.this, "支付结果通知", 0);
        }

        @JavascriptInterface
        public void recharge() {
            if (WebViewActivity.this.isVip) {
                Intent intent = new Intent();
                intent.setClass(WebViewActivity.this, WebViewOfLifeActivity.class);
                intent.putExtra(IConstant.Intent.INTENT_WEB_URL, "http://moneypay.live.189.cn/pimobi/?300");
                intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, "充值");
                intent.putExtra(IConstant.Intent.INTENT_WEB_FREE_MESSAGE, false);
                WebViewActivity.this.startActivity(intent);
                return;
            }
            ToastTool.getToast(WebViewActivity.this.getApplicationContext()).showMessage("您的会员等级不够,请开通VIP会员");
            String phoneNum = WebViewActivity.this.getIntent().getStringExtra(IConstant.Intent.INTENT_PHONE_NUMBERS);
            String payID = WebViewActivity.this.getIntent().getStringExtra(IConstant.Intent.INTENT_PAYID);
            if (WebViewActivity.this.isFirst.booleanValue()) {
                WebViewActivity.this.isFirst = false;
                WebViewActivity.this.pay(phoneNum, payID);
            }
        }

        @JavascriptInterface
        public void openMemberShip() {
            WebViewActivity.this.pay(WebViewActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().get().tag5.toString(), IConstant.Params.PAY_ID);
        }
    }

    public void pay(String phoneNum, String payID) {
        if (TextUtils.isEmpty(phoneNum)) {
            Toast.makeText(this, "手机号码不能为空!", 1).show();
            return;
        }
        Boolean isDianxin = DeviceUtils.getIsDianxin(phoneNum);
        if (isDianxin.booleanValue()) {
            PayHelper payHelper = PayHelper.getInstance(this);
            payHelper.init(IConstant.Open189Settings.APPID, IConstant.Open189Settings.APPSecret);
            payHelper.settimeout(120000);
            payHelper.pay(this, payID, phoneNum, this.handler, "ffcs");
            return;
        }
        ToastTool.getToast(getApplicationContext()).showMessage("本服务暂时仅支持中国电信用户");
    }

    public class MJavascriptInterface {
        private Context context;
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case Constants.RESULT_PAY_SUCCESS:
                        BaseResponse resp = (BaseResponse) msg.obj;
                        Toast.makeText(WebViewActivity.this, resp.getRes_code() + ":" + resp.getRes_message(), 0).show();
                        WebViewActivity.this.adapter.getModel().getSearchWebView().loadUrl(WebViewActivity.this.paySuccessUrl);
                        return;
                    case Constants.RESULT_PAY_FAILURE:
                        BaseResponse resp2 = (BaseResponse) msg.obj;
                        Toast.makeText(MJavascriptInterface.this.context, resp2.getRes_code() + ":" + resp2.getRes_message(), 0).show();
                        WebViewActivity.this.adapter.getModel().getSearchWebView().loadUrl(WebViewActivity.this.payFailUrl);
                        return;
                    case Constants.RESULT_VALIDATE_FAILURE:
                        BaseResponse resp3 = (BaseResponse) msg.obj;
                        Toast.makeText(WebViewActivity.this, resp3.getRes_code() + ":" + resp3.getRes_message(), 0).show();
                        return;
                    default:
                        return;
                }
            }
        };

        public MJavascriptInterface(Context context) {
            this.context = context;
        }

        @JavascriptInterface
        public String getLoginFlag() {
            KeyValuePare keyValuePare = WebViewActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().get();
            if (keyValuePare == null) {
                return "";
            }
            StringBuffer sb = new StringBuffer();
            sb.append("{\"phone\":\"" + keyValuePare.key + "\",\"userid\":\"" + ((Long) keyValuePare.tag3) + "\",\"pUserid\":\"" + ((String) keyValuePare.tag4) + "\",\"tocken\":\"" + ((String) keyValuePare.tag) + "\",\"number\":\"" + ((String) keyValuePare.tag5) + "\"}");
            return sb.toString();
        }

        @JavascriptInterface
        public String getUserId() {
            KeyValuePare keyValuePare = WebViewActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().get();
            if (keyValuePare == null) {
                return "";
            }
            StringBuffer sb = new StringBuffer();
            sb.append("{\"userid\":" + keyValuePare.key + "}");
            return sb.toString();
        }

        @JavascriptInterface
        public void showToastMessage(String message) {
            WebViewActivity.this.toastTool.showMessage(message);
        }

        @JavascriptInterface
        public void login() {
            WebViewActivity.this.startActivity(new Intent(WebViewActivity.this, (Class<?>) AccountLoginActivity.class));
        }

        @JavascriptInterface
        public void openURLs(final String strTitle, final String strUrl) {
            if (!WebViewActivity.this.isFreeMessage) {
                WebViewActivity.this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        WebViewActivity.this.adapter.getModel().getSearchWebView().loadUrl(strUrl);
                        if (!TextUtils.isEmpty(WebViewActivity.this.getIntent().getStringExtra("sms"))) {
                            WebViewActivity.this.adapter.getModel().getHeaderView().setMiddleView("网络短信");
                        } else {
                            WebViewActivity.this.adapter.getModel().getHeaderView().setMiddleView(strTitle);
                        }
                    }
                });
                return;
            }
            Intent intent = new Intent();
            intent.setClass(WebViewActivity.this, WebViewActivity.class);
            intent.putExtra(IConstant.Intent.INTENT_WEB_URL, strUrl);
            if (!TextUtils.isEmpty(WebViewActivity.this.getIntent().getStringExtra("sms"))) {
                intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, "网络短信");
                intent.putExtra("sms", "sms");
            } else {
                intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, strTitle);
            }
            intent.putExtra(IConstant.Intent.INTENT_WEB_FREE_MESSAGE, WebViewActivity.this.isFreeMessage);
            WebViewActivity.this.startActivity(intent);
            if (!TextUtils.isEmpty(WebViewActivity.this.getIntent().getStringExtra("sms"))) {
                WebViewActivity.this.finish();
            }
        }

        @JavascriptInterface
        public void login(String redirectUrl) {
            if (StringUtils.isNotEmpty(redirectUrl)) {
                Intent intent = new Intent();
                intent.putExtra(IConstant.Extra.REDIRECT_URL, redirectUrl);
                intent.putExtra(IConstant.Extra.WEB_TITLE, WebViewActivity.this.webTitle);
                intent.setClass(WebViewActivity.this, AccountLoginActivity.class);
                WebViewActivity.this.startActivityForResult(intent, 200);
                return;
            }
            login();
        }

        @JavascriptInterface
        public void onPay(String phoneNum, String successUrl, String failUrl, String payID) {
            WebViewActivity.logger.debug("$$$### onpay!!");
            if (!TextUtils.isEmpty(phoneNum)) {
                WebViewActivity.this.paySuccessUrl = successUrl;
                WebViewActivity.this.payFailUrl = failUrl;
                PayHelper payHelper = PayHelper.getInstance(WebViewActivity.this);
                payHelper.init(IConstant.Open189Settings.APPID, IConstant.Open189Settings.APPSecret);
                payHelper.settimeout(120000);
                payHelper.pay(WebViewActivity.this, payID, phoneNum, this.handler, "hkajsd");
                return;
            }
            Toast.makeText(WebViewActivity.this, "手机号码不能为空!", 1).show();
        }

        @JavascriptInterface
        public void doCall(String number) {
            WebViewActivity.this.homeActivity.setCallPhone(number);
            Intent intent = new Intent(WebViewActivity.this, (Class<?>) JumpActivity.class);
            intent.putExtra("found_jump_page", 0);
            WebViewActivity.this.startActivityForResult(intent, 0);
        }

        @JavascriptInterface
        public void openSystemBrowsers(String strUrl) {
            Uri uri = Uri.parse(strUrl);
            Intent iten = new Intent("android.intent.action.VIEW", uri);
            WebViewActivity.this.startActivity(iten);
        }
    }
}