From ad1b76ce3bd143cd0350e5cc7b8716eeb6615093 Mon Sep 17 00:00:00 2001 From: Ilya Matyukhin Date: Thu, 19 Dec 2019 17:21:04 -0800 Subject: [PATCH] Use floats for face enrollment dimensions Test: compiles and runs correctly on a device Change-Id: I64cb905b06aa2ca2b0703d83ed9a495c7a85cf94 --- res/values/dimens.xml | 4 ++-- .../face/FaceEnrollPreviewFragment.java | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index f31a2667ca5..001578a15c1 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -218,8 +218,8 @@ 288dp - 0dp - 0dp + 0 + 0 1.0 diff --git a/src/com/android/settings/biometrics/face/FaceEnrollPreviewFragment.java b/src/com/android/settings/biometrics/face/FaceEnrollPreviewFragment.java index 880671274e8..853ca7c40cc 100644 --- a/src/com/android/settings/biometrics/face/FaceEnrollPreviewFragment.java +++ b/src/com/android/settings/biometrics/face/FaceEnrollPreviewFragment.java @@ -18,6 +18,7 @@ package com.android.settings.biometrics.face; import android.app.settings.SettingsEnums; import android.content.Context; +import android.graphics.Matrix; import android.graphics.SurfaceTexture; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCaptureSession; @@ -316,14 +317,19 @@ public class FaceEnrollPreviewFragment extends InstrumentedPreferenceFragment scaleX = scaleX / smaller; scaleY = scaleY / smaller; - // Apply the transformation/scale - mTextureView.setTranslationX(getResources().getDimension(R.dimen.face_preview_translate_x)); - mTextureView.setTranslationY(getResources().getDimension(R.dimen.face_preview_translate_y)); - + final TypedValue tx = new TypedValue(); + final TypedValue ty = new TypedValue(); final TypedValue scale = new TypedValue(); + getResources().getValue(R.dimen.face_preview_translate_x, tx, true /* resolveRefs */); + getResources().getValue(R.dimen.face_preview_translate_y, ty, true /* resolveRefs */); getResources().getValue(R.dimen.face_preview_scale, scale, true /* resolveRefs */); - mTextureView.setScaleX(scaleX * scale.getFloat()); - mTextureView.setScaleY(scaleY * scale.getFloat()); + + // Apply the transformation/scale + final Matrix transform = new Matrix(); + mTextureView.getTransform(transform); + transform.setScale(scaleX * scale.getFloat(), scaleY * scale.getFloat()); + transform.postTranslate(tx.getFloat(), ty.getFloat()); + mTextureView.setTransform(transform); } private void closeCamera() {