Add an option to forceably override user-scalable

Change-Id: I48e0fb0c3472ee51fc907f5b0d307a64400cfe36
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c30eea8..ad960b1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -525,6 +525,10 @@
     </string-array>
     <!-- Label for minimum font size [CHAR LIMIT=30] -->
     <string name="pref_min_font_size">Minimum font size</string>
+    <!-- Label for whether or not to force-enable user scalablity (aka, zoom) [CHAR LIMIT=30] -->
+    <string name="pref_force_userscalable">Force enable zoom</string>
+    <!-- Summary for whether or not to force-enable user scalablity (aka, zoom) [CHAR LIMIT=30] -->
+    <string name="pref_force_userscalable_summary">Whether or not to override a website\'s request to control zoom behavior</string>
     <!-- Settings label -->
     <string name="pref_default_zoom">Default zoom</string>
     <!-- Settings default zoom options; appear in default zoom dialog box -->
diff --git a/res/xml/accessibility_preferences.xml b/res/xml/accessibility_preferences.xml
index 368d909..799d0e2 100644
--- a/res/xml/accessibility_preferences.xml
+++ b/res/xml/accessibility_preferences.xml
@@ -32,4 +32,9 @@
         android:title="@string/pref_min_font_size"
         android:defaultValue="1" />
 
+    <CheckBoxPreference android:key="force_userscalable"
+        android:title="@string/pref_force_userscalable"
+        android:summary="@string/pref_force_userscalable_summary"
+        android:defaultValue="false" />
+
 </PreferenceScreen>
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 9456561..642fd18 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -139,6 +139,7 @@
         settings.setDefaultZoom(getDefaultZoom());
         settings.setMinimumFontSize(getMinimumFontSize());
         settings.setMinimumLogicalFontSize(getMinimumFontSize());
+        settings.setForceUserScalable(forceEnableUserScalable());
         settings.setPluginState(getPluginState());
         settings.setTextSize(getTextSize());
         settings.setUserAgentString(USER_AGENTS[getUserAgent()]);
@@ -384,6 +385,10 @@
         return mPrefs.getInt(PREF_MIN_FONT_SIZE, 1);
     }
 
+    public boolean forceEnableUserScalable() {
+        return mPrefs.getBoolean(PREF_FORCE_USERSCALABLE, false);
+    }
+
     // -----------------------------
     // getter/setters for advanced_preferences.xml
     // -----------------------------
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index 929339f..7976869 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -26,6 +26,7 @@
     // ----------------------
     static final String PREF_MIN_FONT_SIZE = "min_font_size";
     static final String PREF_TEXT_SIZE = "text_size";
+    static final String PREF_FORCE_USERSCALABLE = "force_userscalable";
 
     // ----------------------
     // Keys for advanced_preferences.xml