Invoke strong auth callback and default strong auth expired to true

Split off from I0af11da1b7cd7c8d837bc5ba3a62ef2ffca74b1b.

The initial value did not matter previously because
a SystemUI crash triggered the boot logic and forced
a manual entry before fingerprint works.

Long term the timeout logic should be moved to StrongAuthTracker
so it can be shared with the trust agent implementation (currently
implemented by the trust agents themeselfes)

Bug: 22846469
Bug: 22115393
Change-Id: I0af11da1b7cd7c8d837bc5ba3a62ef2ffca74b1b
This commit is contained in:
Adrian Roos
2015-08-19 16:52:52 -07:00
parent b5e4722891
commit 1de8bcb1e5
5 changed files with 13 additions and 13 deletions

View File

@@ -182,7 +182,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private SparseIntArray mFailedAttempts = new SparseIntArray();
/** Tracks whether strong authentication hasn't been used since quite some time per user. */
private ArraySet<Integer> mStrongAuthTimedOut = new ArraySet<>();
private ArraySet<Integer> mStrongAuthNotTimedOut = new ArraySet<>();
private final StrongAuthTracker mStrongAuthTracker = new StrongAuthTracker();
private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>>
@@ -553,11 +553,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
* while and thus can't unlock with fingerprint, false otherwise
*/
public boolean hasFingerprintUnlockTimedOut(int userId) {
return mStrongAuthTimedOut.contains(userId);
return !mStrongAuthNotTimedOut.contains(userId);
}
public void reportSuccessfulStrongAuthUnlockAttempt() {
mStrongAuthTimedOut.remove(sCurrentUser);
mStrongAuthNotTimedOut.add(sCurrentUser);
scheduleStrongAuthTimeout();
if (mFpm != null) {
byte[] token = null; /* TODO: pass real auth token once fp HAL supports it */
@@ -572,14 +572,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
PendingIntent sender = PendingIntent.getBroadcast(mContext,
sCurrentUser, intent, PendingIntent.FLAG_CANCEL_CURRENT);
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, when, sender);
notifyStrongAuthTimedOutChanged(sCurrentUser);
notifyStrongAuthStateChanged(sCurrentUser);
}
private void notifyStrongAuthTimedOutChanged(int userId) {
private void notifyStrongAuthStateChanged(int userId) {
for (int i = 0; i < mCallbacks.size(); i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
cb.onStrongAuthTimeoutExpiredChanged(userId);
cb.onStrongAuthStateChanged(userId);
}
}
}
@@ -674,8 +674,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
public void onReceive(Context context, Intent intent) {
if (ACTION_STRONG_AUTH_TIMEOUT.equals(intent.getAction())) {
int userId = intent.getIntExtra(USER_ID, -1);
mStrongAuthTimedOut.add(userId);
notifyStrongAuthTimedOutChanged(userId);
mStrongAuthNotTimedOut.remove(userId);
notifyStrongAuthStateChanged(userId);
}
}
};
@@ -848,7 +848,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
@Override
public void onStrongAuthRequiredChanged(int userId) {
// do something?
notifyStrongAuthStateChanged(userId);
}
}

View File

@@ -233,5 +233,5 @@ public class KeyguardUpdateMonitorCallback {
* Called when the state that the user hasn't used strong authentication since quite some time
* has changed.
*/
public void onStrongAuthTimeoutExpiredChanged(int userId) { }
public void onStrongAuthStateChanged(int userId) { }
}

View File

@@ -649,7 +649,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
}
@Override
public void onStrongAuthTimeoutExpiredChanged(int userId) {
public void onStrongAuthStateChanged(int userId) {
mLockIcon.update();
}
};

View File

@@ -52,7 +52,7 @@ public class KeyguardBouncer {
private KeyguardUpdateMonitorCallback mUpdateMonitorCallback =
new KeyguardUpdateMonitorCallback() {
@Override
public void onStrongAuthTimeoutExpiredChanged(int userId) {
public void onStrongAuthStateChanged(int userId) {
mBouncerPromptReason = mCallback.getBouncerPromptReason();
}
};

View File

@@ -145,7 +145,7 @@ public class UnlockMethodCache {
}
@Override
public void onStrongAuthTimeoutExpiredChanged(int userId) {
public void onStrongAuthStateChanged(int userId) {
update(false /* updateAlways */);
}
};