Allow default preload setting to be configured via Gservices.

We now load the default value from a secure setting. To over-ride it, set
Gservices key secure:browser_default_preload_setting to the appropriate
value.

The Gservices default value will only be used if the user has never opened
the 'Bandwidth management' tab in the browswer settings. Once that tab has
been opened, even if the user did not change the setting, the value will be
persisted in the browser and the default will be ignored.

Bug: 5346028

Change-Id: If3b14485dc8bc46e7ed72c49eb5cf3c474893fe3
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index b9eec9c..cfb8dd4 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.provider.Settings;
 import android.util.DisplayMetrics;
 import android.webkit.CookieManager;
 import android.webkit.GeolocationPermissions;
@@ -802,8 +803,16 @@
         return context.getResources().getString(R.string.pref_data_preload_value_always);
     }
 
-    private String getDefaultPreloadSetting() {
-        return mContext.getResources().getString(R.string.pref_data_preload_default_value);
+    private static final String DEAULT_PRELOAD_SECURE_SETTING_KEY =
+            "browser_default_preload_setting";
+
+    public String getDefaultPreloadSetting() {
+        String preload = Settings.Secure.getString(mContext.getContentResolver(),
+                DEAULT_PRELOAD_SECURE_SETTING_KEY);
+        if (preload == null) {
+            preload = mContext.getResources().getString(R.string.pref_data_preload_default_value);
+        }
+        return preload;
     }
 
     public String getPreloadEnabled() {