Skip to content

Commit a8731e1

Browse files
mikeandroidAndroid (Google) Code Review
authored andcommitted
Merge "DO NOT MERGE: UsbService: Make USB disconnect handling for accessory mode more robust" into gingerbread
2 parents cafbe87 + 8f2e386 commit a8731e1

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

services/java/com/android/server/usb/UsbService.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,14 @@ public void handleMessage(Message msg) {
387387
case MSG_UPDATE_STATE:
388388
if (mConnected != mLastConnected || mConfiguration != mLastConfiguration) {
389389
if (mConnected == 0) {
390-
// make sure accessory mode is off, and restore default functions
391-
if (mCurrentAccessory != null && UsbManager.setFunctionEnabled(
392-
UsbManager.USB_FUNCTION_ACCESSORY, false)) {
390+
if (UsbManager.isFunctionEnabled(
391+
UsbManager.USB_FUNCTION_ACCESSORY)) {
392+
// make sure accessory mode is off, and restore default functions
393393
Log.d(TAG, "exited USB accessory mode");
394-
394+
if (!UsbManager.setFunctionEnabled
395+
(UsbManager.USB_FUNCTION_ACCESSORY, false)) {
396+
Log.e(TAG, "could not disable accessory function");
397+
}
395398
int count = mDefaultFunctions.size();
396399
for (int i = 0; i < count; i++) {
397400
String function = mDefaultFunctions.get(i);
@@ -400,8 +403,10 @@ public void handleMessage(Message msg) {
400403
}
401404
}
402405

403-
mDeviceManager.accessoryDetached(mCurrentAccessory);
404-
mCurrentAccessory = null;
406+
if (mCurrentAccessory != null) {
407+
mDeviceManager.accessoryDetached(mCurrentAccessory);
408+
mCurrentAccessory = null;
409+
}
405410
}
406411
}
407412

0 commit comments

Comments
 (0)