Loading packages/SystemUI/res/layout/udfps_enroll_view.xml +15 −2 Original line number Diff line number Diff line Loading @@ -20,10 +20,23 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The layout height/width are placeholders, which will be overwritten by FingerprintSensorPropertiesInternal. --> <View android:id="@+id/udfps_enroll_accessibility_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/accessibility_fingerprint_label"/> <ImageView android:id="@+id/udfps_enroll_animation_fp_progress_view" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- Fingerprint --> <ImageView android:id="@+id/udfps_enroll_animation_fp_view" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/accessibility_fingerprint_label"/> android:layout_height="match_parent"/> </com.android.systemui.biometrics.UdfpsEnrollView> packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +1 −0 Original line number Diff line number Diff line Loading @@ -769,6 +769,7 @@ public class UdfpsController implements DozeReceiver { UdfpsEnrollView enrollView = (UdfpsEnrollView) mInflater.inflate( R.layout.udfps_enroll_view, null); mView.addView(enrollView); enrollView.updateSensorLocation(mSensorProps); return new UdfpsEnrollViewController( enrollView, mServerRequest.mEnrollHelper, Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollDrawable.java +0 −19 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { // 1 + SCALE_MAX is the maximum that the moving target will animate to private static final float SCALE_MAX = 0.25f; @NonNull private final UdfpsEnrollProgressBarDrawable mProgressDrawable; @NonNull private final Drawable mMovingTargetFpIcon; @NonNull private final Paint mSensorOutlinePaint; @NonNull private final Paint mBlueFill; Loading @@ -62,7 +61,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { UdfpsEnrollDrawable(@NonNull Context context) { super(context); mProgressDrawable = new UdfpsEnrollProgressBarDrawable(context, this); mSensorOutlinePaint = new Paint(0 /* flags */); mSensorOutlinePaint.setAntiAlias(true); Loading Loading @@ -100,8 +98,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } void onEnrollmentProgress(int remaining, int totalSteps) { mProgressDrawable.setEnrollmentProgress(remaining, totalSteps); if (mEnrollHelper.isCenterEnrollmentComplete()) { if (mAnimatorSet != null && mAnimatorSet.isRunning()) { mAnimatorSet.end(); Loading Loading @@ -139,18 +135,8 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } } void onLastStepAcquired() { mProgressDrawable.onLastStepAcquired(); } void onEnrollmentHelp() { mProgressDrawable.onEnrollmentHelp(); } @Override public void draw(@NonNull Canvas canvas) { mProgressDrawable.draw(canvas); if (isIlluminationShowing()) { return; } Loading Loading @@ -178,11 +164,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } } @Override public void onBoundsChange(@NonNull Rect rect) { mProgressDrawable.setBounds(rect); } @Override public void setAlpha(int alpha) { super.setAlpha(alpha); Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java +3 −11 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { private static final float PROGRESS_BAR_THICKNESS_DP = 12; @NonNull private final Context mContext; @NonNull private final UdfpsEnrollDrawable mParent; @NonNull private final Paint mBackgroundCirclePaint; @NonNull private final Paint mProgressPaint; Loading @@ -57,10 +56,8 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { private int mRotation; // After last step, rotate the progress bar once private boolean mLastStepAcquired; public UdfpsEnrollProgressBarDrawable(@NonNull Context context, @NonNull UdfpsEnrollDrawable parent) { public UdfpsEnrollProgressBarDrawable(@NonNull Context context) { mContext = context; mParent = parent; mShortAnimationDuration = context.getResources() .getInteger(com.android.internal.R.integer.config_shortAnimTime); Loading Loading @@ -115,7 +112,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { rotationAnimator.addUpdateListener(animation -> { Log.d(TAG, "Rotation: " + mRotation); mRotation = (int) animation.getAnimatedValue(); mParent.invalidateSelf(); invalidateSelf(); }); rotationAnimator.start(); } Loading @@ -128,11 +125,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { mProgressAnimator.setDuration(animationDuration); mProgressAnimator.addUpdateListener(animation -> { mProgress = (float) animation.getAnimatedValue(); // Use the parent to invalidate, since it's the one that's attached as the view's // drawable and has its callback set automatically. Invalidating via // `this.invalidateSelf` actually does not invoke draw(), since this drawable's callback // is not really set. mParent.invalidateSelf(); invalidateSelf(); }); mProgressAnimator.start(); } Loading Loading @@ -178,7 +171,6 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { animator.setDuration(mShortAnimationDuration); animator.addUpdateListener(animation -> { mProgressPaint.setColor((int) animation.getAnimatedValue()); mParent.invalidateSelf(); }); return animator; } Loading packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollView.java +27 −3 Original line number Diff line number Diff line Loading @@ -17,9 +17,12 @@ package com.android.systemui.biometrics; import android.content.Context; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import androidx.annotation.NonNull; Loading @@ -32,20 +35,25 @@ import com.android.systemui.R; */ public class UdfpsEnrollView extends UdfpsAnimationView { @NonNull private final UdfpsEnrollDrawable mFingerprintDrawable; @NonNull private final UdfpsEnrollProgressBarDrawable mFingerprintProgressDrawable; @NonNull private final Handler mHandler; @NonNull private ImageView mFingerprintView; @NonNull private ImageView mFingerprintProgressView; public UdfpsEnrollView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); mFingerprintDrawable = new UdfpsEnrollDrawable(mContext); mFingerprintProgressDrawable = new UdfpsEnrollProgressBarDrawable(context); mHandler = new Handler(Looper.getMainLooper()); } @Override protected void onFinishInflate() { mFingerprintView = findViewById(R.id.udfps_enroll_animation_fp_view); mFingerprintProgressView = findViewById(R.id.udfps_enroll_animation_fp_progress_view); mFingerprintView.setImageDrawable(mFingerprintDrawable); mFingerprintProgressView.setImageDrawable(mFingerprintProgressDrawable); } @Override Loading @@ -53,19 +61,35 @@ public class UdfpsEnrollView extends UdfpsAnimationView { return mFingerprintDrawable; } void updateSensorLocation(@NonNull FingerprintSensorPropertiesInternal sensorProps) { View fingerprintAccessibilityView = findViewById(R.id.udfps_enroll_accessibility_view); final int sensorHeight = sensorProps.sensorRadius * 2; final int sensorWidth = sensorHeight; ViewGroup.LayoutParams params = fingerprintAccessibilityView.getLayoutParams(); params.width = sensorWidth; params.height = sensorHeight; fingerprintAccessibilityView.setLayoutParams(params); fingerprintAccessibilityView.requestLayout(); } void setEnrollHelper(UdfpsEnrollHelper enrollHelper) { mFingerprintDrawable.setEnrollHelper(enrollHelper); } void onEnrollmentProgress(int remaining, int totalSteps) { mHandler.post(() -> mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps)); mHandler.post(() -> { mFingerprintProgressDrawable.setEnrollmentProgress(remaining, totalSteps); mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps); }); } void onLastStepAcquired() { mHandler.post(mFingerprintDrawable::onLastStepAcquired); mHandler.post(() -> { mFingerprintProgressDrawable.onLastStepAcquired(); }); } void onEnrollmentHelp() { mHandler.post(mFingerprintDrawable::onEnrollmentHelp); mHandler.post(mFingerprintProgressDrawable::onEnrollmentHelp); } } Loading
packages/SystemUI/res/layout/udfps_enroll_view.xml +15 −2 Original line number Diff line number Diff line Loading @@ -20,10 +20,23 @@ android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The layout height/width are placeholders, which will be overwritten by FingerprintSensorPropertiesInternal. --> <View android:id="@+id/udfps_enroll_accessibility_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/accessibility_fingerprint_label"/> <ImageView android:id="@+id/udfps_enroll_animation_fp_progress_view" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- Fingerprint --> <ImageView android:id="@+id/udfps_enroll_animation_fp_view" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/accessibility_fingerprint_label"/> android:layout_height="match_parent"/> </com.android.systemui.biometrics.UdfpsEnrollView>
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +1 −0 Original line number Diff line number Diff line Loading @@ -769,6 +769,7 @@ public class UdfpsController implements DozeReceiver { UdfpsEnrollView enrollView = (UdfpsEnrollView) mInflater.inflate( R.layout.udfps_enroll_view, null); mView.addView(enrollView); enrollView.updateSensorLocation(mSensorProps); return new UdfpsEnrollViewController( enrollView, mServerRequest.mEnrollHelper, Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollDrawable.java +0 −19 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { // 1 + SCALE_MAX is the maximum that the moving target will animate to private static final float SCALE_MAX = 0.25f; @NonNull private final UdfpsEnrollProgressBarDrawable mProgressDrawable; @NonNull private final Drawable mMovingTargetFpIcon; @NonNull private final Paint mSensorOutlinePaint; @NonNull private final Paint mBlueFill; Loading @@ -62,7 +61,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { UdfpsEnrollDrawable(@NonNull Context context) { super(context); mProgressDrawable = new UdfpsEnrollProgressBarDrawable(context, this); mSensorOutlinePaint = new Paint(0 /* flags */); mSensorOutlinePaint.setAntiAlias(true); Loading Loading @@ -100,8 +98,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } void onEnrollmentProgress(int remaining, int totalSteps) { mProgressDrawable.setEnrollmentProgress(remaining, totalSteps); if (mEnrollHelper.isCenterEnrollmentComplete()) { if (mAnimatorSet != null && mAnimatorSet.isRunning()) { mAnimatorSet.end(); Loading Loading @@ -139,18 +135,8 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } } void onLastStepAcquired() { mProgressDrawable.onLastStepAcquired(); } void onEnrollmentHelp() { mProgressDrawable.onEnrollmentHelp(); } @Override public void draw(@NonNull Canvas canvas) { mProgressDrawable.draw(canvas); if (isIlluminationShowing()) { return; } Loading Loading @@ -178,11 +164,6 @@ public class UdfpsEnrollDrawable extends UdfpsDrawable { } } @Override public void onBoundsChange(@NonNull Rect rect) { mProgressDrawable.setBounds(rect); } @Override public void setAlpha(int alpha) { super.setAlpha(alpha); Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java +3 −11 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { private static final float PROGRESS_BAR_THICKNESS_DP = 12; @NonNull private final Context mContext; @NonNull private final UdfpsEnrollDrawable mParent; @NonNull private final Paint mBackgroundCirclePaint; @NonNull private final Paint mProgressPaint; Loading @@ -57,10 +56,8 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { private int mRotation; // After last step, rotate the progress bar once private boolean mLastStepAcquired; public UdfpsEnrollProgressBarDrawable(@NonNull Context context, @NonNull UdfpsEnrollDrawable parent) { public UdfpsEnrollProgressBarDrawable(@NonNull Context context) { mContext = context; mParent = parent; mShortAnimationDuration = context.getResources() .getInteger(com.android.internal.R.integer.config_shortAnimTime); Loading Loading @@ -115,7 +112,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { rotationAnimator.addUpdateListener(animation -> { Log.d(TAG, "Rotation: " + mRotation); mRotation = (int) animation.getAnimatedValue(); mParent.invalidateSelf(); invalidateSelf(); }); rotationAnimator.start(); } Loading @@ -128,11 +125,7 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { mProgressAnimator.setDuration(animationDuration); mProgressAnimator.addUpdateListener(animation -> { mProgress = (float) animation.getAnimatedValue(); // Use the parent to invalidate, since it's the one that's attached as the view's // drawable and has its callback set automatically. Invalidating via // `this.invalidateSelf` actually does not invoke draw(), since this drawable's callback // is not really set. mParent.invalidateSelf(); invalidateSelf(); }); mProgressAnimator.start(); } Loading Loading @@ -178,7 +171,6 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable { animator.setDuration(mShortAnimationDuration); animator.addUpdateListener(animation -> { mProgressPaint.setColor((int) animation.getAnimatedValue()); mParent.invalidateSelf(); }); return animator; } Loading
packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollView.java +27 −3 Original line number Diff line number Diff line Loading @@ -17,9 +17,12 @@ package com.android.systemui.biometrics; import android.content.Context; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import androidx.annotation.NonNull; Loading @@ -32,20 +35,25 @@ import com.android.systemui.R; */ public class UdfpsEnrollView extends UdfpsAnimationView { @NonNull private final UdfpsEnrollDrawable mFingerprintDrawable; @NonNull private final UdfpsEnrollProgressBarDrawable mFingerprintProgressDrawable; @NonNull private final Handler mHandler; @NonNull private ImageView mFingerprintView; @NonNull private ImageView mFingerprintProgressView; public UdfpsEnrollView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); mFingerprintDrawable = new UdfpsEnrollDrawable(mContext); mFingerprintProgressDrawable = new UdfpsEnrollProgressBarDrawable(context); mHandler = new Handler(Looper.getMainLooper()); } @Override protected void onFinishInflate() { mFingerprintView = findViewById(R.id.udfps_enroll_animation_fp_view); mFingerprintProgressView = findViewById(R.id.udfps_enroll_animation_fp_progress_view); mFingerprintView.setImageDrawable(mFingerprintDrawable); mFingerprintProgressView.setImageDrawable(mFingerprintProgressDrawable); } @Override Loading @@ -53,19 +61,35 @@ public class UdfpsEnrollView extends UdfpsAnimationView { return mFingerprintDrawable; } void updateSensorLocation(@NonNull FingerprintSensorPropertiesInternal sensorProps) { View fingerprintAccessibilityView = findViewById(R.id.udfps_enroll_accessibility_view); final int sensorHeight = sensorProps.sensorRadius * 2; final int sensorWidth = sensorHeight; ViewGroup.LayoutParams params = fingerprintAccessibilityView.getLayoutParams(); params.width = sensorWidth; params.height = sensorHeight; fingerprintAccessibilityView.setLayoutParams(params); fingerprintAccessibilityView.requestLayout(); } void setEnrollHelper(UdfpsEnrollHelper enrollHelper) { mFingerprintDrawable.setEnrollHelper(enrollHelper); } void onEnrollmentProgress(int remaining, int totalSteps) { mHandler.post(() -> mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps)); mHandler.post(() -> { mFingerprintProgressDrawable.setEnrollmentProgress(remaining, totalSteps); mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps); }); } void onLastStepAcquired() { mHandler.post(mFingerprintDrawable::onLastStepAcquired); mHandler.post(() -> { mFingerprintProgressDrawable.onLastStepAcquired(); }); } void onEnrollmentHelp() { mHandler.post(mFingerprintDrawable::onEnrollmentHelp); mHandler.post(mFingerprintProgressDrawable::onEnrollmentHelp); } }