Merge "Update fingerprint icon layout size" into tm-d1-dev

This commit is contained in:
TreeHugger Robot
2022-05-26 17:18:49 +00:00
committed by Android (Google) Code Review
4 changed files with 29 additions and 7 deletions

View File

@@ -36,12 +36,20 @@ open class AuthBiometricFingerprintIconController(
iconView: ImageView
) : AuthIconController(context, iconView) {
var iconLayoutParamsSize = 0
set(value) {
if (field == value) {
return
}
iconView.layoutParams.width = value
iconView.layoutParams.height = value
field = value
}
init {
val size = context.resources.getDimensionPixelSize(
iconLayoutParamsSize = context.resources.getDimensionPixelSize(
R.dimen.biometric_dialog_fingerprint_icon_size
)
iconView.layoutParams.width = size
iconView.layoutParams.height = size
}
override fun updateIcon(@BiometricState lastState: Int, @BiometricState newState: Int) {

View File

@@ -88,6 +88,13 @@ open class AuthBiometricFingerprintView(
override fun createIconController(): AuthIconController =
AuthBiometricFingerprintIconController(mContext, mIconView)
fun updateOverrideIconLayoutParamsSize() {
udfpsAdapter?.let {
(mIconController as? AuthBiometricFingerprintIconController)?.iconLayoutParamsSize =
it.getSensorDiameter(scaleFactorProvider?.provide() ?: 1.0f)
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
showTouchSensorString()

View File

@@ -320,6 +320,7 @@ public class AuthContainerView extends LinearLayout
R.layout.auth_biometric_fingerprint_and_face_view, null, false);
fingerprintAndFaceView.setSensorProperties(fpProperties);
fingerprintAndFaceView.setScaleFactorProvider(config.mScaleProvider);
fingerprintAndFaceView.updateOverrideIconLayoutParamsSize();
mBiometricView = fingerprintAndFaceView;
} else if (fpProperties != null) {
final AuthBiometricFingerprintView fpView =
@@ -327,6 +328,7 @@ public class AuthContainerView extends LinearLayout
R.layout.auth_biometric_fingerprint_view, null, false);
fpView.setSensorProperties(fpProperties);
fpView.setScaleFactorProvider(config.mScaleProvider);
fpView.updateOverrideIconLayoutParamsSize();
mBiometricView = fpView;
} else if (faceProperties != null) {
mBiometricView = (AuthBiometricFaceView) layoutInflater.inflate(

View File

@@ -90,6 +90,13 @@ public class UdfpsDialogMeasureAdapter {
return mBottomSpacerHeight;
}
/**
* @return sensor diameter size as scaleFactor
*/
public int getSensorDiameter(float scaleFactor) {
return (int) (scaleFactor * mSensorProps.getLocation().sensorRadius * 2);
}
@NonNull
private AuthDialog.LayoutParams onMeasureInternalPortrait(int width, int height,
float scaleFactor) {
@@ -108,8 +115,7 @@ public class UdfpsDialogMeasureAdapter {
// Go through each of the children and do the custom measurement.
int totalHeight = 0;
final int numChildren = mView.getChildCount();
final int sensorDiameter =
(int) (scaleFactor * mSensorProps.getLocation().sensorRadius * 2);
final int sensorDiameter = getSensorDiameter(scaleFactor);
for (int i = 0; i < numChildren; i++) {
final View child = mView.getChildAt(i);
if (child.getId() == R.id.biometric_icon_frame) {
@@ -203,8 +209,7 @@ public class UdfpsDialogMeasureAdapter {
final int horizontalSpacerWidth = calculateHorizontalSpacerWidthForLandscape(
mSensorProps, displayWidth, dialogMargin, horizontalInset, scaleFactor);
final int sensorDiameter =
(int) (scaleFactor * mSensorProps.getLocation().sensorRadius * 2);
final int sensorDiameter = getSensorDiameter(scaleFactor);
final int remeasuredWidth = sensorDiameter + 2 * horizontalSpacerWidth;
int remeasuredHeight = 0;