Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b64d441 authored by Joe Bolinger's avatar Joe Bolinger
Browse files

Migrate haptic to view model and out of legacy components.

Fix: 272832355
Bug: 288175645
Test: atest PromptViewModelTest AuthContainerViewTest AuthControllerTest
Change-Id: Ie7181b448b74e4f7322cfad59eced1ac872a9b85
parent 38645f34
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -737,7 +737,7 @@ public abstract class AuthBiometricView extends LinearLayout implements AuthBiom
        });

        mUseCredentialButton.setOnClickListener((view) -> {
            startTransitionToCredentialUI();
            startTransitionToCredentialUI(false /* isError */);
        });

        mConfirmButton.setOnClickListener((view) -> {
@@ -768,9 +768,12 @@ public abstract class AuthBiometricView extends LinearLayout implements AuthBiom

    /**
     * Kicks off the animation process and invokes the callback.
     *
     * @param isError if this was triggered due to an error and not a user action (unused,
     *                previously for haptics).
     */
    @Override
    public void startTransitionToCredentialUI() {
    public void startTransitionToCredentialUI(boolean isError) {
        updateSize(AuthDialog.SIZE_LARGE);
        mCallback.onAction(Callback.ACTION_USE_DEVICE_CREDENTIAL);
    }
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ interface AuthBiometricViewAdapter {

    fun onHelp(@BiometricAuthenticator.Modality modality: Int, help: String)

    fun startTransitionToCredentialUI()
    fun startTransitionToCredentialUI(isError: Boolean)

    fun requestLayout()

+2 −2
Original line number Diff line number Diff line
@@ -801,9 +801,9 @@ public class AuthContainerView extends LinearLayout
    }

    @Override
    public void animateToCredentialUI() {
    public void animateToCredentialUI(boolean isError) {
        if (mBiometricView != null) {
            mBiometricView.startTransitionToCredentialUI();
            mBiometricView.startTransitionToCredentialUI(isError);
        } else {
            Log.e(TAG, "animateToCredentialUI(): mBiometricView is null");
        }
+1 −20
Original line number Diff line number Diff line
@@ -85,7 +85,6 @@ import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.keyguard.data.repository.BiometricType;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.util.concurrency.DelayableExecutor;
import com.android.systemui.util.concurrency.Execution;

@@ -185,18 +184,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
    private final @Background DelayableExecutor mBackgroundExecutor;
    private final DisplayInfo mCachedDisplayInfo = new DisplayInfo();

    private final VibratorHelper mVibratorHelper;

    private void vibrateSuccess(int modality) {
        mVibratorHelper.vibrateAuthSuccess(
                getClass().getSimpleName() + ", modality = " + modality + "BP::success");
    }

    private void vibrateError(int modality) {
        mVibratorHelper.vibrateAuthError(
                getClass().getSimpleName() + ", modality = " + modality + "BP::error");
    }

    @VisibleForTesting
    final TaskStackListener mTaskStackListener = new TaskStackListener() {
        @Override
@@ -784,7 +771,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
            @NonNull InteractionJankMonitor jankMonitor,
            @Main Handler handler,
            @Background DelayableExecutor bgExecutor,
            @NonNull VibratorHelper vibrator,
            @NonNull UdfpsUtils udfpsUtils) {
        mContext = context;
        mFeatureFlags = featureFlags;
@@ -806,7 +792,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
        mUdfpsEnrolledForUser = new SparseBooleanArray();
        mSfpsEnrolledForUser = new SparseBooleanArray();
        mFaceEnrolledForUser = new SparseBooleanArray();
        mVibratorHelper = vibrator;
        mUdfpsUtils = udfpsUtils;
        mApplicationCoroutineScope = applicationCoroutineScope;

@@ -995,8 +980,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
    public void onBiometricAuthenticated(@Modality int modality) {
        if (DEBUG) Log.d(TAG, "onBiometricAuthenticated: ");

        vibrateSuccess(modality);

        if (mCurrentDialog != null) {
            mCurrentDialog.onAuthenticationSucceeded(modality);
        } else {
@@ -1093,8 +1076,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
            Log.d(TAG, String.format("onBiometricError(%d, %d, %d)", modality, error, vendorCode));
        }

        vibrateError(modality);

        final boolean isLockout = (error == BiometricConstants.BIOMETRIC_ERROR_LOCKOUT)
                || (error == BiometricConstants.BIOMETRIC_ERROR_LOCKOUT_PERMANENT);

@@ -1111,7 +1092,7 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
        if (mCurrentDialog != null) {
            if (mCurrentDialog.isAllowDeviceCredentials() && isLockout) {
                if (DEBUG) Log.d(TAG, "onBiometricError, lockout");
                mCurrentDialog.animateToCredentialUI();
                mCurrentDialog.animateToCredentialUI(true /* isError */);
            } else if (isSoftError) {
                final String errorMessage = (error == BiometricConstants.BIOMETRIC_PAUSED_REJECTED)
                        ? getNotRecognizedString(modality)
+1 −1
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ public interface AuthDialog extends Dumpable {
    /**
     * Animate to credential UI. Typically called after biometric is locked out.
     */
    void animateToCredentialUI();
    void animateToCredentialUI(boolean isError);

    /**
     * @return true if device credential is allowed.
Loading