From f7ffa201f467efc263eb3d4ae68212591241d6bc Mon Sep 17 00:00:00 2001 From: Diya Bera Date: Thu, 8 Feb 2024 17:11:39 -0800 Subject: [PATCH 1/2] Use parent profile for device credential Flag: Flags.ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE Bug: 320458435 Test: N/A Change-Id: I9ee46d53df5f0617da643f1cf51db811a5eec478 --- .../android/settings/password/BiometricFragment.java | 11 +++++++++-- .../password/ConfirmDeviceCredentialActivity.java | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java index 379ce80ad6d..90a1feba1f1 100644 --- a/src/com/android/settings/password/BiometricFragment.java +++ b/src/com/android/settings/password/BiometricFragment.java @@ -21,6 +21,7 @@ import android.hardware.biometrics.BiometricPrompt; import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback; import android.hardware.biometrics.BiometricPrompt.AuthenticationResult; import android.hardware.biometrics.PromptInfo; +import android.multiuser.Flags; import android.os.Bundle; import android.os.CancellationSignal; @@ -140,8 +141,14 @@ public class BiometricFragment extends InstrumentedFragment { .setDisallowBiometricsIfPolicyExists( promptInfo.isDisallowBiometricsIfPolicyExists()) .setShowEmergencyCallButton(promptInfo.isShowEmergencyCallButton()) - .setReceiveSystemEvents(true) - .setAllowBackgroundAuthentication(true); + .setReceiveSystemEvents(true); + + if (Flags.enableBiometricsToUnlockPrivateSpace()) { + promptBuilder = promptBuilder.setAllowBackgroundAuthentication(true /* allow */, + promptInfo.shouldUseParentProfileForDeviceCredential()); + } else { + promptBuilder = promptBuilder.setAllowBackgroundAuthentication(true /* allow */); + } // Check if the default subtitle should be used if subtitle is null/empty if (promptInfo.isUseDefaultSubtitle()) { diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java index 4a760add79e..f2ebd1f6b3d 100644 --- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java +++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java @@ -311,6 +311,7 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { mForceVerifyPath = userProperties.isCredentialShareableWithParent(); if (android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace() && isBiometricAllowed(effectiveUserId, mUserId)) { + promptInfo.setUseParentProfileForDeviceCredential(true); showBiometricPrompt(promptInfo, effectiveUserId); launchedBiometric = true; } else { From bf0ea2208277bf624a5fa73b63f20ae544b86774 Mon Sep 17 00:00:00 2001 From: Mark Kim Date: Sat, 17 Feb 2024 00:10:56 +0000 Subject: [PATCH 2/2] Disable APP_ARCHIVING flag for specific test APP_ARCHIVING flag was introduced to control archiving feature in Settings separately from OS. The broken test was expecting archiving feature flag be disabled but it didn't take into account a newly introduced flag which was automatically rolled out in ag/26270549 Test: AppButtonsTest Bug: 325632047 Change-Id: I02a1f4e2e2bfa1b85f2d993c4127698c8a6195dc --- .../com/android/settings/spa/app/appinfo/AppButtonsTest.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt index c742bd7a3a8..69acee89a00 100644 --- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt +++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt @@ -24,6 +24,7 @@ import android.content.pm.Flags import android.content.pm.PackageInfo import android.content.pm.PackageInstaller import android.content.pm.PackageManager +import android.platform.test.flag.junit.SetFlagsRule import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertIsEnabled import androidx.compose.ui.test.assertIsNotDisplayed @@ -34,6 +35,7 @@ import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.dx.mockito.inline.extended.ExtendedMockito import com.android.settings.R +import com.android.settings.flags.Flags as SettingsFlags import com.android.settingslib.applications.AppUtils import com.android.settingslib.spa.testutils.delay import kotlinx.coroutines.flow.MutableStateFlow @@ -54,6 +56,8 @@ class AppButtonsTest { @get:Rule val composeTestRule = createComposeRule() + @get:Rule val setFlagsRule: SetFlagsRule = SetFlagsRule() + private lateinit var mockSession: MockitoSession @Spy @@ -113,6 +117,7 @@ class AppButtonsTest { fun launchButton_displayed_archivingDisabled() { whenever(packageManager.getLaunchIntentForPackage(PACKAGE_NAME)).thenReturn(Intent()) featureFlags.setFlag(Flags.FLAG_ARCHIVING, false) + setFlagsRule.disableFlags(SettingsFlags.FLAG_APP_ARCHIVING) setContent() composeTestRule.onNodeWithText(context.getString(R.string.launch_instant_app))