号簿助手 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("文件解压失败,请稍后再试!");
}
}
}