From 8cbfe26e86e4702d939351cd6524f4a07dce9450 Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Mon, 1 Jun 2026 20:14:44 +0200 Subject: [PATCH] fix: Seed metering state from current device state --- .../ios/Utils/MeteringTask.swift | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/react-native-vision-camera/ios/Utils/MeteringTask.swift b/packages/react-native-vision-camera/ios/Utils/MeteringTask.swift index f427d645e9..973da335fa 100644 --- a/packages/react-native-vision-camera/ios/Utils/MeteringTask.swift +++ b/packages/react-native-vision-camera/ios/Utils/MeteringTask.swift @@ -241,6 +241,15 @@ final class MeteringTask { hasEverAdjusted: hasEverAdjusted, settledAt: settledAt) } + private func seedMeteringState(for mode: MeteringMode, isAdjusting: Bool) { + guard !isFinished else { return } + if isAdjusting { + self.onMeteringAdjusting(for: mode) + } else { + self.onMeteringSettled(for: mode) + } + self.update() + } /** * Starts metering exposure (AE) to the given `CGPoint`. @@ -269,6 +278,7 @@ final class MeteringTask { } self.update() }) + self.seedMeteringState(for: .ae, isAdjusting: device.isAdjustingExposure) } /** @@ -298,6 +308,7 @@ final class MeteringTask { } self.update() }) + self.seedMeteringState(for: .af, isAdjusting: device.isAdjustingFocus) } /** @@ -323,6 +334,7 @@ final class MeteringTask { } self.update() }) + self.seedMeteringState(for: .awb, isAdjusting: device.isAdjustingWhiteBalance) } private func getExposureMode(responsiveness: FocusResponsiveness) throws