Use floats for face enrollment dimensions

Test: compiles and runs correctly on a device
Change-Id: I64cb905b06aa2ca2b0703d83ed9a495c7a85cf94
This commit is contained in:
Ilya Matyukhin
2019-12-19 17:21:04 -08:00
parent 5f6a4b1dae
commit ad1b76ce3b
2 changed files with 14 additions and 8 deletions

View File

@@ -218,8 +218,8 @@
<dimen name="fingerprint_finish_max_size">288dp</dimen>
<!-- Face -->
<dimen name="face_preview_translate_y">0dp</dimen>
<dimen name="face_preview_translate_x">0dp</dimen>
<item name="face_preview_translate_y" format="float" type="dimen">0</item>
<item name="face_preview_translate_x" format="float" type="dimen">0</item>
<item name="face_preview_scale" format="float" type="dimen">1.0</item>
<!-- Confirm device credentials -->

View File

@@ -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() {