diff --git a/res/values/strings.xml b/res/values/strings.xml index 0baa9019bf3..56f117902f7 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2276,10 +2276,12 @@ Lets you transfer media files on Windows, or using Android File Transfer on Mac (see www.android.com/filetransfer) Camera (PTP) - - Lets you transfer photos using camera software, and transfer any files on computers that don\'t support MTP - "Install file-transfer tools" + Lets you transfer photos using camera software, and transfer any files on computers that don\'t support MTP + + MIDI + + Lets MIDI enabled applications work over USB with MIDI software on your computer. Other users diff --git a/res/xml/usb_settings.xml b/res/xml/usb_settings.xml index 4b0268be7ba..611a1b4db11 100644 --- a/res/xml/usb_settings.xml +++ b/res/xml/usb_settings.xml @@ -32,4 +32,10 @@ android:summary="@string/usb_ptp_summary" /> + + diff --git a/src/com/android/settings/deviceinfo/UsbSettings.java b/src/com/android/settings/deviceinfo/UsbSettings.java index 42de2fd5d69..c3b3f96168a 100644 --- a/src/com/android/settings/deviceinfo/UsbSettings.java +++ b/src/com/android/settings/deviceinfo/UsbSettings.java @@ -41,10 +41,12 @@ public class UsbSettings extends SettingsPreferenceFragment { private static final String KEY_MTP = "usb_mtp"; private static final String KEY_PTP = "usb_ptp"; + private static final String KEY_MIDI = "usb_midi"; private UsbManager mUsbManager; private CheckBoxPreference mMtp; private CheckBoxPreference mPtp; + private CheckBoxPreference mMidi; private boolean mUsbAccessoryMode; private final BroadcastReceiver mStateReceiver = new BroadcastReceiver() { @@ -68,6 +70,7 @@ public class UsbSettings extends SettingsPreferenceFragment { mMtp = (CheckBoxPreference)root.findPreference(KEY_MTP); mPtp = (CheckBoxPreference)root.findPreference(KEY_PTP); + mMidi = (CheckBoxPreference)root.findPreference(KEY_MIDI); UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { @@ -107,27 +110,37 @@ public class UsbSettings extends SettingsPreferenceFragment { if (UsbManager.USB_FUNCTION_MTP.equals(function)) { mMtp.setChecked(true); mPtp.setChecked(false); + mMidi.setChecked(false); } else if (UsbManager.USB_FUNCTION_PTP.equals(function)) { mMtp.setChecked(false); mPtp.setChecked(true); + mMidi.setChecked(false); + } else if (UsbManager.USB_FUNCTION_MIDI.equals(function)) { + mMtp.setChecked(false); + mPtp.setChecked(false); + mMidi.setChecked(true); } else { mMtp.setChecked(false); mPtp.setChecked(false); + mMidi.setChecked(false); } UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { Log.e(TAG, "USB is locked down"); mMtp.setEnabled(false); mPtp.setEnabled(false); + mMidi.setEnabled(true); } else if (!mUsbAccessoryMode) { //Enable MTP and PTP switch while USB is not in Accessory Mode, otherwise disable it Log.e(TAG, "USB Normal Mode"); mMtp.setEnabled(true); mPtp.setEnabled(true); + mMidi.setEnabled(true); } else { Log.e(TAG, "USB Accessory Mode"); mMtp.setEnabled(false); mPtp.setEnabled(false); + mMidi.setEnabled(false); } } @@ -151,6 +164,8 @@ public class UsbSettings extends SettingsPreferenceFragment { function = UsbManager.USB_FUNCTION_MTP; } else if (preference == mPtp && mPtp.isChecked()) { function = UsbManager.USB_FUNCTION_PTP; + } else if (preference == mMidi && mMidi.isChecked()) { + function = UsbManager.USB_FUNCTION_MIDI; } mUsbManager.setCurrentFunction(function, true);