package org.aisen.weibo.sina.ui.fragment.settings;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import org.aisen.android.common.setting.SettingUtility;
import org.aisen.android.ui.activity.container.FragmentArgs;
import org.aisen.weibo.sina.ui.activity.base.SinaCommonActivity;
import org.aisen.android.support.inject.ViewInject;
import org.aisen.android.ui.activity.basic.BaseActivity;
import org.aisen.android.ui.fragment.ABaseFragment;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.ui.activity.browser.BrowserActivity;
import fr.castorflex.android.smoothprogressbar.SmoothProgressBar;
/**
* 关于Aisen微博
*
* @author wangdan
*
*/
public class AboutWebFragment extends ABaseFragment {
public static void launchAbout(Activity from) {
FragmentArgs args = new FragmentArgs();
args.add("type", 0);
// SinaCommonActivity.launch(from, AboutWebFragment.class, args);
Intent intent = new Intent(from, BrowserActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.putExtra("url", SettingUtility.getStringSetting("about_url"));
from.startActivity(intent);
}
public static void launchHelp(Activity from) {
// FragmentArgs args = new FragmentArgs();
// args.add("type", 1);
//
// SinaCommonActivity.launch(from, AboutWebFragment.class, args);
Intent intent = new Intent(from, BrowserActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.putExtra("url", SettingUtility.getStringSetting("help_url"));
from.startActivity(intent);
}
public static void launchOpensource(Activity from) {
FragmentArgs args = new FragmentArgs();
args.add("type", 2);
SinaCommonActivity.launch(from, AboutWebFragment.class, args);
}
@ViewInject(id = R.id.webView)
WebView webView;
@ViewInject(id = R.id.progress)
SmoothProgressBar progressbar;
private int type;
@Override
public int inflateContentView() {
return R.layout.ui_about_web;
}
@SuppressLint("SetJavaScriptEnabled") @Override
protected void layoutInit(LayoutInflater inflater, Bundle savedInstanceSate) {
super.layoutInit(inflater, savedInstanceSate);
type = savedInstanceSate == null ? getArguments().getInt("type") : savedInstanceSate.getInt("type");
BaseActivity activity = (BaseActivity) getActivity();
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
activity.getSupportActionBar().setTitle(getPageTitle(type));
progressbar.setVisibility(View.GONE);
progressbar.setIndeterminate(true);
WebSettings setting = webView.getSettings();
setting.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, final String url) {
view.loadUrl(url);
return true;
}
});
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress < 100) {
progressbar.setVisibility(View.VISIBLE);
} else if (newProgress == 100) {
progressbar.setVisibility(View.GONE);
}
progressbar.setProgress(newProgress);
super.onProgressChanged(view, newProgress);
}
});
setting.setJavaScriptCanOpenWindowsAutomatically(true);
if (type == 0)
webView.loadUrl(SettingUtility.getStringSetting("getSupportActionBar"));
// else if (type == 1)
// webView.loadUrl(AppSettings.getSettingExtra().getHelpURL());
else if (type == 2)
webView.loadUrl("file:///android_asset/licenses.html");
if (type == 0 || type == 1)
setHasOptionsMenu(true);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("type", type);
}
@Override
public boolean onHomeClick() {
return super.onBackClick();
}
@Override
public boolean onBackClick() {
if (webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onBackClick();
}
String getPageTitle(int type) {
switch (type) {
case 0:
return getString(R.string.title_about);
// case 1:
// return getString(R.string.title_help);
case 2:
return getString(R.string.title_opensource);
default:
return getString(R.string.title_about);
}
}
}