[Device Supervision] Implement createConfirmSupervisionCredentialsIntent API

The `ConfirmSupervisionCredentialsActivity` has been added and it's intended to be launched via the intent.

Bug: 392961554
Flag: android.app.supervision.flags.enable_supervision_settings_screen
Test: atest SupervisionMainSwitchPreferenceTest
Change-Id: I2322256a5711d5b90f826f467110c6861a7734ad
This commit is contained in:
juquan
2025-02-13 07:11:54 +00:00
committed by Junchen Quan
parent 04cfbe0520
commit 160b8bc1bb
8 changed files with 278 additions and 27 deletions

View File

@@ -15,6 +15,7 @@
*/
package com.android.settings.supervision
import android.app.Activity
import android.app.supervision.flags.Flags
import android.content.Context
import android.platform.test.annotations.DisableFlags
@@ -24,6 +25,7 @@ import androidx.fragment.app.testing.FragmentScenario
import androidx.preference.Preference
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.supervision.SupervisionMainSwitchPreference.Companion.REQUEST_CODE_CONFIRM_SUPERVISION_CREDENTIALS
import com.android.settingslib.widget.MainSwitchPreference
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
@@ -57,7 +59,7 @@ class SupervisionDashboardScreenTest {
@Test
@EnableFlags(Flags.FLAG_ENABLE_SUPERVISION_SETTINGS_SCREEN)
fun toggleMainSwitch_disablesChildPreferences() {
fun toggleMainSwitch_pinVerificationSucceeded_enablesChildPreferences() {
FragmentScenario.launchInContainer(preferenceScreenCreator.fragmentClass()).onFragment {
fragment ->
val mainSwitchPreference =
@@ -68,8 +70,38 @@ class SupervisionDashboardScreenTest {
assertThat(childPreference.isEnabled).isFalse()
mainSwitchPreference.performClick()
// Pretend the PIN verification succeeded.
fragment.onActivityResult(
requestCode = REQUEST_CODE_CONFIRM_SUPERVISION_CREDENTIALS,
resultCode = Activity.RESULT_OK,
data = null,
)
assertThat(childPreference.isEnabled).isTrue()
}
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_SUPERVISION_SETTINGS_SCREEN)
fun toggleMainSwitch_pinVerificationFailed_childPreferencesRemainDisabled() {
FragmentScenario.launchInContainer(preferenceScreenCreator.fragmentClass()).onFragment {
fragment ->
val mainSwitchPreference =
fragment.findPreference<MainSwitchPreference>(SupervisionMainSwitchPreference.KEY)!!
val childPreference =
fragment.findPreference<Preference>(SupervisionPinManagementScreen.KEY)!!
assertThat(childPreference.isEnabled).isFalse()
mainSwitchPreference.performClick()
// Pretend the PIN verification failed.
fragment.onActivityResult(
requestCode = REQUEST_CODE_CONFIRM_SUPERVISION_CREDENTIALS,
resultCode = Activity.RESULT_CANCELED,
data = null,
)
assertThat(childPreference.isEnabled).isFalse()
}
}
}