Loading src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt +5 −2 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,6 @@ class SupervisionMainSwitchPreference : override val sensitivityLevel: Int override val sensitivityLevel: Int get() = SensitivityLevel.HIGH_SENSITIVITY get() = SensitivityLevel.HIGH_SENSITIVITY // TODO(b/390505725): Listen for changes in supervision state. @Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST") private class SupervisionMainSwitchStorage(private val context: Context) : private class SupervisionMainSwitchStorage(private val context: Context) : NoOpKeyedObservable<String>(), KeyValueStore { NoOpKeyedObservable<String>(), KeyValueStore { Loading @@ -61,7 +60,11 @@ class SupervisionMainSwitchPreference : as T as T override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { // TODO(b/383402852): implement handling of main toggle. // TODO(b/392694561): add PIN protection to main toggle. if (key == KEY && value is Boolean) { val supervisionManager = context.getSystemService(SupervisionManager::class.java) supervisionManager.setSupervisionEnabled(value) } } } } } Loading tests/robotests/src/com/android/settings/supervision/SupervisionMainSwitchPreferenceTest.kt +27 −0 Original line number Original line Diff line number Diff line Loading @@ -28,6 +28,7 @@ import org.junit.runner.RunWith import org.mockito.kotlin.doReturn import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import org.mockito.kotlin.mock import org.mockito.kotlin.stub import org.mockito.kotlin.stub import org.mockito.kotlin.verify @RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class) class SupervisionMainSwitchPreferenceTest { class SupervisionMainSwitchPreferenceTest { Loading Loading @@ -59,6 +60,32 @@ class SupervisionMainSwitchPreferenceTest { assertThat(getMainSwitchPreference().isChecked).isFalse() assertThat(getMainSwitchPreference().isChecked).isFalse() } } @Test fun toggleOn() { setSupervisionEnabled(false) val widget = getMainSwitchPreference() assertThat(widget.isChecked).isFalse() widget.performClick() assertThat(widget.isChecked).isTrue() verify(mockSupervisionManager).setSupervisionEnabled(true) } @Test fun toggleOff() { setSupervisionEnabled(true) val widget = getMainSwitchPreference() assertThat(widget.isChecked).isTrue() widget.performClick() assertThat(widget.isChecked).isFalse() verify(mockSupervisionManager).setSupervisionEnabled(false) } private fun getMainSwitchPreference(): MainSwitchPreference = private fun getMainSwitchPreference(): MainSwitchPreference = preference.createAndBindWidget(context) preference.createAndBindWidget(context) Loading Loading
src/com/android/settings/supervision/SupervisionMainSwitchPreference.kt +5 −2 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,6 @@ class SupervisionMainSwitchPreference : override val sensitivityLevel: Int override val sensitivityLevel: Int get() = SensitivityLevel.HIGH_SENSITIVITY get() = SensitivityLevel.HIGH_SENSITIVITY // TODO(b/390505725): Listen for changes in supervision state. @Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST") private class SupervisionMainSwitchStorage(private val context: Context) : private class SupervisionMainSwitchStorage(private val context: Context) : NoOpKeyedObservable<String>(), KeyValueStore { NoOpKeyedObservable<String>(), KeyValueStore { Loading @@ -61,7 +60,11 @@ class SupervisionMainSwitchPreference : as T as T override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) { // TODO(b/383402852): implement handling of main toggle. // TODO(b/392694561): add PIN protection to main toggle. if (key == KEY && value is Boolean) { val supervisionManager = context.getSystemService(SupervisionManager::class.java) supervisionManager.setSupervisionEnabled(value) } } } } } Loading
tests/robotests/src/com/android/settings/supervision/SupervisionMainSwitchPreferenceTest.kt +27 −0 Original line number Original line Diff line number Diff line Loading @@ -28,6 +28,7 @@ import org.junit.runner.RunWith import org.mockito.kotlin.doReturn import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import org.mockito.kotlin.mock import org.mockito.kotlin.stub import org.mockito.kotlin.stub import org.mockito.kotlin.verify @RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class) class SupervisionMainSwitchPreferenceTest { class SupervisionMainSwitchPreferenceTest { Loading Loading @@ -59,6 +60,32 @@ class SupervisionMainSwitchPreferenceTest { assertThat(getMainSwitchPreference().isChecked).isFalse() assertThat(getMainSwitchPreference().isChecked).isFalse() } } @Test fun toggleOn() { setSupervisionEnabled(false) val widget = getMainSwitchPreference() assertThat(widget.isChecked).isFalse() widget.performClick() assertThat(widget.isChecked).isTrue() verify(mockSupervisionManager).setSupervisionEnabled(true) } @Test fun toggleOff() { setSupervisionEnabled(true) val widget = getMainSwitchPreference() assertThat(widget.isChecked).isTrue() widget.performClick() assertThat(widget.isChecked).isFalse() verify(mockSupervisionManager).setSupervisionEnabled(false) } private fun getMainSwitchPreference(): MainSwitchPreference = private fun getMainSwitchPreference(): MainSwitchPreference = preference.createAndBindWidget(context) preference.createAndBindWidget(context) Loading