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

Commit 6fd9cd77 authored by Jan Tomljanovic's avatar Jan Tomljanovic Committed by Android (Google) Code Review
Browse files

Merge "Always set source status, even when null." into main

parents ec412eb8 eeea2fc0
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.settings.biometrics.activeunlock.ActiveUnlockStatusUtils;
import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils;
import com.android.settings.biometrics.face.FaceStatusUtils;
import com.android.settings.biometrics.fingerprint.FingerprintStatusUtils;
import com.android.settings.flags.Flags;
import com.android.settingslib.RestrictedLockUtils;

/** Combined Biometrics Safety Source for Safety Center. */
@@ -49,6 +50,10 @@ public final class BiometricsSafetySource {
        if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
            return;
        }
        if (Flags.biometricsOnboardingEducation()) { // this source is effectively turned off
            sendNullData(context, safetyEvent);
            return;
        }

        UserHandle userHandle = Process.myUserHandle();
        int userId = userHandle.getIdentifier();
@@ -63,9 +68,7 @@ public final class BiometricsSafetySource {
                && userManager.isPrivateProfile()) {
            // SC always expects a response from the source if the broadcast has been sent for this
            // source, therefore, we need to send a null SafetySourceData.
            SafetyCenterManagerWrapper.get()
                    .setSafetySourceData(
                            context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
            sendNullData(context, safetyEvent);
            return;
        }

@@ -174,6 +177,10 @@ public final class BiometricsSafetySource {
            return;
        }

        sendNullData(context, safetyEvent);
    }

    private static void sendNullData(Context context, SafetyEvent safetyEvent) {
        SafetyCenterManagerWrapper.get()
                .setSafetySourceData(
                        context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
+10 −3
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.safetycenter.SafetyEvent;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricNavigationUtils;
import com.android.settings.biometrics.face.FaceStatusUtils;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;

@@ -44,6 +45,10 @@ public final class FaceSafetySource {
        if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
            return;
        }
        if (!Flags.biometricsOnboardingEducation()) { // this source is effectively turned off
            sendNullData(context, safetyEvent);
            return;
        }

        // Handle private profile case
        UserManager userManager = UserManager.get(context);
@@ -52,9 +57,7 @@ public final class FaceSafetySource {
                && userManager.isPrivateProfile()) {
            // SC always expects a response from the source if the broadcast has been sent for this
            // source, therefore, we need to send a null SafetySourceData.
            SafetyCenterManagerWrapper.get()
                    .setSafetySourceData(
                            context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
            sendNullData(context, safetyEvent);
            return;
        }

@@ -95,6 +98,10 @@ public final class FaceSafetySource {
            return;
        }

        sendNullData(context, safetyEvent);
    }

    private static void sendNullData(Context context, SafetyEvent safetyEvent) {
        SafetyCenterManagerWrapper.get()
                .setSafetySourceData(
                        context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
+10 −3
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.safetycenter.SafetyEvent;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricNavigationUtils;
import com.android.settings.biometrics.fingerprint.FingerprintStatusUtils;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;

@@ -44,6 +45,10 @@ public final class FingerprintSafetySource {
        if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
            return;
        }
        if (!Flags.biometricsOnboardingEducation()) { // this source is effectively turned off
            sendNullData(context, safetyEvent);
            return;
        }

        // Handle private profile case
        UserManager userManager = UserManager.get(context);
@@ -52,9 +57,7 @@ public final class FingerprintSafetySource {
                && userManager.isPrivateProfile()) {
            // SC always expects a response from the source if the broadcast has been sent for this
            // source, therefore, we need to send a null SafetySourceData.
            SafetyCenterManagerWrapper.get()
                    .setSafetySourceData(
                            context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
            sendNullData(context, safetyEvent);
            return;
        }

@@ -96,6 +99,10 @@ public final class FingerprintSafetySource {
            return;
        }

        sendNullData(context, safetyEvent);
    }

    private static void sendNullData(Context context, SafetyEvent safetyEvent) {
        SafetyCenterManagerWrapper.get()
                .setSafetySourceData(
                        context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
+6 −15
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import android.content.Intent;
import android.safetycenter.SafetyCenterManager;
import android.safetycenter.SafetyEvent;

import com.android.settings.flags.Flags;
import com.android.settings.privatespace.PrivateSpaceSafetySource;
import com.android.settings.security.ScreenLockPreferenceDetailsUtils;

@@ -75,20 +74,16 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
                    context, new ScreenLockPreferenceDetailsUtils(context), safetyEvent);
        }

        if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)
                && !Flags.biometricsOnboardingEducation()) {
        if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
            BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
        }

        if (sourceIds.contains(PrivateSpaceSafetySource.SAFETY_SOURCE_ID)) {
            PrivateSpaceSafetySource.setSafetySourceData(context, safetyEvent);
        }
        if (sourceIds.contains(FaceSafetySource.SAFETY_SOURCE_ID)
                && Flags.biometricsOnboardingEducation()) {
        if (sourceIds.contains(FaceSafetySource.SAFETY_SOURCE_ID)) {
            FaceSafetySource.setSafetySourceData(context, safetyEvent);
        }
        if (sourceIds.contains(FingerprintSafetySource.SAFETY_SOURCE_ID)
                && Flags.biometricsOnboardingEducation()) {
        if (sourceIds.contains(FingerprintSafetySource.SAFETY_SOURCE_ID)) {
            FingerprintSafetySource.setSafetySourceData(context, safetyEvent);
        }
    }
@@ -96,13 +91,9 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
    private static void refreshAllSafetySources(Context context, SafetyEvent safetyEvent) {
        LockScreenSafetySource.setSafetySourceData(
                context, new ScreenLockPreferenceDetailsUtils(context), safetyEvent);
        if (!Flags.biometricsOnboardingEducation()) {
        BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
        }
        PrivateSpaceSafetySource.setSafetySourceData(context, safetyEvent);
        if (Flags.biometricsOnboardingEducation()) {
        FaceSafetySource.setSafetySourceData(context, safetyEvent);
        FingerprintSafetySource.setSafetySourceData(context, safetyEvent);
    }
}
}
+42 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.os.UserHandle;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.safetycenter.SafetyEvent;
@@ -72,7 +73,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
@RunWith(AndroidJUnit4.class)
public class BiometricsSafetySourceTest {

@@ -130,6 +130,19 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_whenSeparateBiometricsFlagOn_setsNullData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);

        BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);

        verify(mSafetyCenterManagerWrapper)
                .setSafetySourceData(
                        any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), eq(null), any());
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_whenSafetyCenterIsEnabled_withoutBiometrics_setsNullData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -143,6 +156,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_setsDataForBiometricSource() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -158,6 +172,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_setsDataWithCorrectSafetyEvent() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -172,6 +187,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFingerprintNotEnrolled_whenDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -188,6 +204,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFingerprintNotEnrolled_whenNotDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -204,6 +221,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFingerprintsEnrolled_whenDisabledByAdmin_setsData() {
        int enrolledFingerprintsCount = 2;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -224,6 +242,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFingerprintsEnrolled_whenNotDisabledByAdmin_setsData() {
        int enrolledFingerprintsCount = 2;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -244,6 +263,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceNotEnrolled_whenDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -260,6 +280,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceNotEnrolled_whenNotDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -276,6 +297,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceEnrolled_whenDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -292,6 +314,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceEnrolled_whenNotDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -308,6 +331,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceAndFingerprint_whenBothNotDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -323,6 +347,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_withFaceAndFingerprint_whenFaceDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -339,6 +364,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFingerprintDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -355,6 +381,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenBothDisabledByAdmin_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -372,6 +399,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_withMpFingers_setsData() {
        int enrolledFingerprintsCount = 2;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -390,6 +418,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_withOneFinger_setsData() {
        int enrolledFingerprintsCount = 1;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -408,6 +437,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_withNoFingers_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -425,6 +455,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_activeUnlockEnabled_withFingerprintOnly_setsData() {
        int enrolledFingerprintsCount = 1;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -445,6 +476,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_activeUnlockEnabled_withFaceOnly_setsData() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -461,6 +493,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_activeUnlockEnabled_withFaceAndFingerprint_setsData() {
        int enrolledFingerprintsCount = 1;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -480,6 +513,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenNoFaceEnrolled_withFingers_setsData() {
        int enrolledFingerprintsCount = 1;
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -499,6 +533,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFaceEnrolled_setsInfoSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -521,6 +556,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenFingerprintEnrolled_setsInfoSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -543,6 +579,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_faceAndFingerprint_whenNotEnrolled_setsUnspSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -565,6 +602,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_fingerprint_whenEnrolled_setsInfoSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -586,6 +624,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_fingerprint_whenNotEnrolled_setsUnspSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -607,6 +646,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_face_whenEnrolled_setsInfoSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
@@ -628,6 +668,7 @@ public class BiometricsSafetySourceTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
    public void setSafetySourceData_face_whenNotEnrolled_setsUnspSeverity() {
        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
Loading