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

Commit 3e45194a authored by Selim Cinek's avatar Selim Cinek
Browse files

Don't show repeated fingerprint error messages on bouncer

We don't show error messages twice anymore, after the user
has seen it on the bouncer already.

Change-Id: I57eb8b330ca0d8a1122f7b8a196510828405c258
Fixes: 25399458
parent b6143c12
Loading
Loading
Loading
Loading
+31 −7
Original line number Diff line number Diff line
@@ -225,6 +225,8 @@ public class KeyguardIndicationController {
    }

    KeyguardUpdateMonitorCallback mUpdateMonitor = new KeyguardUpdateMonitorCallback() {
        public int mLastSuccessiveErrorMessage = -1;

        @Override
        public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) {
            boolean isChargingOrFull = status.status == BatteryManager.BATTERY_STATUS_CHARGING
@@ -252,6 +254,9 @@ public class KeyguardIndicationController {
                mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_CLEAR_FP_MSG),
                        TRANSIENT_FP_ERROR_TIMEOUT);
            }
            // Help messages indicate that there was actually a try since the last error, so those
            // are not two successive error messages anymore.
            mLastSuccessiveErrorMessage = -1;
        }

        @Override
@@ -263,7 +268,13 @@ public class KeyguardIndicationController {
            }
            int errorColor = mContext.getResources().getColor(R.color.system_warning_color, null);
            if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
                // When swiping up right after receiving a fingerprint error, the bouncer calls
                // authenticate leading to the same message being shown again on the bouncer.
                // We want to avoid this, as it may confuse the user when the message is too
                // generic.
                if (mLastSuccessiveErrorMessage != msgId) {
                    mStatusBarKeyguardViewManager.showBouncerMessage(errString, errorColor);
                }
            } else if (updateMonitor.isDeviceInteractive()) {
                showTransientIndication(errString, errorColor);
                // We want to keep this message around in case the screen was off
@@ -272,6 +283,7 @@ public class KeyguardIndicationController {
            } else {
                mMessageToShowOnScreenOn = errString;
            }
            mLastSuccessiveErrorMessage = msgId;
        }

        @Override
@@ -293,6 +305,18 @@ public class KeyguardIndicationController {
                mMessageToShowOnScreenOn = null;
            }
        }

        @Override
        public void onFingerprintAuthenticated(int userId) {
            super.onFingerprintAuthenticated(userId);
            mLastSuccessiveErrorMessage = -1;
        }

        @Override
        public void onFingerprintAuthFailed() {
            super.onFingerprintAuthFailed();
            mLastSuccessiveErrorMessage = -1;
        }
    };

    BroadcastReceiver mReceiver = new BroadcastReceiver() {