diff options
author | Mike Lockwood <lockwood@android.com> | 2011-03-13 17:26:52 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2011-03-13 19:18:08 -0400 |
commit | bce6f8f249ff2b65df9ed790cc460053ab8eccec (patch) | |
tree | f7a4d6539c5f65dd1bacc5dff5f0c3a159ee0482 /services | |
parent | 767d7a03733c867da7cad466a9303208eb51699f (diff) | |
download | frameworks_base-bce6f8f249ff2b65df9ed790cc460053ab8eccec.zip frameworks_base-bce6f8f249ff2b65df9ed790cc460053ab8eccec.tar.gz frameworks_base-bce6f8f249ff2b65df9ed790cc460053ab8eccec.tar.bz2 |
Add a dialog to ask user to start an application for a USB device or accessory
This is used when there is only one application available and the user has
not chosen to start it by default.
If more than one application is available we continue to use UsbResolverActivity
Bug: 4074719
Change-Id: Id61f2ccc6de5b9ac70fb4670006ff1fee2028d55
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/usb/UsbDeviceSettingsManager.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java index c40ce76..de0b114 100644 --- a/services/java/com/android/server/usb/UsbDeviceSettingsManager.java +++ b/services/java/com/android/server/usb/UsbDeviceSettingsManager.java @@ -655,17 +655,31 @@ 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)); + + if (device != null) { + resolverIntent.putExtra(UsbManager.EXTRA_DEVICE, device); + } else { + 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); } } } |