summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-03-22 16:41:33 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-03-22 16:41:33 +0000
commitc46b17eff00bf06c8ae22007069c54f66fa595a3 (patch)
treeba9266c5da675a2803eb79fd3748bbb4a3790003
parent3b47535d8f9bedb0a6b5937f43a1f8b9043eb579 (diff)
parentda2247faf874be2fd3de4e10b3a2be64bb7096c2 (diff)
Merge "MidiService: clear status when device unbound" into sc-v2-dev am: da2247faf8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17239105 Change-Id: I8f6018f47d780d2d17e6833b69b82c9f53ee9f08
-rw-r--r--services/midi/java/com/android/server/midi/MidiService.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java
index d0205ae24f85..ca31efcdf3d2 100644
--- a/services/midi/java/com/android/server/midi/MidiService.java
+++ b/services/midi/java/com/android/server/midi/MidiService.java
@@ -340,6 +340,11 @@ public class MidiService extends IMidiManager.Stub {
IBinder binder = server.asBinder();
mDevicesByServer.remove(binder);
+ // Clearing mDeviceStatus is needed because setDeviceStatus()
+ // relies on finding the device in mDevicesByServer.
+ // So the status can no longer be updated after we remove it.
+ // Then we can end up with input ports that are stuck open.
+ mDeviceStatus = null;
try {
server.closeDevice();