summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mike Lockwood <lockwood@android.com> 2011-03-30 14:15:51 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-03-30 14:15:51 -0700
commita8731e1e922512e5c22485e48059f33b61ab93ea (patch)
treeaa24f2ba8ca6d44a63d9eb4156833656559b4a21
parentcafbe87d5b6108d71e85950796b587f95d00cfac (diff)
parent8f2e3862bc4629bf152810aa147089bd066ded83 (diff)
Merge "DO NOT MERGE: UsbService: Make USB disconnect handling for accessory mode more robust" into gingerbread
-rw-r--r--services/java/com/android/server/usb/UsbService.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/services/java/com/android/server/usb/UsbService.java b/services/java/com/android/server/usb/UsbService.java
index f366e1095098..b4789e732629 100644
--- a/services/java/com/android/server/usb/UsbService.java
+++ b/services/java/com/android/server/usb/UsbService.java
@@ -387,11 +387,14 @@ public class UsbService extends IUsbManager.Stub {
case MSG_UPDATE_STATE:
if (mConnected != mLastConnected || mConfiguration != mLastConfiguration) {
if (mConnected == 0) {
- // make sure accessory mode is off, and restore default functions
- if (mCurrentAccessory != null && UsbManager.setFunctionEnabled(
- UsbManager.USB_FUNCTION_ACCESSORY, false)) {
+ if (UsbManager.isFunctionEnabled(
+ UsbManager.USB_FUNCTION_ACCESSORY)) {
+ // make sure accessory mode is off, and restore default functions
Log.d(TAG, "exited USB accessory mode");
-
+ if (!UsbManager.setFunctionEnabled
+ (UsbManager.USB_FUNCTION_ACCESSORY, false)) {
+ Log.e(TAG, "could not disable accessory function");
+ }
int count = mDefaultFunctions.size();
for (int i = 0; i < count; i++) {
String function = mDefaultFunctions.get(i);
@@ -400,8 +403,10 @@ public class UsbService extends IUsbManager.Stub {
}
}
- mDeviceManager.accessoryDetached(mCurrentAccessory);
- mCurrentAccessory = null;
+ if (mCurrentAccessory != null) {
+ mDeviceManager.accessoryDetached(mCurrentAccessory);
+ mCurrentAccessory = null;
+ }
}
}