diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-04-10 03:04:10 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-04-10 03:04:10 +0000 |
commit | 9f2c75b72f2ad4b636b0158bd6b33b33f6bb0bc9 (patch) | |
tree | 9f303ba3566f38aff9c9bb881bc6cc3e997212aa | |
parent | 326ac77ba442148a6b825e4547ad93c3b537cdc1 (diff) | |
parent | 8112961f0cfa2bef459f5dd3dd77462cd6325d8b (diff) | |
download | pdk-android-vts-10.0_r4.tar.gz |
Snap for 5452883 from 8112961f0cfa2bef459f5dd3dd77462cd6325d8b to qt-releaseandroid-vts-10.0_r9android-vts-10.0_r8android-vts-10.0_r7android-vts-10.0_r6android-vts-10.0_r5android-vts-10.0_r4android-vts-10.0_r3android-vts-10.0_r2android-vts-10.0_r16android-vts-10.0_r15android-vts-10.0_r14android-vts-10.0_r13android-vts-10.0_r12android-vts-10.0_r11android-vts-10.0_r10android-vts-10.0_r1android-security-10.0.0_r75android-security-10.0.0_r74android-security-10.0.0_r73android-security-10.0.0_r72android-security-10.0.0_r71android-security-10.0.0_r70android-security-10.0.0_r69android-security-10.0.0_r68android-security-10.0.0_r67android-security-10.0.0_r66android-security-10.0.0_r65android-security-10.0.0_r64android-security-10.0.0_r63android-security-10.0.0_r62android-security-10.0.0_r61android-security-10.0.0_r60android-security-10.0.0_r59android-security-10.0.0_r58android-security-10.0.0_r57android-security-10.0.0_r56android-security-10.0.0_r55android-security-10.0.0_r54android-security-10.0.0_r53android-security-10.0.0_r52android-security-10.0.0_r51android-security-10.0.0_r50android-security-10.0.0_r49android-security-10.0.0_r48android-mainline-10.0.0_r3android-mainline-10.0.0_r2android-mainline-10.0.0_r1android-cts-10.0_r9android-cts-10.0_r8android-cts-10.0_r7android-cts-10.0_r6android-cts-10.0_r5android-cts-10.0_r4android-cts-10.0_r3android-cts-10.0_r2android-cts-10.0_r16android-cts-10.0_r15android-cts-10.0_r14android-cts-10.0_r13android-cts-10.0_r12android-cts-10.0_r11android-cts-10.0_r10android-cts-10.0_r1android-10.0.0_r6android-10.0.0_r5android-10.0.0_r47android-10.0.0_r46android-10.0.0_r4android-10.0.0_r3android-10.0.0_r2android-10.0.0_r17android-10.0.0_r11android-10.0.0_r10android-10.0.0_r1android10-tests-releaseandroid10-security-releaseandroid10-s3-releaseandroid10-s2-releaseandroid10-s1-releaseandroid10-releaseandroid10-mainline-releaseandroid10-mainline-a-releaseandroid10-gsi
Change-Id: Ifa3e1fad46c161b4ef8949b81dccf3663cf7110c
-rw-r--r-- | apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java index ec76c8f..f796dee 100644 --- a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java +++ b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java @@ -34,6 +34,7 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.SystemClock; +import android.view.OrientationEventListener; import android.view.View; import android.view.Surface; import android.view.SurfaceHolder; @@ -179,6 +180,7 @@ public class TestingCamera extends Activity private static final int PERMISSIONS_REQUEST_CAMERA = 1; private static final int PERMISSIONS_REQUEST_RECORDING = 2; static final int PERMISSIONS_REQUEST_SNAPSHOT = 3; + private OrientationEventHandler mOrientationHandler; /** Activity lifecycle */ @@ -331,6 +333,34 @@ public class TestingCamera extends Activity } mRS = RenderScript.create(this); + + mOrientationHandler = new OrientationEventHandler(this); + } + + private static class OrientationEventHandler extends OrientationEventListener { + private TestingCamera mActivity; + private int mCurrentRotation = -1; + OrientationEventHandler(TestingCamera activity) { + super(activity); + mActivity = activity; + } + + @Override + public void onOrientationChanged(int orientation) { + if (mActivity != null) { + int rotation = mActivity.getWindowManager().getDefaultDisplay().getRotation(); + if (mCurrentRotation != rotation) { + mCurrentRotation = rotation; + mActivity.runOnUiThread(new Runnable() { + @Override + public void run() { + mActivity.setCameraDisplayOrientation(); + mActivity.resizePreview(); + } + }); + } + } + } } @Override @@ -338,6 +368,7 @@ public class TestingCamera extends Activity super.onResume(); log("onResume: Setting up"); setUpCamera(); + mOrientationHandler.enable(); } @Override @@ -361,6 +392,7 @@ public class TestingCamera extends Activity } mState = CAMERA_UNINITIALIZED; } + mOrientationHandler.disable(); } @Override @@ -418,7 +450,7 @@ public class TestingCamera extends Activity } } - if (mPreviewHolder != null) { + if (mPreviewHolder != null || mState == CAMERA_UNINITIALIZED) { return; } log("Surface holder available: " + width + " x " + height); @@ -1397,8 +1429,33 @@ public class TestingCamera extends Activity } void layoutPreview() { + int rotation = getWindowManager().getDefaultDisplay().getRotation(); int width = mPreviewSizes.get(mPreviewSize).width; int height = mPreviewSizes.get(mPreviewSize).height; + switch (rotation) { + case Surface.ROTATION_0: + case Surface.ROTATION_180: + // Portrait + // Switch the preview size so that the longer edge aligns with the taller + // dimension. + if (width > height) { + int tmp = height; + height = width; + width = tmp; + } + break; + case Surface.ROTATION_90: + case Surface.ROTATION_270: + // Landscape + // Possibly somewhat unlikely case but we should try to handle it too. + if (height > width) { + int tmp = height; + height = width; + width = tmp; + } + break; + } + float previewAspect = ((float) width) / height; int viewHeight = mPreviewView.getHeight(); @@ -1411,6 +1468,8 @@ public class TestingCamera extends Activity } mPreviewView.setLayoutParams( new LayoutParams(viewWidth, viewHeight)); + log("Setting layout params viewWidth: " + viewWidth + " viewHeight: " + viewHeight + + " display rotation: " + rotation); if (mCallbacksEnabled) { int callbackHeight = mCallbackView.getHeight(); |