Update the isEnabled state of preferences in supervision features group according to main switch

Test: manually on real device
Test: atest SupervisionDashboardScreenTest
Bug: 397757430
Flag: android.app.supervision.flags.enable_supervision_settings_screen
Change-Id: Ie60e3cb358fde93566a9ff4b6d54589c25174c94
This commit is contained in:
Zhou Liu
2025-02-21 00:35:10 +00:00
parent dd9ec44515
commit c0003fe0bd
3 changed files with 72 additions and 3 deletions

View File

@@ -20,8 +20,11 @@ import android.content.Context
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.SetFlagsRule
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.settingslib.widget.MainSwitchPreference
import com.google.common.truth.Truth.assertThat
import org.junit.Rule
import org.junit.Test
@@ -51,4 +54,22 @@ class SupervisionDashboardScreenTest {
fun flagDisabled() {
assertThat(preferenceScreenCreator.isFlagEnabled(context)).isFalse()
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_SUPERVISION_SETTINGS_SCREEN)
fun toggleMainSwitch_disablesChildPreferences() {
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()
assertThat(childPreference.isEnabled).isTrue()
}
}
}