Do not show side fingerprint sensor overlay when used from settings.

Fix: 203789357
Test: atest SidefpsControllerTest
Change-Id: I2b0bb3b38edeeec08e93706784b0a53bd77d32a3
This commit is contained in:
Joe Bolinger
2021-10-26 13:07:46 -07:00
parent a991d6bdc2
commit 42004250c2
4 changed files with 23 additions and 2 deletions

View File

@@ -38,13 +38,16 @@ public interface BiometricOverlayConstants {
int REASON_AUTH_KEYGUARD = 4;
/** Non-specific usage (from FingerprintManager). */
int REASON_AUTH_OTHER = 5;
/** Usage from Settings. */
int REASON_AUTH_SETTINGS = 6;
@IntDef({REASON_UNKNOWN,
REASON_ENROLL_FIND_SENSOR,
REASON_ENROLL_ENROLLING,
REASON_AUTH_BP,
REASON_AUTH_KEYGUARD,
REASON_AUTH_OTHER})
REASON_AUTH_OTHER,
REASON_AUTH_SETTINGS})
@Retention(RetentionPolicy.SOURCE)
@interface ShowReason {}
}

View File

@@ -22,6 +22,7 @@ import android.graphics.PorterDuffColorFilter
import android.graphics.Rect
import android.hardware.biometrics.BiometricOverlayConstants
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_KEYGUARD
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_SETTINGS
import android.hardware.display.DisplayManager
import android.hardware.fingerprint.FingerprintManager
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
@@ -181,6 +182,7 @@ class SidefpsController @Inject constructor(
@BiometricOverlayConstants.ShowReason
private fun Int.isReasonToShow(): Boolean = when (this) {
REASON_AUTH_KEYGUARD -> false
REASON_AUTH_SETTINGS -> false
else -> true
}

View File

@@ -18,6 +18,7 @@ package com.android.systemui.biometrics
import android.graphics.Rect
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_KEYGUARD
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_SETTINGS
import android.hardware.biometrics.BiometricOverlayConstants.REASON_UNKNOWN
import android.hardware.biometrics.SensorProperties
import android.hardware.display.DisplayManager
@@ -182,7 +183,16 @@ class SidefpsControllerTest : SysuiTestCase() {
@Test
fun testIgnoredForKeyguard() {
overlayController.show(SENSOR_ID, REASON_AUTH_KEYGUARD)
testIgnoredFor(REASON_AUTH_KEYGUARD)
}
@Test
fun testIgnoredForSettings() {
testIgnoredFor(REASON_AUTH_SETTINGS)
}
private fun testIgnoredFor(reason: Int) {
overlayController.show(SENSOR_ID, reason)
executor.runAllReady()
verify(windowManager, never()).addView(any(), any())

View File

@@ -168,6 +168,10 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T>
return Utils.isKeyguard(getContext(), getOwnerString());
}
private boolean isSettings() {
return Utils.isSettings(getContext(), getOwnerString());
}
@Override
protected boolean isCryptoOperation() {
return mOperationId != 0;
@@ -499,6 +503,8 @@ public abstract class AuthenticationClient<T> extends AcquisitionClient<T>
protected int getShowOverlayReason() {
if (isKeyguard()) {
return BiometricOverlayConstants.REASON_AUTH_KEYGUARD;
} else if (isSettings()) {
return BiometricOverlayConstants.REASON_AUTH_SETTINGS;
} else if (isBiometricPrompt()) {
return BiometricOverlayConstants.REASON_AUTH_BP;
} else {