cb.onScreenTurnedOn();
}
}
- startListeningForFingerprint();
+ updateFingerprintListeningState();
}
protected void handleScreenTurnedOff(int arg1) {
cb.onScreenTurnedOff(arg1);
}
}
- stopListeningForFingerprint();
+ updateFingerprintListeningState();
}
/**
mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCHING,
newUserId, 0, reply));
mSwitchingUser = true;
- stopListeningForFingerprint();
+ updateFingerprintListeningState();
}
@Override
public void onUserSwitchComplete(int newUserId) throws RemoteException {
mHandler.sendMessage(mHandler.obtainMessage(MSG_USER_SWITCH_COMPLETE,
newUserId, 0));
mSwitchingUser = false;
- startListeningForFingerprint();
+ updateFingerprintListeningState();
}
@Override
public void onForegroundProfileSwitch(int newProfileId) {
trustManager.registerTrustListener(this);
mFpm = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
- startListeningForFingerprint();
+ updateFingerprintListeningState();
+ }
+
+ private void updateFingerprintListeningState() {
+ boolean shouldListenForFingerprint = shouldListenForFingerprint();
+ if (mFingerprintDetectionRunning && !shouldListenForFingerprint) {
+ stopListeningForFingerprint();
+ } else if (!mFingerprintDetectionRunning && shouldListenForFingerprint) {
+ startListeningForFingerprint();
+ }
+ }
+
+ private boolean shouldListenForFingerprint() {
+ return mScreenOn && mKeyguardIsVisible && !mSwitchingUser;
}
private void startListeningForFingerprint() {
}
}
- public void stopListeningForFingerprint() {
+ private void stopListeningForFingerprint() {
if (DEBUG) Log.v(TAG, "stopListeningForFingerprint()");
if (isFingerprintDetectionRunning()) {
mFingerprintCancelSignal.cancel();
cb.onKeyguardVisibilityChangedRaw(isShowing);
}
}
+ updateFingerprintListeningState();
}
/**