Adjust text zoom by system preference

 Bug: 5287968
 System setting is a multiplier on top of browser's text zoom preference

Change-Id: I88ea1340827492412c51efaf28ca789767ba8c56
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 6b8daec..cfaa18a 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -25,6 +25,7 @@
 import android.os.Message;
 import android.preference.PreferenceManager;
 import android.provider.Browser;
+import android.util.DisplayMetrics;
 import android.webkit.CookieManager;
 import android.webkit.GeolocationPermissions;
 import android.webkit.WebIconDatabase;
@@ -104,6 +105,7 @@
     private WeakHashMap<WebSettings, String> mCustomUserAgents;
     private static boolean sInitialized = false;
     private boolean mNeedsSharedSync = true;
+    private float mFontSizeMult = 1.0f;
 
     // Cached values
     private int mPageCacheCapacity = 1;
@@ -158,6 +160,8 @@
 
         @Override
         public void run() {
+            DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
+            mFontSizeMult = metrics.scaledDensity / metrics.density;
             // the cost of one cached page is ~3M (measured using nytimes.com). For
             // low end devices, we only cache one page. For high end devices, we try
             // to cache more pages, currently choose 5.
@@ -522,9 +526,9 @@
         return rawValue;
     }
 
-    public static int getAdjustedTextZoom(int rawValue) {
+    public int getAdjustedTextZoom(int rawValue) {
         rawValue = (rawValue - TEXT_ZOOM_START_VAL) * TEXT_ZOOM_STEP;
-        return rawValue + 100;
+        return (int) ((rawValue + 100) * mFontSizeMult);
     }
 
     static int getRawTextZoom(int percent) {