From 9cff8cdfe0fcc18af32591052cb8263cbe95c5cd Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Fri, 12 Jun 2015 16:30:45 -0700 Subject: [PATCH] Fix bad USB configuration under Developer Options The USB configuration screen under Developer Options hasn't been updated for the new USB access control changes. Update it. 1) Ensure that the default in Development Settings is "Charger Only". 2) Changing USB mode in developer settings only changes the USB function. It doesn't unlock any USB data. Bug: 21258972 Change-Id: I9cbd5099cb55f31f1258e512e5ee7f6f4e303fc9 --- res/values/arrays.xml | 3 +++ .../android/settings/DevelopmentSettings.java | 25 ++++--------------- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 23d0582ee66..6c1f68b2a27 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1329,6 +1329,7 @@ + @string/usb_use_charging_only MTP (Media Transfer Protocol) PTP (Picture Transfer Protocol) RNDIS (USB Ethernet) @@ -1341,6 +1342,8 @@ This can be overridden by devices with additional USB configurations. Do not translate. --> + + none mtp diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 759c2a58822..89b081ab4ce 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -149,18 +149,15 @@ public class DevelopmentSettings extends SettingsPreferenceFragment 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 @@ public class DevelopmentSettings extends SettingsPreferenceFragment 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); } }