Merge "Allow default preload setting to be configured via Gservices."
diff --git a/res/xml/bandwidth_preferences.xml b/res/xml/bandwidth_preferences.xml
index f294026..bb1688e 100644
--- a/res/xml/bandwidth_preferences.xml
+++ b/res/xml/bandwidth_preferences.xml
@@ -20,7 +20,6 @@
         android:key="preload_when"
         android:title="@string/pref_data_preload_title"
         android:summary="@string/pref_data_preload_summary"
-        android:defaultValue="@string/pref_data_preload_default_value"
         android:entries="@array/pref_data_preload_choices"
         android:entryValues="@array/pref_data_preload_values"
         android:dialogTitle="@string/pref_data_preload_dialogtitle" />
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 5920e58..145178b 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -26,6 +26,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;
@@ -809,8 +810,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() {
diff --git a/src/com/android/browser/preferences/BandwidthPreferencesFragment.java b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
index 18b9fa4..2c147cc 100644
--- a/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
+++ b/src/com/android/browser/preferences/BandwidthPreferencesFragment.java
@@ -16,12 +16,11 @@
 
 package com.android.browser.preferences;
 
-import android.content.res.Resources;
 import android.os.Bundle;
-import android.preference.Preference;
+import android.preference.ListPreference;
 import android.preference.PreferenceFragment;
-import android.util.Log;
 
+import com.android.browser.BrowserSettings;
 import com.android.browser.PreferenceKeys;
 import com.android.browser.R;
 
@@ -36,4 +35,18 @@
         addPreferencesFromResource(R.xml.bandwidth_preferences);
     }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+        if (!getPreferenceScreen().getSharedPreferences()
+                .contains(PreferenceKeys.PREF_DATA_PRELOAD)) {
+            // set default value for preload setting
+            ListPreference preload = (ListPreference) getPreferenceScreen().findPreference(
+                    PreferenceKeys.PREF_DATA_PRELOAD);
+            if (preload != null) {
+                preload.setValue(BrowserSettings.getInstance().getDefaultPreloadSetting());
+            }
+        }
+    }
+
 }