Merge "Fix bad USB configuration under Developer Options" into mnc-dev
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 23d0582..6c1f68b 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1329,6 +1329,7 @@
     <!-- USB configuration names for Developer Settings.
          This can be overridden by devices with additional USB configurations. -->
     <string-array name="usb_configuration_titles">
+        <item>@string/usb_use_charging_only</item>
         <item>MTP (Media Transfer Protocol)</item>
         <item>PTP (Picture Transfer Protocol)</item>
         <item>RNDIS (USB Ethernet)</item>
@@ -1342,6 +1343,8 @@
          Do not translate. -->
     <string-array name="usb_configuration_values" translatable="false">
         <!-- Do not translate. -->
+        <item>none</item>
+        <!-- Do not translate. -->
         <item>mtp</item>
         <!-- Do not translate. -->
         <item>ptp</item>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index 759c2a5..89b081a 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -149,18 +149,15 @@
     private static final String OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices";
     private static final String ENABLE_MULTI_WINDOW_KEY = "enable_multi_window";
     private static final String DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category";
-    private static final String DEBUG_APPLICATIONS_CATEGORY_KEY = "debug_applications_category";
     private static final String SELECT_LOGD_SIZE_KEY = "select_logd_size";
     private static final String SELECT_LOGD_SIZE_PROPERTY = "persist.logd.size";
     private static final String SELECT_LOGD_DEFAULT_SIZE_PROPERTY = "ro.logd.size";
 
-    private static final String DEBUG_NETWORKING_CATEGORY_KEY = "debug_networking_category";
     private static final String WIFI_DISPLAY_CERTIFICATION_KEY = "wifi_display_certification";
     private static final String WIFI_VERBOSE_LOGGING_KEY = "wifi_verbose_logging";
     private static final String WIFI_AGGRESSIVE_HANDOVER_KEY = "wifi_aggressive_handover";
     private static final String WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY = "wifi_allow_scan_with_traffic";
     private static final String USB_CONFIGURATION_KEY = "select_usb_configuration";
-    private static final String SELECT_USB_CONFIGURATION_PROPERTY = "sys.usb.config";
     private static final String WIFI_LEGACY_DHCP_CLIENT_KEY = "legacy_dhcp_client";
     private static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on";
 
@@ -1336,31 +1333,19 @@
 
     private void updateUsbConfigurationValues() {
         if (mUsbConfiguration != null) {
-            String currentValue = SystemProperties.get(SELECT_USB_CONFIGURATION_PROPERTY);
-
-            // Ignore adb interface. The USB Manager adds or removes adb automatically
-            // depending on if USB debugging is enabled.
-            int adbIndex = currentValue.indexOf(",adb");
-            if (adbIndex > 0) {
-                currentValue = currentValue.substring(0, adbIndex);
-            }
+            UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
 
             String[] values = getResources().getStringArray(R.array.usb_configuration_values);
             String[] titles = getResources().getStringArray(R.array.usb_configuration_titles);
-            int index = 1; // punt to second entry if not found
+            int index = 0;
             for (int i = 0; i < titles.length; i++) {
-                if (currentValue.equals(values[i])) {
+                if (manager.isFunctionEnabled(values[i])) {
                     index = i;
                     break;
                 }
             }
-            if (index >= 0) {
-                mUsbConfiguration.setValue(values[index]);
-                mUsbConfiguration.setSummary(titles[index]);
-            } else {
-                mUsbConfiguration.setValue("");
-                mUsbConfiguration.setSummary("");
-            }
+            mUsbConfiguration.setValue(values[index]);
+            mUsbConfiguration.setSummary(titles[index]);
             mUsbConfiguration.setOnPreferenceChangeListener(this);
         }
     }