From 02622abbe28f05aea7ba6b510fa72bc62a7d2ee1 Mon Sep 17 00:00:00 2001 From: Jayant Chowdhary Date: Wed, 31 Mar 2021 03:14:04 -0700 Subject: getCameraIdListNoLazy : remove system cameras from mTorchStatus as well. Bug: 182530469 Test: Make Emulator back camera system camera; atest FlashlightTest.java Merged-In: I0a149ba3d93a740cfbfdc2d04c1235e648061156 Change-Id: I0a149ba3d93a740cfbfdc2d04c1235e648061156 Signed-off-by: Jayant Chowdhary (cherry picked from commit bedb9950c8c32e6a5c3a3215c4c886d17720bde9) --- core/java/android/hardware/camera2/CameraManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 933dee3a6470..609da3125485 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -1363,6 +1363,8 @@ public final class CameraManager { // devices going offline (in real world scenarios, these permissions aren't // changeable). Future calls to getCameraIdList() will reflect the changes in // the camera id list after getCameraIdListNoLazy() is called. + // We need to remove the torch ids which may have been associated with the + // devices removed as well. This is the same situation. cameraStatuses = mCameraService.addListener(testListener); mCameraService.removeListener(testListener); for (CameraStatus c : cameraStatuses) { @@ -1381,6 +1383,7 @@ public final class CameraManager { } for (String id : deviceIdsToRemove) { onStatusChangedLocked(ICameraServiceListener.STATUS_NOT_PRESENT, id); + mTorchStatus.remove(id); } } catch (ServiceSpecificException e) { // Unexpected failure -- cgit v1.2.3-59-g8ed1b