diff options
| author | 2011-03-30 14:15:51 -0700 | |
|---|---|---|
| committer | 2011-03-30 14:15:51 -0700 | |
| commit | a8731e1e922512e5c22485e48059f33b61ab93ea (patch) | |
| tree | aa24f2ba8ca6d44a63d9eb4156833656559b4a21 | |
| parent | cafbe87d5b6108d71e85950796b587f95d00cfac (diff) | |
| parent | 8f2e3862bc4629bf152810aa147089bd066ded83 (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.java | 17 |
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; + } } } |