Revert "Add mandatory biometric prompt to platform surfaces (3/N)"

This reverts commit 4708292020397d8a0b427295b45f25d2bda433bd.

Reason for revert: Change in spec https://docs.google.com/presentation/d/1pMqEM2WnAONK2VHpsCOkH__6C7fBJJEOErzlNucmdUM/edit?disco=AAABQhNVWtQ

Change-Id: Ifcdf922701fccbdbca91d85f7cf8a1541248c077
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 57668e8..7a166da 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -722,9 +722,6 @@
     <!-- label for screenshot item in power menu [CHAR LIMIT=24]-->
     <string name="global_action_screenshot">Screenshot</string>
 
-    <!-- description for mandatory biometrics prompt -->
-    <string name="identity_check_biometric_prompt_description">This is needed since Identity Check is on</string>
-
     <!-- Take bug report menu title [CHAR LIMIT=30] -->
     <string name="bugreport_title">Bug report</string>
     <!-- Message in bugreport dialog describing what it does [CHAR LIMIT=NONE] -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 9f9ef86..0f54d89 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1918,7 +1918,6 @@
   <java-symbol type="string" name="global_action_voice_assist" />
   <java-symbol type="string" name="global_action_assist" />
   <java-symbol type="string" name="global_action_screenshot" />
-  <java-symbol type="string" name="identity_check_biometric_prompt_description" />
   <java-symbol type="string" name="invalidPuk" />
   <java-symbol type="string" name="lockscreen_carrier_default" />
   <java-symbol type="style" name="Animation.LockScreen" />
diff --git a/data/etc/com.android.systemui.xml b/data/etc/com.android.systemui.xml
index c573cf4a..66b47da 100644
--- a/data/etc/com.android.systemui.xml
+++ b/data/etc/com.android.systemui.xml
@@ -92,6 +92,5 @@
         <permission name="android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS" />
         <permission name="android.permission.CONTROL_UI_TRACING" />
         <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
-        <permission name="android.permission.SET_BIOMETRIC_DIALOG_ADVANCED" />
     </privapp-permissions>
 </permissions>
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index 1b9a09d..b37db16 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -373,8 +373,6 @@
     <!-- Listen to (dis-)connection of external displays and enable / disable them. -->
     <uses-permission android:name="android.permission.MANAGE_DISPLAYS" />
 
-    <uses-permission android:name="android.permission.SET_BIOMETRIC_DIALOG_ADVANCED" />
-
     <protected-broadcast android:name="com.android.settingslib.action.REGISTER_SLICE_RECEIVER" />
     <protected-broadcast android:name="com.android.settingslib.action.UNREGISTER_SLICE_RECEIVER" />
     <protected-broadcast android:name="com.android.settings.flashlight.action.FLASHLIGHT_CHANGED" />
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
index c1de381..1e4fb4f 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
@@ -51,14 +51,10 @@
 import android.database.ContentObserver;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
-import android.hardware.biometrics.BiometricManager;
-import android.hardware.biometrics.BiometricPrompt;
-import android.hardware.biometrics.Flags;
 import android.media.AudioManager;
 import android.os.Binder;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.CancellationSignal;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
@@ -861,29 +857,6 @@
             if (ActivityManager.isUserAMonkey()) {
                 return;
             }
-            if (Flags.mandatoryBiometrics()
-                    && requestBiometricAuthenticationForMandatoryBiometrics()) {
-                launchBiometricPromptForMandatoryBiometrics(
-                        new BiometricPrompt.AuthenticationCallback() {
-                            @Override
-                            public void onAuthenticationError(int errorCode,
-                                    CharSequence errString) {
-                                super.onAuthenticationError(errorCode, errString);
-                            }
-
-                            @Override
-                            public void onAuthenticationSucceeded(
-                                    BiometricPrompt.AuthenticationResult result) {
-                                super.onAuthenticationSucceeded(result);
-                                shutDown();
-                            }
-                        });
-            } else {
-                shutDown();
-            }
-        }
-
-        private void shutDown() {
             mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_PRESS);
             // shutdown by making sure radio and power are handled accordingly.
             mWindowManagerFuncs.shutdown();
@@ -2288,35 +2261,6 @@
     }
 
     @VisibleForTesting
-    void launchBiometricPromptForMandatoryBiometrics(
-            BiometricPrompt.AuthenticationCallback authenticationCallback) {
-        final CancellationSignal cancellationSignal = new CancellationSignal();
-        final BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(mContext)
-                .setAllowedAuthenticators(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)
-                .setUseDefaultTitle()
-                .setDescription(mContext.getString(
-                        R.string.identity_check_biometric_prompt_description))
-                .setNegativeButton(mContext.getString(R.string.cancel), mContext.getMainExecutor(),
-                        (dialog, which) -> cancellationSignal.cancel())
-                .setAllowBackgroundAuthentication(true)
-                .build();
-        biometricPrompt.authenticate(cancellationSignal, mContext.getMainExecutor(),
-                authenticationCallback);
-    }
-
-    private boolean requestBiometricAuthenticationForMandatoryBiometrics() {
-        final BiometricManager biometricManager =
-                (BiometricManager) mContext.getSystemService(Context.BIOMETRIC_SERVICE);
-        if (biometricManager == null) {
-            Log.e(TAG, "Biometric Manager is null.");
-            return false;
-        }
-        final int status = biometricManager.canAuthenticate(
-                BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
-        return status == BiometricManager.BIOMETRIC_SUCCESS;
-    }
-
-    @VisibleForTesting
     static class ActionsDialogLite extends SystemUIDialog implements DialogInterface,
             ColorExtractor.OnColorsChangedListener {
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
index b58eb49..e2cca38 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java
@@ -23,7 +23,6 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -34,20 +33,13 @@
 import android.app.IActivityManager;
 import android.app.admin.DevicePolicyManager;
 import android.app.trust.TrustManager;
-import android.content.Context;
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.graphics.Color;
-import android.hardware.biometrics.BiometricManager;
-import android.hardware.biometrics.BiometricPrompt;
-import android.hardware.biometrics.Flags;
 import android.media.AudioManager;
 import android.os.Handler;
 import android.os.UserManager;
-import android.platform.test.annotations.RequiresFlagsEnabled;
-import android.platform.test.flag.junit.CheckFlagsRule;
-import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
 import android.service.dreams.IDreamManager;
 import android.testing.TestableLooper;
@@ -96,7 +88,6 @@
 import com.android.systemui.util.settings.SecureSettings;
 
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -111,9 +102,6 @@
 @RunWith(AndroidJUnit4.class)
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class GlobalActionsDialogLiteTest extends SysuiTestCase {
-    @Rule
-    public final CheckFlagsRule mCheckFlagsRule =
-            DeviceFlagsValueProvider.createCheckFlagsRule();
     private GlobalActionsDialogLite mGlobalActionsDialogLite;
 
     @Mock private GlobalActions.GlobalActionsManager mWindowManagerFuncs;
@@ -153,7 +141,6 @@
     @Mock private DialogTransitionAnimator mDialogTransitionAnimator;
     @Mock private SelectedUserInteractor mSelectedUserInteractor;
     @Mock private OnBackInvokedDispatcher mOnBackInvokedDispatcher;
-    @Mock private BiometricManager mBiometricManager;
     @Captor private ArgumentCaptor<OnBackInvokedCallback> mOnBackInvokedCallback;
 
     private TestableLooper mTestableLooper;
@@ -170,13 +157,10 @@
         when(mUserContextProvider.getUserContext()).thenReturn(mContext);
         when(mResources.getConfiguration()).thenReturn(
                 getContext().getResources().getConfiguration());
-        when(mBiometricManager.canAuthenticate(anyInt())).thenReturn(
-                BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
 
         mGlobalSettings = new FakeGlobalSettings();
         mSecureSettings = new FakeSettings();
         mInteractor = mKosmos.getGlobalActionsInteractor();
-        mContext.addMockSystemService(Context.BIOMETRIC_SERVICE, mBiometricManager);
 
         mGlobalActionsDialogLite = new GlobalActionsDialogLite(mContext,
                 mWindowManagerFuncs,
@@ -567,35 +551,6 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_MANDATORY_BIOMETRICS)
-    public void requestBiometricAuth_whenShutDownShortPressAndMandatoryBiometricsActive() {
-        mGlobalActionsDialogLite = spy(mGlobalActionsDialogLite);
-        ArgumentCaptor<BiometricPrompt.AuthenticationCallback>
-                authenticationCallbackArgumentCaptor = ArgumentCaptor.forClass(
-                        BiometricPrompt.AuthenticationCallback.class);
-
-        when(mBiometricManager.canAuthenticate(
-                BiometricManager.Authenticators.MANDATORY_BIOMETRICS)).thenReturn(
-                        BiometricManager.BIOMETRIC_SUCCESS);
-        doNothing().when(mGlobalActionsDialogLite).launchBiometricPromptForMandatoryBiometrics(
-                any());
-
-        GlobalActionsDialogLite.ShutDownAction shutDownAction =
-                mGlobalActionsDialogLite.new ShutDownAction();
-        shutDownAction.onPress();
-
-        verify(mGlobalActionsDialogLite).launchBiometricPromptForMandatoryBiometrics(
-                authenticationCallbackArgumentCaptor.capture());
-
-        BiometricPrompt.AuthenticationCallback authenticationCallback =
-                authenticationCallbackArgumentCaptor.getValue();
-        authenticationCallback.onAuthenticationSucceeded(null);
-
-        verifyLogPosted(GlobalActionsDialogLite.GlobalActionsEvent.GA_SHUTDOWN_PRESS);
-        verify(mWindowManagerFuncs).shutdown();
-    }
-
-    @Test
     public void testShouldLogLockdownPress() {
         GlobalActionsDialogLite.LockDownAction lockDownAction =
                 mGlobalActionsDialogLite.new LockDownAction();
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index f5a2a21..2a16872 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -369,10 +369,6 @@
                 checkPermission();
             }
 
-            if ((authenticators & Authenticators.MANDATORY_BIOMETRICS) != 0) {
-                checkBiometricAdvancedPermission();
-            }
-
             final long identity = Binder.clearCallingIdentity();
             try {
                 final int result = mBiometricService.canAuthenticate(
diff --git a/services/core/java/com/android/server/biometrics/sensors/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/AuthenticationClient.java
index 693a3e6..daaafcb 100644
--- a/services/core/java/com/android/server/biometrics/sensors/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/AuthenticationClient.java
@@ -418,7 +418,7 @@
     }
 
     protected int getRequestReason() {
-        if (isKeyguard() && !isBiometricPrompt()) {
+        if (isKeyguard()) {
             return BiometricRequestConstants.REASON_AUTH_KEYGUARD;
         } else if (isBiometricPrompt()) {
             // BP reason always takes precedent over settings, since callers from within
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
index 36a5cda..9cd3186 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
@@ -393,18 +393,6 @@
         testAuthenticate_throwsSecurityException(promptInfo);
     }
 
-    @Test
-    public void testCanAuthenticate_throwsWhenUsingAdvancedApis() {
-        mAuthService = new AuthService(mContext, mInjector);
-        mAuthService.onStart();
-
-        assertThrows(SecurityException.class, () -> {
-            mAuthService.mImpl.canAuthenticate(TEST_OP_PACKAGE_NAME, 1 /* userId */,
-                    BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
-            waitForIdle();
-        });
-    }
-
     private void testAuthenticate_throwsSecurityException(PromptInfo promptInfo) {
         mAuthService = new AuthService(mContext, mInjector);
         mAuthService.onStart();