package kr.kdev.dg1s.biowiki.ui;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import kr.kdev.dg1s.biowiki.BioWiki;
import kr.kdev.dg1s.biowiki.R;
/**
* Basic activity for displaying a WebView.
*/
public class WebViewActivity extends BWActionBarActivity {
/**
* Primary webview used to display content.
*/
protected WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
ActionBar ab = getSupportActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
ab.setDisplayShowTitleEnabled(true);
ab.setDisplayHomeAsUpEnabled(true);
mWebView = (WebView) findViewById(R.id.webView);
mWebView.getSettings().setUserAgentString(BioWiki.getUserAgent());
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
// load URL if one was provided in the intent
String url = getIntent().getStringExtra("url");
if (url != null) {
loadUrl(url);
}
}
@Override
protected void onPause() {
super.onPause();
// Flash video may keep playing if the webView isn't paused here
pauseWebView();
}
@Override
protected void onResume() {
super.onResume();
resumeWebView();
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void pauseWebView() {
if (mWebView != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
mWebView.onPause();
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void resumeWebView() {
if (mWebView != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
mWebView.onResume();
}
/**
* Load the specified URL in the webview.
*
* @param url URL to load in the webview.
*/
protected void loadUrl(String url) {
mWebView.loadUrl(url);
}
@Override
public void onBackPressed() {
if (mWebView != null && mWebView.canGoBack())
mWebView.goBack();
else
super.onBackPressed();
}
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}