[camera] Fix Android autofocus state reading (#5025)

Fixes a typo introduced during a testability refactor that caused the capture state machine to read the wrong value for autofocus state, breaking the state machine.

Fixes https://github.com/flutter/flutter/issues/135554
Part of https://github.com/flutter/flutter/issues/84957
diff --git a/packages/camera/camera_android/CHANGELOG.md b/packages/camera/camera_android/CHANGELOG.md
index e809b13..ef2cc5f 100644
--- a/packages/camera/camera_android/CHANGELOG.md
+++ b/packages/camera/camera_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10.8+12
+
+* Fixes handling of autofocus state when taking a picture.
+
 ## 0.10.8+11
 
 * Downgrades AGP version for compatibility with legacy projects.
diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraCaptureCallback.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraCaptureCallback.java
index 4f5e435..2737e80 100644
--- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraCaptureCallback.java
+++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraCaptureCallback.java
@@ -31,7 +31,7 @@
   CaptureResult.Key<Integer> aeStateKey = CaptureResult.CONTROL_AE_STATE;
 
   @VisibleForTesting @NonNull
-  CaptureResult.Key<Integer> afStateKey = CaptureResult.CONTROL_AE_STATE;
+  CaptureResult.Key<Integer> afStateKey = CaptureResult.CONTROL_AF_STATE;
 
   private CameraCaptureCallback(
       @NonNull CameraCaptureStateListener cameraStateListener,
diff --git a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/CameraCaptureCallbackTest.java b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/CameraCaptureCallbackTest.java
index 75a5b25..f515b35 100644
--- a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/CameraCaptureCallbackTest.java
+++ b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/CameraCaptureCallbackTest.java
@@ -69,4 +69,22 @@
     verify(mockCaptureProps, times(1)).setLastSensorExposureTime(2L);
     verify(mockCaptureProps, times(1)).setLastSensorSensitivity(3);
   }
+
+  @Test
+  public void onCaptureCompleted_checksBothAutoFocusAndAutoExposure() {
+    CameraCaptureSession mockSession = mock(CameraCaptureSession.class);
+    CaptureRequest mockRequest = mock(CaptureRequest.class);
+    TotalCaptureResult mockResult = mock(TotalCaptureResult.class);
+
+    cameraCaptureCallback.onCaptureCompleted(mockSession, mockRequest, mockResult);
+
+    // This is inherently somewhat fragile since it is testing internal implementation details,
+    // but it is important to test that the code is actually using both of the expected states
+    // since it's easy to typo one of these constants as the other. Ideally this would be tested
+    // via the state machine output (CameraCaptureCallbackStatesTest.java), but testing the state
+    // machine requires overriding the keys, so can't test that the right real keys are used in
+    // production.
+    verify(mockResult, times(1)).get(CaptureResult.CONTROL_AE_STATE);
+    verify(mockResult, times(1)).get(CaptureResult.CONTROL_AF_STATE);
+  }
 }
diff --git a/packages/camera/camera_android/pubspec.yaml b/packages/camera/camera_android/pubspec.yaml
index f2c6892..86f3665 100644
--- a/packages/camera/camera_android/pubspec.yaml
+++ b/packages/camera/camera_android/pubspec.yaml
@@ -3,7 +3,7 @@
 repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
 
-version: 0.10.8+11
+version: 0.10.8+12
 
 environment:
   sdk: ">=2.19.0 <4.0.0"