RESTRICT AUTOMERGE Update FP listening state on keyguardGoingAway am: e21879df4e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20807413 Change-Id: Id8851fce54f4d8eaf743fb66aea13d3b3b2ac854 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -712,8 +712,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
*/
|
*/
|
||||||
public void setKeyguardGoingAway(boolean goingAway) {
|
public void setKeyguardGoingAway(boolean goingAway) {
|
||||||
mKeyguardGoingAway = goingAway;
|
mKeyguardGoingAway = goingAway;
|
||||||
// This is set specifically to stop face authentication from running.
|
if (mKeyguardGoingAway) {
|
||||||
updateBiometricListeningState(BIOMETRIC_ACTION_STOP, FACE_AUTH_STOPPED_KEYGUARD_GOING_AWAY);
|
updateFaceListeningState(BIOMETRIC_ACTION_STOP,
|
||||||
|
FACE_AUTH_STOPPED_KEYGUARD_GOING_AWAY);
|
||||||
|
}
|
||||||
|
updateFingerprintListeningState(BIOMETRIC_ACTION_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1951,9 +1954,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
cb.onFinishedGoingToSleep(arg1);
|
cb.onFinishedGoingToSleep(arg1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// This is set specifically to stop face authentication from running.
|
updateFaceListeningState(BIOMETRIC_ACTION_STOP,
|
||||||
updateBiometricListeningState(BIOMETRIC_ACTION_STOP,
|
|
||||||
FACE_AUTH_STOPPED_FINISHED_GOING_TO_SLEEP);
|
FACE_AUTH_STOPPED_FINISHED_GOING_TO_SLEEP);
|
||||||
|
updateFingerprintListeningState(BIOMETRIC_ACTION_UPDATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleScreenTurnedOff() {
|
private void handleScreenTurnedOff() {
|
||||||
@@ -2719,7 +2722,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
|
|||||||
mFingerprintInteractiveToAuthProvider != null &&
|
mFingerprintInteractiveToAuthProvider != null &&
|
||||||
mFingerprintInteractiveToAuthProvider.isEnabled(getCurrentUser());
|
mFingerprintInteractiveToAuthProvider.isEnabled(getCurrentUser());
|
||||||
shouldListenSideFpsState =
|
shouldListenSideFpsState =
|
||||||
interactiveToAuthEnabled ? isDeviceInteractive() : true;
|
interactiveToAuthEnabled ? isDeviceInteractive() && !mGoingToSleep : true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean shouldListen = shouldListenKeyguardState && shouldListenUserState
|
boolean shouldListen = shouldListenKeyguardState && shouldListenUserState
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ import android.os.PowerManager;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.service.dreams.IDreamManager;
|
import android.service.dreams.IDreamManager;
|
||||||
import android.service.trust.TrustAgentService;
|
import android.service.trust.TrustAgentService;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
@@ -1254,7 +1255,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testStartsListeningForSfps_whenKeyguardIsVisible_ifRequireScreenOnToAuthEnabled()
|
public void startsListeningForSfps_whenKeyguardIsVisible_ifRequireInteractiveToAuthEnabled()
|
||||||
throws RemoteException {
|
throws RemoteException {
|
||||||
// SFPS supported and enrolled
|
// SFPS supported and enrolled
|
||||||
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
|
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
|
||||||
@@ -1262,12 +1263,9 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
|||||||
when(mAuthController.getSfpsProps()).thenReturn(props);
|
when(mAuthController.getSfpsProps()).thenReturn(props);
|
||||||
when(mAuthController.isSfpsEnrolled(anyInt())).thenReturn(true);
|
when(mAuthController.isSfpsEnrolled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
// WHEN require screen on to auth is disabled, and keyguard is not awake
|
// WHEN require interactive to auth is disabled, and keyguard is not awake
|
||||||
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(false);
|
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(false);
|
||||||
|
|
||||||
mContext.getOrCreateTestableResources().addOverride(
|
|
||||||
com.android.internal.R.bool.config_requireScreenOnToAuthEnabled, true);
|
|
||||||
|
|
||||||
// Preconditions for sfps auth to run
|
// Preconditions for sfps auth to run
|
||||||
keyguardNotGoingAway();
|
keyguardNotGoingAway();
|
||||||
currentUserIsPrimary();
|
currentUserIsPrimary();
|
||||||
@@ -1282,7 +1280,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
|||||||
// THEN we should listen for sfps when screen off, because require screen on is disabled
|
// THEN we should listen for sfps when screen off, because require screen on is disabled
|
||||||
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isTrue();
|
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isTrue();
|
||||||
|
|
||||||
// WHEN require screen on to auth is enabled, and keyguard is not awake
|
// WHEN require interactive to auth is enabled, and keyguard is not awake
|
||||||
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(true);
|
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
// THEN we shouldn't listen for sfps when screen off, because require screen on is enabled
|
// THEN we shouldn't listen for sfps when screen off, because require screen on is enabled
|
||||||
@@ -1297,6 +1295,61 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
|
|||||||
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isTrue();
|
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void notListeningForSfps_whenGoingToSleep_ifRequireInteractiveToAuthEnabled()
|
||||||
|
throws RemoteException {
|
||||||
|
// GIVEN SFPS supported and enrolled
|
||||||
|
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
|
||||||
|
props.add(newFingerprintSensorPropertiesInternal(TYPE_POWER_BUTTON));
|
||||||
|
when(mAuthController.getSfpsProps()).thenReturn(props);
|
||||||
|
when(mAuthController.isSfpsEnrolled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
// GIVEN Preconditions for sfps auth to run
|
||||||
|
keyguardNotGoingAway();
|
||||||
|
currentUserIsPrimary();
|
||||||
|
currentUserDoesNotHaveTrust();
|
||||||
|
biometricsNotDisabledThroughDevicePolicyManager();
|
||||||
|
biometricsEnabledForCurrentUser();
|
||||||
|
userNotCurrentlySwitching();
|
||||||
|
statusBarShadeIsLocked();
|
||||||
|
|
||||||
|
// WHEN require interactive to auth is enabled & keyguard is going to sleep
|
||||||
|
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(true);
|
||||||
|
deviceGoingToSleep();
|
||||||
|
|
||||||
|
mTestableLooper.processAllMessages();
|
||||||
|
|
||||||
|
// THEN we should NOT listen for sfps because device is going to sleep
|
||||||
|
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void listeningForSfps_whenGoingToSleep_ifRequireInteractiveToAuthDisabled()
|
||||||
|
throws RemoteException {
|
||||||
|
// GIVEN SFPS supported and enrolled
|
||||||
|
final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
|
||||||
|
props.add(newFingerprintSensorPropertiesInternal(TYPE_POWER_BUTTON));
|
||||||
|
when(mAuthController.getSfpsProps()).thenReturn(props);
|
||||||
|
when(mAuthController.isSfpsEnrolled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
// GIVEN Preconditions for sfps auth to run
|
||||||
|
keyguardNotGoingAway();
|
||||||
|
currentUserIsPrimary();
|
||||||
|
currentUserDoesNotHaveTrust();
|
||||||
|
biometricsNotDisabledThroughDevicePolicyManager();
|
||||||
|
biometricsEnabledForCurrentUser();
|
||||||
|
userNotCurrentlySwitching();
|
||||||
|
statusBarShadeIsLocked();
|
||||||
|
|
||||||
|
// WHEN require interactive to auth is disabled & keyguard is going to sleep
|
||||||
|
when(mInteractiveToAuthProvider.isEnabled(anyInt())).thenReturn(false);
|
||||||
|
deviceGoingToSleep();
|
||||||
|
|
||||||
|
mTestableLooper.processAllMessages();
|
||||||
|
|
||||||
|
// THEN we should listen for sfps because screen on to auth is disabled
|
||||||
|
assertThat(mKeyguardUpdateMonitor.shouldListenForFingerprint(false)).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
private FingerprintSensorPropertiesInternal newFingerprintSensorPropertiesInternal(
|
private FingerprintSensorPropertiesInternal newFingerprintSensorPropertiesInternal(
|
||||||
@FingerprintSensorProperties.SensorType int sensorType) {
|
@FingerprintSensorProperties.SensorType int sensorType) {
|
||||||
|
|||||||
Reference in New Issue
Block a user