Add more switches to enable/disable carrier features

Add bools to enable/disable the following carrier specific features:
- Exit menu item with 'Minimize or quit' dialog
- Display page title instead of URL in URL bar
- Allow users to provide custom download path
Add method to detect if a carrier specific feature is enabled.

Change-Id: I9db1b16afd14e476de474e8c86bd60ba1a450aba
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 7e07721..4d7bc55 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -734,18 +734,23 @@
     }
 
     public boolean allowMediaDownloads() {
-        boolean enableMediaDownloads = mController.getContext().getResources().getBoolean(
-                                       R.bool.def_enable_media_downloads);
-        boolean shouldAllowMediaDownloads = mPrefs.getBoolean(
-                                        PREF_ALLOW_MEDIA_DOWNLOADS, enableMediaDownloads);
+        // Return false if preference is not exposed to user
+        if (!BrowserConfig.getInstance(mContext)
+                .hasFeature(BrowserConfig.Feature.ALLOW_MEDIA_DOWNLOADS))
+            return false;
 
-        if(!mPrefs.contains(PREF_ALLOW_MEDIA_DOWNLOADS)){
+        // Otherwise, look at default value
+        boolean defaultAllowMediaDownloadsValue = mController.getContext()
+                .getResources().getBoolean(R.bool.def_allow_media_downloads);
+
+        // If preference is not saved, save default value
+        if (!mPrefs.contains(PREF_ALLOW_MEDIA_DOWNLOADS)){
             Editor edit = mPrefs.edit();
-            edit.putBoolean(PREF_ALLOW_MEDIA_DOWNLOADS, shouldAllowMediaDownloads);
+            edit.putBoolean(PREF_ALLOW_MEDIA_DOWNLOADS, defaultAllowMediaDownloadsValue);
             edit.apply();
         }
 
-        return shouldAllowMediaDownloads;
+        return mPrefs.getBoolean(PREF_ALLOW_MEDIA_DOWNLOADS, defaultAllowMediaDownloadsValue);
     }
 
     // TODO: Cache