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

Commit c69c5e7c authored by Clara Thomas's avatar Clara Thomas Committed by Android (Google) Code Review
Browse files

Merge "Disable supervision before trying to remove supervising profile." into main

parents b511fd44 e3c1dfd5
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -131,10 +131,11 @@ class SupervisionDeletePinPreference() :
            Log.e(TAG, "Can't delete supervision data; supervising user does not exist.")
            return
        }
        if (userManager.removeUser(supervisingUser)) {
        // Supervision must be disabled before the supervising profile can be removed
        supervisionManager.setSupervisionEnabled(false)
            supervisionManager.setSupervisionRecoveryInfo(null)
        lifeCycleContext.notifyPreferenceChange(KEY)
        if (userManager.removeUser(supervisingUser)) {
            supervisionManager.setSupervisionRecoveryInfo(null)
            SubSettingLauncher(lifeCycleContext)
                .setDestination(SupervisionDashboardFragment::class.java.name)
                .setSourceMetricsCategory(SettingsEnums.SUPERVISION_DASHBOARD)
+3 −2
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ class SupervisionDeletePinPreferenceTest {
    }

    @Test
    fun onConfirmDeleteClick_removeUserFails_doesNotDeleteSupervisionData() {
    fun onConfirmDeleteClick_removeUserFails_doesNotDeleteSupervisionRecoveryData() {
        mockUserManager.stub {
            on { users } doReturn listOf(MAIN_USER, SECONDARY_USER, SUPERVISING_PROFILE)
            on { removeUser(UserHandle(SUPERVISING_USER_ID)) } doReturn false
@@ -238,8 +238,9 @@ class SupervisionDeletePinPreferenceTest {
        }

        preference.onConfirmDeleteClick()
        // We should disable supervision before the supervising profile is removed
        verify(mockSupervisionManager).setSupervisionEnabled(false)
        verify(mockSupervisionManager, never()).setSupervisionRecoveryInfo(any())
        verify(mockSupervisionManager, never()).setSupervisionEnabled(false)
        assertThat(startedIntent).isNull()
        assertAlertDialogHasMessage(R.string.supervision_delete_pin_error_message)
    }