Merge "Don't show repeated fingerprint error messages on bouncer" into nyc-mr1-dev

This commit is contained in:
Selim Cinek
2016-07-18 23:05:27 +00:00
committed by Android (Google) Code Review

View File

@@ -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,15 +268,22 @@ public class KeyguardIndicationController {
}
int errorColor = mContext.getResources().getColor(R.color.system_warning_color, null);
if (mStatusBarKeyguardViewManager.isBouncerShowing()) {
mStatusBarKeyguardViewManager.showBouncerMessage(errString, errorColor);
// 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
mHandler.removeMessages(MSG_HIDE_TRANSIENT);
hideTransientIndicationDelayed(5000);
} else {
mMessageToShowOnScreenOn = errString;
showTransientIndication(errString, errorColor);
// We want to keep this message around in case the screen was off
mHandler.removeMessages(MSG_HIDE_TRANSIENT);
hideTransientIndicationDelayed(5000);
} 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() {