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

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


package com.chinatelecom.pim.activity.found;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.FragmentTabHost;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import com.baidu.location.BDLocation;
import com.chinatelecom.pim.PimApplication;
import com.chinatelecom.pim.PimHomeActivity;
import com.chinatelecom.pim.R;
import com.chinatelecom.pim.activity.setting.AccountLoginActivity;
import com.chinatelecom.pim.activity.setting.WebViewOfLifeActivity;
import com.chinatelecom.pim.core.CoreManagerFactory;
import com.chinatelecom.pim.core.IConstant;
import com.chinatelecom.pim.core.manager.EventLogManager;
import com.chinatelecom.pim.core.manager.PimAccountManager;
import com.chinatelecom.pim.core.manager.PreferenceKeyManager;
import com.chinatelecom.pim.core.threadpool.ICallback;
import com.chinatelecom.pim.core.view.FragmentView;
import com.chinatelecom.pim.foundation.lang.KeyValuePare;
import com.chinatelecom.pim.foundation.lang.log.Log;
import com.chinatelecom.pim.foundation.lang.model.Notify;
import com.chinatelecom.pim.foundation.lang.model.Theme;
import com.chinatelecom.pim.foundation.lang.utils.StringUtils;
import com.chinatelecom.pim.foundation.lang.utils.ToastTool;
import com.chinatelecom.pim.foundation.lang.utils.UnZipAssets;
import com.chinatelecom.pim.manager.BaiduLocationManager;
import com.chinatelecom.pim.ui.adapter.found.FoundWebViewAdapter;
import com.chinatelecom.pim.ui.view.dialog.DialogFactory;

public class FoundWebActivity extends FragmentView<FoundWebViewAdapter> {
    private static final Log logger = Log.build(FoundWebActivity.class);
    FoundWebViewAdapter adapter;
    private BaiduLocationManager baiduLocationManager;
    private PimHomeActivity homeActivity;
    private boolean isFirstUnZip;
    private ToastTool toastTool;
    private PimAccountManager accountManager = CoreManagerFactory.getInstance().getAccountManager();
    private EventLogManager eventLogManager = CoreManagerFactory.getInstance().getEventLogManager();
    private PreferenceKeyManager preferenceKeyManager = CoreManagerFactory.getInstance().getPreferenceKeyManager();
    private SharedPreferences sharedPreferences = CoreManagerFactory.getInstance().getSharedPreferences();
    private boolean isZipSuccess = true;

    @Override
    public FoundWebViewAdapter initalizeAdapter() {
        this.homeActivity = PimHomeActivity.getHomeActivity();
        this.toastTool = ToastTool.getToast(getActivity());
        FoundWebViewAdapter adapter = new FoundWebViewAdapter(getActivity(), null);
        this.isFirstUnZip = this.sharedPreferences.getBoolean(IConstant.Preferences.IS_FIRST_UNZIP, true);
        return adapter;
    }

    @Override
    public void doCreate(Bundle bundle, FoundWebViewAdapter adapter) {
        adapter.setTheme(new Theme());
        adapter.setup();
        if (this.isFirstUnZip) {
        }
        adapter.setupHeader();
        setupViewListener(adapter);
        this.adapter = adapter;
        setTabRedFlag();
    }

    @Override
    public void doResume(final FoundWebViewAdapter adapter) {
        super.doResume((FoundWebActivity) adapter);
        PimApplication.currentNumber = 3;
        new AsyncTask() {
            @Override
            protected Object doInBackground(Object[] objects) {
                FoundWebActivity.this.getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        FoundWebActivity.this.initViews(adapter);
                        FoundWebActivity.this.sendWebLifeHasOpen(adapter);
                    }
                });
                return null;
            }
        }.execute(new Object[0]);
        adapter.getModel().getHeaderView().getLayout().getBackground().setAlpha(255);
    }

    public void sendWebLifeHasOpen(FoundWebViewAdapter adapter) {
        logger.debug("setRedFlag========sendWebLifeHasOpen========");
        Intent intent = new Intent(IConstant.Action.WEB_LIFE_UPATE);
        intent.putExtra(IConstant.Params.FROM, 12);
        intent.putExtra(IConstant.Params.WEB_LIFE_UPDATE_VERSION, 0);
        adapter.getActivity().sendBroadcast(intent);
    }

    private void setupViewListener(FoundWebViewAdapter adapter) {
        adapter.getModel().getBtnNoConnect().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            }
        });
    }

    public void setTabRedFlag() {
        FragmentTabHost tabHost = ((PimHomeActivity) getActivity()).getTabHost();
        tabHost.getTabWidget().getChildAt(3).setBackgroundResource(R.drawable.home_bottom_bg_shape_selector);
        ImageView imageView = (ImageView) tabHost.getTabWidget().getChildAt(3).findViewById(R.id.iv_tab_red_circule_flag);
        imageView.setImageResource(R.drawable.transparent);
        imageView.invalidate();
        tabHost.getTabWidget().getChildAt(3).invalidate();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode > -1) {
            this.homeActivity.getTabHost().setCurrentTab(requestCode);
        }
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        this.eventLogManager.insertEvent(-4, 1);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        if (this.baiduLocationManager != null) {
            try {
                this.baiduLocationManager.stop();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public void initViews(FoundWebViewAdapter adapter) {
        WebView webView = adapter.getModel().getFoundWebView();
        WebSettings wv_setting = webView.getSettings();
        wv_setting.setJavaScriptEnabled(true);
        wv_setting.setUseWideViewPort(true);
        wv_setting.setDefaultTextEncodingName("UTF-8");
        wv_setting.setUseWideViewPort(true);
        wv_setting.setSupportMultipleWindows(true);
        wv_setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        wv_setting.setJavaScriptCanOpenWindowsAutomatically(true);
        wv_setting.setLoadsImagesAutomatically(true);
        webView.getSettings().setAllowFileAccess(true);
        webView.loadUrl("file:///android_asset/index.html");
        MWebViewClient mWebViewClient = new MWebViewClient(webView, getActivity());
        webView.setWebViewClient(mWebViewClient);
        MWebChromeClient mWebChromeClient = new MWebChromeClient(getActivity()) {
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                return super.onJsAlert(view, url, message, result);
            }
        };
        webView.setWebChromeClient(mWebChromeClient);
        MJavascriptInterface mJavascriptInterface = new MJavascriptInterface(getActivity());
        webView.addJavascriptInterface(mJavascriptInterface, "FoundWebView");
        webView.setSaveEnabled(false);
    }

    public class MJavascriptInterface {
        private Context context;

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

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

        @JavascriptInterface
        public String getLoginFlag() {
            KeyValuePare keyValuePare = FoundWebActivity.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 = FoundWebActivity.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) {
            FoundWebActivity.this.toastTool.showMessage(message + "");
        }

        @JavascriptInterface
        public void getBaiduLocation() {
            final StringBuffer sb = new StringBuffer();
            try {
                FoundWebActivity.this.baiduLocationManager = new BaiduLocationManager(FoundWebActivity.this.getActivity(), new ICallback<BDLocation>() {
                    @Override
                    public void prepare() {
                    }

                    @Override
                    public void complete(BDLocation location) {
                        sb.append("{");
                        sb.append("\"Latitude\":\"" + location.getLatitude());
                        sb.append("\",\"Longitude\":\"" + location.getLongitude());
                        sb.append("\",\"City\":\"" + location.getCity());
                        sb.append("\",\"AddrStr\":\"" + location.getAddrStr());
                        sb.append("\"}");
                        System.out.println("sb======" + sb.toString());
                        FoundWebActivity.this.getActivity().runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                FoundWebActivity.this.adapter.getModel().getFoundWebView().loadUrl("javascript:locationCallback('" + sb.toString() + "')");
                            }
                        });
                    }
                });
                FoundWebActivity.this.baiduLocationManager.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @JavascriptInterface
        protected void createLoginAccountDialog() {
            Dialog LoginDialog = DialogFactory.createMessageDialog(FoundWebActivity.this.getActivity(), 0, "登录天翼帐号", FoundWebActivity.this.getResources().getString(R.string.login_account_dialog_message), "立即登录", "取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                    FoundWebActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().set(null);
                    CoreManagerFactory.getInstance().getPimNotifyManager().changed(Notify.Event.ACCOUNT_CHANGED, null);
                    FoundWebActivity.this.startActivity(new Intent(FoundWebActivity.this.getActivity(), (Class<?>) AccountLoginActivity.class));
                }
            }, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            });
            LoginDialog.show();
        }

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

        @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, "生活");
                intent.setClass(FoundWebActivity.this.getActivity(), AccountLoginActivity.class);
                FoundWebActivity.this.startActivityForResult(intent, 200);
                return;
            }
            login();
        }

        @JavascriptInterface
        public String getToken() {
            KeyValuePare keyValuePare = FoundWebActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().get();
            if (keyValuePare == null) {
                return "";
            }
            StringBuffer sb = new StringBuffer();
            sb.append("{\"token\":" + ((String) keyValuePare.tag) + "}");
            return sb.toString();
        }

        @JavascriptInterface
        public void openURLs(String strTitle, String strUrl) {
            Intent intent = new Intent();
            intent.setClass(FoundWebActivity.this.getActivity(), WebViewOfLifeActivity.class);
            intent.putExtra(IConstant.Intent.INTENT_WEB_URL, strUrl);
            intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, strTitle);
            FoundWebActivity.this.startActivity(intent);
        }

        @JavascriptInterface
        public void openFreeMessage(String strTitle, String strUrl) {
            Intent intent = new Intent();
            if (FoundWebActivity.this.accountManager.hasAccount() != null) {
                KeyValuePare keyValuePare = FoundWebActivity.this.preferenceKeyManager.getAccountSettings().syncAccount().get();
                if (keyValuePare != null) {
                    Long expiredTime = (Long) keyValuePare.tag2;
                    if (expiredTime == null || expiredTime.longValue() <= System.currentTimeMillis()) {
                        try {
                            FoundWebActivity.this.accountManager.sendGet(keyValuePare.key, keyValuePare.value);
                            return;
                        } catch (Exception e) {
                            e.printStackTrace();
                            return;
                        }
                    }
                    intent.putExtra(IConstant.Intent.INTENT_WEB_URL, strUrl);
                    intent.putExtra(IConstant.Intent.INTENT_WEB_TITLE, strTitle);
                    intent.putExtra(IConstant.Intent.INTENT_WEB_FREE_MESSAGE, true);
                    intent.setClass(FoundWebActivity.this.getActivity(), WebViewOfLifeActivity.class);
                    FoundWebActivity.this.startActivity(intent);
                    return;
                }
                createLoginAccountDialog();
                return;
            }
            createLoginAccountDialog();
        }

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

        @JavascriptInterface
        public void openWonderfulApp() {
            Intent intent = new Intent();
            intent.setClass(FoundWebActivity.this.getActivity(), MarketActivity.class);
            FoundWebActivity.this.startActivity(intent);
        }
    }

    public void unAssetsZip(final FoundWebViewAdapter adapter) {
        this.isZipSuccess = true;
        final Dialog dialog = DialogFactory.createLoadingDialog(getActivity(), "正在解压文件,请稍后");
        dialog.show();
        new Thread() {
            @Override
            public void run() {
                try {
                    UnZipAssets.unZip(FoundWebActivity.this.getActivity(), "www.zip", IConstant.ZipFile.OUTPUT_ZIP_DIRECTORY, true);
                } catch (Exception e) {
                    FoundWebActivity.this.isZipSuccess = false;
                    e.printStackTrace();
                }
                if (!FoundWebActivity.this.isFirstUnZip) {
                    FoundWebActivity.this.getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            adapter.getModel().getFoundWebView().loadUrl("file:///" + IConstant.ZipFile.OUTPUT_ZIP_DIRECTORY + "/index.html");
                            adapter.getModel().getFoundWebView().reload();
                        }
                    });
                }
                dialog.dismiss();
            }
        }.start();
        if (this.isZipSuccess) {
            adapter.setConnectionFileView(true);
            this.sharedPreferences.edit().putBoolean(IConstant.Preferences.IS_FIRST_UNZIP, false).commit();
        } else {
            adapter.setConnectionFileView(false);
            this.toastTool.showMessage("文件解压失败,请稍后再试!");
        }
    }
}