Merge "Update ImageAnalysis' target rotation based on motion sensor." into androidx-main am: 4d02ddbe4e
Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1685185
Change-Id: If403a592c21df79f64bb1a7a9d62d520d4e1de29
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/CameraController.java b/camera/camera-view/src/main/java/androidx/camera/view/CameraController.java
index 9cbf934..b4f35eb 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/CameraController.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/CameraController.java
@@ -162,7 +162,7 @@
private ImageAnalysis.Analyzer mAnalysisAnalyzer;
@NonNull
- private ImageAnalysis mImageAnalysis;
+ ImageAnalysis mImageAnalysis;
// Synthetic access
@SuppressWarnings("WeakerAccess")
@@ -243,6 +243,7 @@
mSensorRotationListener = new SensorRotationListener(mAppContext) {
@Override
public void onRotationChanged(int rotation) {
+ mImageAnalysis.setTargetRotation(rotation);
mImageCapture.setTargetRotation(rotation);
mVideoCapture.setTargetRotation(rotation);
}
diff --git a/camera/camera-view/src/test/java/androidx/camera/view/CameraControllerTest.kt b/camera/camera-view/src/test/java/androidx/camera/view/CameraControllerTest.kt
index 1327ddb..916d316 100644
--- a/camera/camera-view/src/test/java/androidx/camera/view/CameraControllerTest.kt
+++ b/camera/camera-view/src/test/java/androidx/camera/view/CameraControllerTest.kt
@@ -18,6 +18,7 @@
import android.content.Context
import android.os.Build
+import android.view.Surface
import androidx.camera.core.CameraSelector
import androidx.camera.core.CameraX
import androidx.camera.core.CameraXConfig
@@ -58,6 +59,21 @@
@UiThreadTest
@Test
+ public fun sensorRotationChanges_useCaseTargetRotationUpdated() {
+ // Arrange.
+ val controller = LifecycleCameraController(context)
+
+ // Act.
+ controller.mSensorRotationListener.onRotationChanged(Surface.ROTATION_180)
+
+ // Assert.
+ assertThat(controller.mImageAnalysis.targetRotation).isEqualTo(Surface.ROTATION_180)
+ assertThat(controller.mImageCapture.targetRotation).isEqualTo(Surface.ROTATION_180)
+ // TODO(b/177276479): verify VideoCapture once it supports getTargetRotation().
+ }
+
+ @UiThreadTest
+ @Test
public fun setSelectorBeforeBound_selectorSet() {
// Arrange.
val controller = LifecycleCameraController(context)