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

Commit 08c0efb0 authored by Michelle Ho's avatar Michelle Ho
Browse files

Camera: Fix missing onPhysicalCameraUnavailable

When onCameraAvailable invoked for a logical multi-camera, all of the
physical cameras of a logical multi-camera are default available (i.e.,
no onPhysicalCameraAvailable would be called). So if some specific physical cameras are unavailable, onPhysicalCameraUnavailable should be
invoked after onCameraAvailable.

Bug: 262979670
Test: atest CameraManagerTest
Change-Id: I6ee199ba30fa6f8c44c65d1e1d173fe6fd9ec3fe
parent bcccf96a
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2313,6 +2313,15 @@ public final class CameraManager {
                final AvailabilityCallback callback = mCallbackMap.keyAt(i);

                postSingleUpdate(callback, executor, id, null /*physicalId*/, status);

                // Send the NOT_PRESENT state for unavailable physical cameras
                if (isAvailable(status) && mUnavailablePhysicalDevices.containsKey(id)) {
                    ArrayList<String> unavailableIds = mUnavailablePhysicalDevices.get(id);
                    for (String unavailableId : unavailableIds) {
                        postSingleUpdate(callback, executor, id, unavailableId,
                                ICameraServiceListener.STATUS_NOT_PRESENT);
                    }
                }
            }
        } // onStatusChangedLocked