summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-03-13 17:26:52 -0400
committerMike Lockwood <lockwood@android.com>2011-03-13 19:18:08 -0400
commitbce6f8f249ff2b65df9ed790cc460053ab8eccec (patch)
treef7a4d6539c5f65dd1bacc5dff5f0c3a159ee0482 /services
parent767d7a03733c867da7cad466a9303208eb51699f (diff)
downloadframeworks_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.java26
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);
}
}
}