diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 97f5eadcb0a..e5f19888eb2 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1389,12 +1389,4 @@
- 0
-
-
- - @string/usb_use_charging_only
- - @string/usb_use_file_transfers
- - @string/usb_use_photo_transfers
- - @string/usb_use_MIDI
-
-
diff --git a/src/com/android/settings/deviceinfo/UsbBackend.java b/src/com/android/settings/deviceinfo/UsbBackend.java
index d19b2611a34..c44f2eb6641 100644
--- a/src/com/android/settings/deviceinfo/UsbBackend.java
+++ b/src/com/android/settings/deviceinfo/UsbBackend.java
@@ -16,6 +16,8 @@
package com.android.settings.deviceinfo;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.hardware.usb.UsbManager;
import android.hardware.usb.UsbPort;
import android.hardware.usb.UsbPortStatus;
@@ -40,7 +42,13 @@ public class UsbBackend {
private UsbPort mPort;
private UsbPortStatus mPortStatus;
+ private boolean mIsUnlocked;
+
public UsbBackend(Context context) {
+ Intent intent = context.registerReceiver(null,
+ new IntentFilter(UsbManager.ACTION_USB_STATE));
+ mIsUnlocked = intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false);
+
mUserManager = UserManager.get(context);
mUsbManager = context.getSystemService(UsbManager.class);
@@ -70,7 +78,7 @@ public class UsbBackend {
}
public int getUsbDataMode() {
- if (!mUsbManager.isUsbDataUnlocked()) {
+ if (!mIsUnlocked) {
return MODE_DATA_NONE;
} else if (mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_MTP)) {
return MODE_DATA_MTP;
@@ -123,7 +131,8 @@ public class UsbBackend {
}
public boolean isModeSupported(int mode) {
- if (mRestricted && (mode & MODE_DATA_MASK) != MODE_DATA_NONE) {
+ if (mRestricted && (mode & MODE_DATA_MASK) != MODE_DATA_NONE
+ && (mode & MODE_DATA_MASK) != MODE_DATA_MIDI) {
// No USB data modes are supported.
return false;
}
diff --git a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
index 8f5a6a80993..77fc388f5a8 100644
--- a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
+++ b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java
@@ -51,6 +51,7 @@ public class UsbModeChooserActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+
super.onCreate(savedInstanceState);
mLayoutInflater = LayoutInflater.from(this);