package org.softeg.slartus.forpdaplus.classes;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.SeekBar;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.prefs.Preferences;
/**
* Created by IntelliJ IDEA.
* User: slinkin
* Date: 16.10.12
* Time: 8:35
* To change this template use File | Settings | File Templates.
*/
public abstract class BrowserViewsFragmentActivity extends AppCompatActivity implements IWebViewContainer {
public abstract String Prefix();
public abstract WebView getWebView();
WebViewExternals m_WebViewExternals;
public WebViewExternals getWebViewExternals() {
if (m_WebViewExternals == null)
m_WebViewExternals = new WebViewExternals(this);
return m_WebViewExternals;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onDestroy()
{
WebView mWebView= getWebView();
// null out before the super call
if (mWebView != null)
{
mWebView.setWebChromeClient(null);
mWebView.setWebViewClient(null);
mWebView.removeAllViews();
mWebView.loadUrl("about:blank");
mWebView = null;
}
super.onDestroy();
}
protected void setWebViewSettings(Boolean loadImagesAutomaticallyAlways) {
getWebViewExternals().setWebViewSettings(loadImagesAutomaticallyAlways);
}
public void setWebViewSettings() {
setWebViewSettings(false);
}
public void onPrepareOptionsMenu() {
getWebViewExternals().onPrepareOptionsMenu();
}
/*@Override
protected void loadPreferences(SharedPreferences prefs) {
super.loadPreferences(prefs);
getWebViewExternals().loadPreferences(prefs);
}*/
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
return getWebViewExternals().dispatchKeyEvent(event);
}
public boolean dispatchSuperKeyEvent(KeyEvent event) {
return super.dispatchKeyEvent(event);
}
public void showFontSizeDialog() {
View v = getLayoutInflater().inflate(R.layout.font_size_dialog, null);
assert v != null;
final SeekBar seekBar = (SeekBar) v.findViewById(R.id.value_seekbar);
seekBar.setProgress(Preferences.getFontSize(Prefix()) - 1);
final TextView textView = (TextView) v.findViewById(R.id.value_textview);
textView.setText((seekBar.getProgress() + 1) + "");
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
getWebView().getSettings().setDefaultFontSize(i + 1);
textView.setText((i + 1) + "");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
new MaterialDialog.Builder(this)
.title(R.string.font_size)
.customView(v,true)
.positiveText(R.string.ok)
.negativeText(R.string.cancel)
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
Preferences.setFontSize(Prefix(), seekBar.getProgress() + 1);
}
@Override
public void onNegative(MaterialDialog dialog) {
getWebView().getSettings().setDefaultFontSize(Preferences.Topic.getFontSize());
}
})
.show();
}
}