Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37230d65 authored by Diya Bera's avatar Diya Bera Committed by Android (Google) Code Review
Browse files

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

parents 9b69eeee d2d372e3
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -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] -->
+0 −1
Original line number Diff line number Diff line
@@ -1927,7 +1927,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" />
+0 −1
Original line number Diff line number Diff line
@@ -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>
+0 −2
Original line number Diff line number Diff line
@@ -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" />
+0 −56
Original line number Diff line number Diff line
@@ -51,14 +51,10 @@ import android.content.res.Resources;
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 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
            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();
@@ -2287,35 +2260,6 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
        return mLifecycle;
    }

    @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 {
Loading