Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd536476 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix null pointer exception if USBPort is removed" am: 066cd283

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1308901

Change-Id: I0a6809b6acc6213abed97ef8d6899c786e39a9b1
parents 283653d4 066cd283
Loading
Loading
Loading
Loading
+24 −13
Original line number Diff line number Diff line
@@ -837,11 +837,13 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
                    boolean prevHostConnected = mHostConnected;
                    UsbPort port = (UsbPort) args.arg1;
                    UsbPortStatus status = (UsbPortStatus) args.arg2;

                    if (status != null) {
                        mHostConnected = status.getCurrentDataRole() == DATA_ROLE_HOST;
                        mSourcePower = status.getCurrentPowerRole() == POWER_ROLE_SOURCE;
                        mSinkPower = status.getCurrentPowerRole() == POWER_ROLE_SINK;
                        mAudioAccessoryConnected = (status.getCurrentMode() == MODE_AUDIO_ACCESSORY);
                    mAudioAccessorySupported = port.isModeSupported(MODE_AUDIO_ACCESSORY);

                        // Ideally we want to see if PR_SWAP and DR_SWAP is supported.
                        // But, this should be suffice, since, all four combinations are only supported
                        // when PR_SWAP and DR_SWAP are supported.
@@ -851,6 +853,15 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser
                                && status.isRoleCombinationSupported(POWER_ROLE_SOURCE,
                                DATA_ROLE_DEVICE)
                                && status.isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE);
                    } else {
                        mHostConnected = false;
                        mSourcePower = false;
                        mSinkPower = false;
                        mAudioAccessoryConnected = false;
                        mSupportsAllCombinations = false;
                    }

                    mAudioAccessorySupported = port.isModeSupported(MODE_AUDIO_ACCESSORY);

                    args.recycle();
                    updateUsbNotification(false);