diff options
Diffstat (limited to 'services/java/com/android/server/usb/UsbDeviceSettingsManager.java')
-rw-r--r-- | services/java/com/android/server/usb/UsbDeviceSettingsManager.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java index 8f6de2fed41a..616bdca7a855 100644 --- a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java +++ b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java @@ -430,17 +430,26 @@ class UsbDeviceSettingsManager { Log.e(TAG, "startActivity failed", e); } } else { - // start UsbResolverActivity so user can choose an activity Intent resolverIntent = new Intent(); - resolverIntent.setClassName("com.android.systemui", - "com.android.systemui.usb.UsbResolverActivity"); resolverIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - resolverIntent.putExtra(Intent.EXTRA_INTENT, intent); - resolverIntent.putParcelableArrayListExtra("rlist", matches); + + if (count == 1) { + // start UsbConfirmActivity if there is only one choice + resolverIntent.setClassName("com.android.systemui", + "com.android.systemui.usb.UsbConfirmActivity"); + resolverIntent.putExtra("rinfo", matches.get(0)); + resolverIntent.putExtra(UsbManager.EXTRA_ACCESSORY, accessory); + } else { + // start UsbResolverActivity so user can choose an activity + resolverIntent.setClassName("com.android.systemui", + "com.android.systemui.usb.UsbResolverActivity"); + resolverIntent.putParcelableArrayListExtra("rlist", matches); + resolverIntent.putExtra(Intent.EXTRA_INTENT, intent); + } try { mContext.startActivity(resolverIntent); } catch (ActivityNotFoundException e) { - Log.e(TAG, "unable to start UsbResolverActivity"); + Log.e(TAG, "unable to start activity " + resolverIntent); } } } |