From 45939e7eaa25393301f4a2eed135ea31f6d9a635 Mon Sep 17 00:00:00 2001 From: linkai Date: Thu, 7 Jul 2022 21:42:23 +0800 Subject: [PATCH] Fix virtual display cannot be relased. Bug:238368970 1. IMediaProjectionCallback#onStop to release virtual display and remove mVirtualDisplayDevices. 2. DisplayManagerService#releaseVirtualDisplayInternal cannot remove display device due to null mVirtualDisplayDevices. Signed-off-by: linkai Change-Id: Idb3f4aabe894b17a9681dae9f1028bd44ac36f1e --- .../java/com/android/server/display/VirtualDisplayAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java index a59219265e2cd..59fae9e64c5f5 100644 --- a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java +++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java @@ -200,7 +200,7 @@ public class VirtualDisplayAdapter extends DisplayAdapter { } private void handleMediaProjectionStoppedLocked(IBinder appToken) { - VirtualDisplayDevice device = mVirtualDisplayDevices.remove(appToken); + VirtualDisplayDevice device = mVirtualDisplayDevices.get(appToken); if (device != null) { Slog.i(TAG, "Virtual display device released because media projection stopped: " + device.mName);