Replaced Webview with TextView in Accessbility Settings

Removed the webview used for the font preview and replaced
it with a textview.  Removes the overhead of using webview
for just a small preview in settings.

Change-Id: I6eb7f3dd67756b220e8f7ff33eab5cc7429d3f36
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index b11e0c6..74765d5 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -529,6 +529,13 @@
         }
     }
 
+    public WebView getTopWebView(){
+        if (mController!= null)
+            return mController.getCurrentTopWebView();
+
+        return null;
+    }
+
     public void clearPasswords() {
         // Clear password store maintained by SWE engine
         WebSettings settings = null;
diff --git a/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
index 7dd20ae..14e1c98 100644
--- a/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
@@ -25,20 +25,16 @@
 import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
 
-import android.webkit.WebView;
 import java.text.NumberFormat;
 
 public class AccessibilityPreferencesFragment extends PreferenceFragment
         implements Preference.OnPreferenceChangeListener {
 
     NumberFormat mFormat;
-    // Used to pause/resume timers, which are required for WebViewPreview
-    WebView mControlWebView;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mControlWebView = new WebView(getActivity());
         addPreferencesFromResource(R.xml.accessibility_preferences);
         BrowserSettings settings = BrowserSettings.getInstance();
         mFormat = NumberFormat.getPercentInstance();
@@ -61,25 +57,6 @@
         */
     }
 
-    @Override
-    public void onResume() {
-        super.onResume();
-        mControlWebView.resumeTimers();
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        mControlWebView.pauseTimers();
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        mControlWebView.destroy();
-        mControlWebView = null;
-    }
-
     void updateMinFontSummary(Preference pref, int minFontSize) {
         Context c = getActivity();
         pref.setSummary(c.getString(R.string.pref_min_font_size_value, minFontSize));
diff --git a/src/com/android/browser/preferences/FontSizePreview.java b/src/com/android/browser/preferences/FontSizePreview.java
index 8825f3d..67d0bd7 100644
--- a/src/com/android/browser/preferences/FontSizePreview.java
+++ b/src/com/android/browser/preferences/FontSizePreview.java
@@ -17,20 +17,16 @@
 package com.android.browser.preferences;
 
 import android.content.Context;
-import android.content.res.Resources;
 import android.util.AttributeSet;
-import android.view.View;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-
 import com.android.browser.BrowserSettings;
 import com.android.browser.R;
 
+import org.codeaurora.swe.WebSettings;
+
 public class FontSizePreview extends WebViewPreview {
 
-    static final String HTML_FORMAT = "<!DOCTYPE html><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><style type=\"text/css\">p { margin: 2px auto;}</style><body><p style=\"font-size: 4pt\">%s</p><p style=\"font-size: 8pt\">%s</p><p style=\"font-size: 10pt\">%s</p><p style=\"font-size: 14pt\">%s</p><p style=\"font-size: 18pt\">%s</p></body></html>";
-
-    String mHtml;
+    //default size for normal sized preview text
+    static final int DEFAULT_FONT_PREVIEW_SIZE = 13;
 
     public FontSizePreview(
             Context context, AttributeSet attrs, int defStyle) {
@@ -46,28 +42,15 @@
     }
 
     @Override
-    protected void init(Context context) {
-        super.init(context);
-        Resources res = context.getResources();
-        Object[] visualNames = res.getStringArray(R.array.pref_text_size_choices);
-        mHtml = String.format(HTML_FORMAT, visualNames);
-    }
-
-    @Override
     protected void updatePreview(boolean forceReload) {
-        if (mWebView == null) return;
+        if (mWebView == null || mTextView == null)
+            return;
 
         WebSettings ws = mWebView.getSettings();
         BrowserSettings bs = BrowserSettings.getInstance();
         ws.setMinimumFontSize(bs.getMinimumFontSize());
         ws.setTextZoom(bs.getTextZoom());
-        mWebView.loadDataWithBaseURL(null, mHtml, "text/html", "utf-8", null);
+        mTextView.setText(R.string.pref_sample_font_size);
+        mTextView.setTextSize(DEFAULT_FONT_PREVIEW_SIZE * bs.getTextZoom() / 100);
     }
-
-    @Override
-    protected void setupWebView(WebView view) {
-        super.setupWebView(view);
-        view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
-    }
-
 }
diff --git a/src/com/android/browser/preferences/WebViewPreview.java b/src/com/android/browser/preferences/WebViewPreview.java
index 1f938f0..03ffcb2 100644
--- a/src/com/android/browser/preferences/WebViewPreview.java
+++ b/src/com/android/browser/preferences/WebViewPreview.java
@@ -24,17 +24,18 @@
 import android.util.AttributeSet;
 import android.view.View;
 import android.view.ViewGroup;
-import android.webkit.WebView;
-
+import android.widget.TextView;
+import com.android.browser.BrowserSettings;
 import com.android.browser.R;
+import org.codeaurora.swe.WebView;
 
 public abstract class WebViewPreview extends Preference
         implements OnSharedPreferenceChangeListener {
 
+    protected TextView mTextView;
     protected WebView mWebView;
 
-    public WebViewPreview(
-            Context context, AttributeSet attrs, int defStyle) {
+    public WebViewPreview(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
         init(context);
     }
@@ -51,32 +52,23 @@
 
     protected void init(Context context) {
         setLayoutResource(R.layout.webview_preview);
+        BrowserSettings bs = BrowserSettings.getInstance();
+        mWebView = bs.getTopWebView();
     }
 
     protected abstract void updatePreview(boolean forceReload);
 
-    protected void setupWebView(WebView view) {}
-
-    @Override
-    protected View onCreateView(ViewGroup parent) {
-        View root = super.onCreateView(parent);
-        WebView webView = (WebView) root.findViewById(R.id.webview);
-        // Tell WebView to really, truly ignore all touch events. No, seriously,
-        // ignore them all. And don't show scrollbars.
-        webView.setFocusable(false);
-        webView.setFocusableInTouchMode(false);
-        webView.setClickable(false);
-        webView.setLongClickable(false);
-        webView.setHorizontalScrollBarEnabled(false);
-        webView.setVerticalScrollBarEnabled(false);
-        setupWebView(webView);
-        return root;
-    }
-
     @Override
     protected void onBindView(View view) {
         super.onBindView(view);
-        mWebView = (WebView) view.findViewById(R.id.webview);
+        mTextView = (TextView) view.findViewById(R.id.text_size_preview);
+        // Ignore all touch events & don't show scrollbars
+        mTextView.setFocusable(false);
+        mTextView.setFocusableInTouchMode(false);
+        mTextView.setClickable(false);
+        mTextView.setLongClickable(false);
+        mTextView.setHorizontalScrollBarEnabled(false);
+        mTextView.setVerticalScrollBarEnabled(false);
         updatePreview(true);
     }
 
@@ -93,8 +85,8 @@
     }
 
     @Override
-    public void onSharedPreferenceChanged(
-            SharedPreferences sharedPreferences, String key) {
+    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+                                          String key) {
         updatePreview(false);
     }