Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetButtonPreference.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ fun TwoTargetButtonPreference( TwoTargetPreference( title = title, summary = summary, onClick = onClick, primaryOnClick = onClick, icon = icon, ) { IconButton(onClick = onButtonClick) { Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt +4 −2 Original line number Diff line number Diff line Loading @@ -34,7 +34,8 @@ import com.android.settingslib.spa.framework.theme.divider internal fun TwoTargetPreference( title: String, summary: () -> String, onClick: () -> Unit, primaryEnabled: () -> Boolean = { true }, primaryOnClick: (() -> Unit)?, icon: @Composable (() -> Unit)? = null, widget: @Composable () -> Unit, ) { Loading @@ -50,7 +51,8 @@ internal fun TwoTargetPreference( override val title = title override val summary = summary override val icon = icon override val onClick = onClick override val enabled = primaryEnabled override val onClick = primaryOnClick } ) } Loading packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt +4 −2 Original line number Diff line number Diff line Loading @@ -24,13 +24,15 @@ import com.android.settingslib.spa.widget.ui.SettingsSwitch fun TwoTargetSwitchPreference( model: SwitchPreferenceModel, icon: @Composable (() -> Unit)? = null, onClick: () -> Unit, primaryEnabled: () -> Boolean = { true }, primaryOnClick: (() -> Unit)?, ) { EntryHighlight { TwoTargetPreference( title = model.title, summary = model.summary, onClick = onClick, primaryEnabled = primaryEnabled, primaryOnClick = primaryOnClick, icon = icon, ) { SettingsSwitch( Loading packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreferenceTest.kt +49 −20 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertIsNotEnabled import androidx.compose.ui.test.assertIsOff import androidx.compose.ui.test.assertIsOn import androidx.compose.ui.test.isToggleable Loading @@ -46,7 +47,7 @@ class TwoTargetSwitchPreferenceTest { TestTwoTargetSwitchPreference(changeable = true) } composeTestRule.onNodeWithText("TwoTargetSwitchPreference").assertIsDisplayed() composeTestRule.onNodeWithText(TITLE).assertIsDisplayed() } @Test Loading Loading @@ -79,7 +80,7 @@ class TwoTargetSwitchPreferenceTest { } @Test fun clickable_canBeClick() { fun clickable_primaryEnabled_canBeClick() { var clicked = false composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false) { Loading @@ -87,26 +88,54 @@ class TwoTargetSwitchPreferenceTest { } } composeTestRule.onNodeWithText("TwoTargetSwitchPreference").performClick() composeTestRule.onNodeWithText(TITLE).performClick() assertThat(clicked).isTrue() } @Test fun clickable_primaryNotEnabled_assertIsNotEnabled() { composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false, primaryEnabled = false) } composeTestRule.onNodeWithText(TITLE).assertIsNotEnabled() } @Test fun clickable_primaryNotEnabled_canNotBeClick() { var clicked = false composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false, primaryEnabled = false) { clicked = true } } composeTestRule.onNodeWithText(TITLE).performClick() assertThat(clicked).isFalse() } @Composable private fun TestTwoTargetSwitchPreference( changeable: Boolean, onClick: () -> Unit = {}, primaryEnabled: Boolean = true, primaryOnClick: () -> Unit = {}, ) { var checked by rememberSaveable { mutableStateOf(false) } TwoTargetSwitchPreference( model = remember { object : SwitchPreferenceModel { override val title = "TwoTargetSwitchPreference" override val title = TITLE override val checked = { checked } override val changeable = { changeable } override val onCheckedChange = { newChecked: Boolean -> checked = newChecked } } }, onClick = onClick, primaryEnabled = { primaryEnabled }, primaryOnClick = primaryOnClick, ) } private companion object { const val TITLE = "Title" } } packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListTwoTargetSwitchItem.kt +1 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,6 @@ fun <T : AppRecord> AppListItemModel<T>.AppListTwoTargetSwitchItem( override val onCheckedChange = onCheckedChange }, icon = { AppIcon(record.app, SettingsDimension.appIconItemSize) }, onClick = onClick, primaryOnClick = onClick, ) } Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetButtonPreference.kt +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ fun TwoTargetButtonPreference( TwoTargetPreference( title = title, summary = summary, onClick = onClick, primaryOnClick = onClick, icon = icon, ) { IconButton(onClick = onButtonClick) { Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt +4 −2 Original line number Diff line number Diff line Loading @@ -34,7 +34,8 @@ import com.android.settingslib.spa.framework.theme.divider internal fun TwoTargetPreference( title: String, summary: () -> String, onClick: () -> Unit, primaryEnabled: () -> Boolean = { true }, primaryOnClick: (() -> Unit)?, icon: @Composable (() -> Unit)? = null, widget: @Composable () -> Unit, ) { Loading @@ -50,7 +51,8 @@ internal fun TwoTargetPreference( override val title = title override val summary = summary override val icon = icon override val onClick = onClick override val enabled = primaryEnabled override val onClick = primaryOnClick } ) } Loading
packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt +4 −2 Original line number Diff line number Diff line Loading @@ -24,13 +24,15 @@ import com.android.settingslib.spa.widget.ui.SettingsSwitch fun TwoTargetSwitchPreference( model: SwitchPreferenceModel, icon: @Composable (() -> Unit)? = null, onClick: () -> Unit, primaryEnabled: () -> Boolean = { true }, primaryOnClick: (() -> Unit)?, ) { EntryHighlight { TwoTargetPreference( title = model.title, summary = model.summary, onClick = onClick, primaryEnabled = primaryEnabled, primaryOnClick = primaryOnClick, icon = icon, ) { SettingsSwitch( Loading
packages/SettingsLib/Spa/tests/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreferenceTest.kt +49 −20 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.assertIsNotEnabled import androidx.compose.ui.test.assertIsOff import androidx.compose.ui.test.assertIsOn import androidx.compose.ui.test.isToggleable Loading @@ -46,7 +47,7 @@ class TwoTargetSwitchPreferenceTest { TestTwoTargetSwitchPreference(changeable = true) } composeTestRule.onNodeWithText("TwoTargetSwitchPreference").assertIsDisplayed() composeTestRule.onNodeWithText(TITLE).assertIsDisplayed() } @Test Loading Loading @@ -79,7 +80,7 @@ class TwoTargetSwitchPreferenceTest { } @Test fun clickable_canBeClick() { fun clickable_primaryEnabled_canBeClick() { var clicked = false composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false) { Loading @@ -87,26 +88,54 @@ class TwoTargetSwitchPreferenceTest { } } composeTestRule.onNodeWithText("TwoTargetSwitchPreference").performClick() composeTestRule.onNodeWithText(TITLE).performClick() assertThat(clicked).isTrue() } @Test fun clickable_primaryNotEnabled_assertIsNotEnabled() { composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false, primaryEnabled = false) } composeTestRule.onNodeWithText(TITLE).assertIsNotEnabled() } @Test fun clickable_primaryNotEnabled_canNotBeClick() { var clicked = false composeTestRule.setContent { TestTwoTargetSwitchPreference(changeable = false, primaryEnabled = false) { clicked = true } } composeTestRule.onNodeWithText(TITLE).performClick() assertThat(clicked).isFalse() } @Composable private fun TestTwoTargetSwitchPreference( changeable: Boolean, onClick: () -> Unit = {}, primaryEnabled: Boolean = true, primaryOnClick: () -> Unit = {}, ) { var checked by rememberSaveable { mutableStateOf(false) } TwoTargetSwitchPreference( model = remember { object : SwitchPreferenceModel { override val title = "TwoTargetSwitchPreference" override val title = TITLE override val checked = { checked } override val changeable = { changeable } override val onCheckedChange = { newChecked: Boolean -> checked = newChecked } } }, onClick = onClick, primaryEnabled = { primaryEnabled }, primaryOnClick = primaryOnClick, ) } private companion object { const val TITLE = "Title" } }
packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListTwoTargetSwitchItem.kt +1 −1 Original line number Diff line number Diff line Loading @@ -38,6 +38,6 @@ fun <T : AppRecord> AppListItemModel<T>.AppListTwoTargetSwitchItem( override val onCheckedChange = onCheckedChange }, icon = { AppIcon(record.app, SettingsDimension.appIconItemSize) }, onClick = onClick, primaryOnClick = onClick, ) }