diff --git a/packages/SettingsLib/Spa/build.gradle.kts b/packages/SettingsLib/Spa/build.gradle.kts
index 0b7a568dd2f246b8705aace3a7a3d584641dc197..1c8ddcb431d2e30550cb0e3ff0acd3e6d19357a0 100644
--- a/packages/SettingsLib/Spa/build.gradle.kts
+++ b/packages/SettingsLib/Spa/build.gradle.kts
@@ -26,7 +26,7 @@ plugins {
 }
 
 allprojects {
-    extra["jetpackComposeVersion"] = "1.6.0-alpha07"
+    extra["jetpackComposeVersion"] = "1.6.0-alpha08"
 }
 
 subprojects {
diff --git a/packages/SettingsLib/Spa/settings.gradle.kts b/packages/SettingsLib/Spa/settings.gradle.kts
index aac0fe97f793d538feea9ac94996ac81fb42e58a..b8dfae39dfdc2d6287500971e025751b112c6553 100644
--- a/packages/SettingsLib/Spa/settings.gradle.kts
+++ b/packages/SettingsLib/Spa/settings.gradle.kts
@@ -26,7 +26,14 @@ dependencyResolutionManagement {
     rulesMode.set(RulesMode.FAIL_ON_PROJECT_RULES)
 
     repositories {
-        google()
+        google {
+            content {
+                includeGroupAndSubgroups("com.google")
+                includeGroupAndSubgroups("com.android")
+                includeGroupAndSubgroups("android")
+                includeGroupAndSubgroups("androidx")
+            }
+        }
         mavenCentral()
         maven {
             url = uri("https://jitpack.io")
diff --git a/packages/SettingsLib/Spa/spa/build.gradle.kts b/packages/SettingsLib/Spa/spa/build.gradle.kts
index b73bbd8b80e1e7738a982f203a196c1718395308..189c2dd4af1f44307fedb0e44fd05afc78b00789 100644
--- a/packages/SettingsLib/Spa/spa/build.gradle.kts
+++ b/packages/SettingsLib/Spa/spa/build.gradle.kts
@@ -57,7 +57,7 @@ dependencies {
     api("androidx.slice:slice-builders:1.1.0-alpha02")
     api("androidx.slice:slice-core:1.1.0-alpha02")
     api("androidx.slice:slice-view:1.1.0-alpha02")
-    api("androidx.compose.material3:material3:1.2.0-alpha09")
+    api("androidx.compose.material3:material3:1.2.0-alpha10")
     api("androidx.compose.material:material-icons-extended:$jetpackComposeVersion")
     api("androidx.compose.runtime:runtime-livedata:$jetpackComposeVersion")
     api("androidx.compose.ui:ui-tooling-preview:$jetpackComposeVersion")
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt
index 4d42fbae24fd82b4714a33c831a7b7d72a15e105..56d75d8bee4b661022a84b5559c9745daa066781 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BaseLayout.kt
@@ -26,13 +26,11 @@ import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.width
 import androidx.compose.material3.HorizontalDivider
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.framework.theme.SettingsOpacity.alphaForEnabled
 import com.android.settingslib.spa.framework.theme.SettingsTheme
@@ -44,7 +42,7 @@ internal fun BaseLayout(
     subTitle: @Composable () -> Unit,
     modifier: Modifier = Modifier,
     icon: (@Composable () -> Unit)? = null,
-    enabled: State<Boolean> = true.toState(),
+    enabled: () -> Boolean = { true },
     paddingStart: Dp = SettingsDimension.itemPaddingStart,
     paddingEnd: Dp = SettingsDimension.itemPaddingEnd,
     paddingVertical: Dp = SettingsDimension.itemPaddingVertical,
@@ -56,7 +54,7 @@ internal fun BaseLayout(
             .padding(end = paddingEnd),
         verticalAlignment = Alignment.CenterVertically,
     ) {
-        val alphaModifier = Modifier.alphaForEnabled(enabled.value)
+        val alphaModifier = Modifier.alphaForEnabled(enabled())
         BaseIcon(icon, alphaModifier, paddingStart)
         Titles(
             title = title,
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BasePreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BasePreference.kt
index 081e6680c48939991426b5ef365a17cccbdea556..194ed81df0eed7d3c99eebcb18a00aaf955a2e9e 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BasePreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/BasePreference.kt
@@ -20,11 +20,9 @@ import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.outlined.BatteryChargingFull
 import androidx.compose.material3.Icon
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.Dp
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.framework.theme.SettingsTheme
 import com.android.settingslib.spa.widget.ui.SettingsBody
@@ -32,11 +30,11 @@ import com.android.settingslib.spa.widget.ui.SettingsBody
 @Composable
 internal fun BasePreference(
     title: String,
-    summary: State<String>,
+    summary: () -> String,
     modifier: Modifier = Modifier,
     singleLineSummary: Boolean = false,
     icon: @Composable (() -> Unit)? = null,
-    enabled: State<Boolean> = true.toState(),
+    enabled: () -> Boolean = { true },
     paddingStart: Dp = SettingsDimension.itemPaddingStart,
     paddingEnd: Dp = SettingsDimension.itemPaddingEnd,
     paddingVertical: Dp = SettingsDimension.itemPaddingVertical,
@@ -46,7 +44,7 @@ internal fun BasePreference(
         title = title,
         subTitle = {
             SettingsBody(
-                body = summary.value,
+                body = summary(),
                 maxLines = if (singleLineSummary) 1 else Int.MAX_VALUE,
             )
         },
@@ -66,7 +64,7 @@ private fun BasePreferencePreview() {
     SettingsTheme {
         BasePreference(
             title = "Screen Saver",
-            summary = "Clock".toState(),
+            summary = { "Clock" },
         )
     }
 }
@@ -77,7 +75,7 @@ private fun BasePreferenceIconPreview() {
     SettingsTheme {
         BasePreference(
             title = "Screen Saver",
-            summary = "Clock".toState(),
+            summary = { "Clock" },
             icon = {
                 Icon(imageVector = Icons.Outlined.BatteryChargingFull, contentDescription = null)
             },
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ListPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ListPreference.kt
index 19779f67ca4890d5454b4da14a5db2d681032df4..74f9c9d0f9e27fb4458881ec142ef36efe6eba2b 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ListPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/ListPreference.kt
@@ -89,7 +89,7 @@ fun ListPreference(model: ListPreferenceModel) {
         ) {
             Column(modifier = Modifier.selectableGroup()) {
                 for (option in model.options) {
-                    Radio(option, model.selectedId, model.enabled) {
+                    Radio(option, model.selectedId.intValue, model.enabled.value) {
                         dialogOpened = false
                         model.onIdSelected(it)
                     }
@@ -113,12 +113,11 @@ fun ListPreference(model: ListPreferenceModel) {
 @Composable
 private fun Radio(
     option: ListPreferenceOption,
-    selectedId: IntState,
-    enabledState: State<Boolean>,
+    selectedId: Int,
+    enabled: Boolean,
     onIdSelected: (id: Int) -> Unit,
 ) {
-    val selected = option.id == selectedId.intValue
-    val enabled = enabledState.value
+    val selected = option.id == selectedId
     Row(
         modifier = Modifier
             .fillMaxWidth()
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt
index 0c16c8bc7229068d6c507de58e37ad28aedb5d0a..35c34d4e8de961fdea5307d8671c3b044c74193d 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/MainSwitchPreference.kt
@@ -43,8 +43,8 @@ fun MainSwitchPreference(model: SwitchPreferenceModel) {
         ) {
             InternalSwitchPreference(
                 title = model.title,
-                checked = model.checked,
-                changeable = model.changeable,
+                checked = model.checked.value,
+                changeable = model.changeable.value,
                 onCheckedChange = model.onCheckedChange,
                 paddingStart = 20.dp,
                 paddingEnd = 20.dp,
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt
index b6099e99c529897d2276a7df3b8c99560deb1caa..7ecbec7ce0b434ffa1eabe45f7bc1e1c9527e727 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/Preference.kt
@@ -119,11 +119,11 @@ fun Preference(
     EntryHighlight {
         BasePreference(
             title = model.title,
-            summary = model.summary,
+            summary = { model.summary.value },
             singleLineSummary = singleLineSummary,
             modifier = modifier,
             icon = model.icon,
-            enabled = model.enabled,
+            enabled = { model.enabled.value },
         )
     }
 }
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt
index ba8c03d9438d6fc1325bbd09ab361b0af2557391..f14f68ce74c0b0b7e8517589c41fa24f98227a91 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/SwitchPreference.kt
@@ -32,7 +32,6 @@ import androidx.compose.ui.semantics.Role
 import androidx.compose.ui.tooling.preview.Preview
 import androidx.compose.ui.unit.Dp
 import com.android.settingslib.spa.framework.compose.stateOf
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.framework.theme.SettingsTheme
 import com.android.settingslib.spa.framework.util.EntryHighlight
@@ -96,10 +95,10 @@ fun SwitchPreference(model: SwitchPreferenceModel) {
     EntryHighlight {
         InternalSwitchPreference(
             title = model.title,
-            summary = model.summary,
+            summary = { model.summary.value },
             icon = model.icon,
-            checked = model.checked,
-            changeable = model.changeable,
+            checked = model.checked.value,
+            changeable = model.changeable.value,
             onCheckedChange = model.onCheckedChange,
         )
     }
@@ -108,25 +107,25 @@ fun SwitchPreference(model: SwitchPreferenceModel) {
 @Composable
 internal fun InternalSwitchPreference(
     title: String,
-    summary: State<String> = "".toState(),
+    summary: () -> String = { "" },
     icon: @Composable (() -> Unit)? = null,
-    checked: State<Boolean?>,
-    changeable: State<Boolean> = true.toState(),
+    checked: Boolean?,
+    changeable: Boolean = true,
     paddingStart: Dp = SettingsDimension.itemPaddingStart,
     paddingEnd: Dp = SettingsDimension.itemPaddingEnd,
     paddingVertical: Dp = SettingsDimension.itemPaddingVertical,
     onCheckedChange: ((newChecked: Boolean) -> Unit)?,
 ) {
-    val checkedValue = checked.value
     val indication = LocalIndication.current
     val onChangeWithLog = wrapOnSwitchWithLog(onCheckedChange)
-    val modifier = remember(checkedValue, changeable.value) {
-        if (checkedValue != null && onChangeWithLog != null) {
+    val interactionSource = remember { MutableInteractionSource() }
+    val modifier = remember(checked, changeable) {
+        if (checked != null && onChangeWithLog != null) {
             Modifier.toggleable(
-                value = checkedValue,
-                interactionSource = MutableInteractionSource(),
+                value = checked,
+                interactionSource = interactionSource,
                 indication = indication,
-                enabled = changeable.value,
+                enabled = changeable,
                 role = Role.Switch,
                 onValueChange = onChangeWithLog,
             )
@@ -136,7 +135,7 @@ internal fun InternalSwitchPreference(
         title = title,
         summary = summary,
         modifier = modifier,
-        enabled = changeable,
+        enabled = { changeable },
         paddingStart = paddingStart,
         paddingEnd = paddingEnd,
         paddingVertical = paddingVertical,
@@ -145,10 +144,11 @@ internal fun InternalSwitchPreference(
         Spacer(Modifier.width(SettingsDimension.itemPaddingEnd))
         SettingsSwitch(
             checked = checked,
-            changeable = changeable,
+            changeable = { changeable },
             // The onCheckedChange is handled on the whole SwitchPreference.
             // DO NOT set it on SettingsSwitch.
             onCheckedChange = null,
+            interactionSource = interactionSource,
         )
     }
 }
@@ -160,19 +160,19 @@ private fun SwitchPreferencePreview() {
         Column {
             InternalSwitchPreference(
                 title = "Use Dark theme",
-                checked = true.toState(),
+                checked = true,
                 onCheckedChange = {},
             )
             InternalSwitchPreference(
                 title = "Use Dark theme",
-                summary = "Summary".toState(),
-                checked = false.toState(),
+                summary = { "Summary" },
+                checked = false,
                 onCheckedChange = {},
             )
             InternalSwitchPreference(
                 title = "Use Dark theme",
-                summary = "Summary".toState(),
-                checked = true.toState(),
+                summary = { "Summary" },
+                checked = true,
                 onCheckedChange = {},
                 icon = @Composable {
                     SettingsIcon(imageVector = Icons.Outlined.AirplanemodeActive)
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt
index 63de2c821154c92204e40e719c6afc741b9a0e88..9a6580c852a67a14a46de2665bd3618f789a344b 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetSwitchPreference.kt
@@ -34,8 +34,8 @@ fun TwoTargetSwitchPreference(
             icon = icon,
         ) {
             SettingsSwitch(
-                checked = model.checked,
-                changeable = model.changeable,
+                checked = model.checked.value,
+                changeable = { model.changeable.value },
                 onCheckedChange = model.onCheckedChange,
             )
         }
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt
index 0f5e935d6edca0442301d569c795f319930995dc..2988be84b476e776188ca8f630986bd1d8a7d473 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/ProgressBar.kt
@@ -95,8 +95,8 @@ private fun DrawScope.drawLinearBarTrack(
 fun CircularProgressBar(progress: Float, radius: Float = 40f) {
     Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
         CircularProgressIndicator(
-            progress = progress,
-            modifier = Modifier.size(radius.dp, radius.dp)
+            progress = { progress },
+            modifier = Modifier.size(radius.dp, radius.dp),
         )
     }
 }
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt
index 9831b918894b53d21f4c87b4743b21664fc7f3d5..a0da2418acbcc9ed3952d2b6d024dfa60c27a8dd 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt
@@ -16,29 +16,32 @@
 
 package com.android.settingslib.spa.widget.ui
 
+import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.material3.Switch
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
+import androidx.compose.runtime.remember
 import com.android.settingslib.spa.framework.util.wrapOnSwitchWithLog
 
 @Composable
-fun SettingsSwitch(
-    checked: State<Boolean?>,
-    changeable: State<Boolean>,
+internal fun SettingsSwitch(
+    checked: Boolean?,
+    changeable: () -> Boolean,
     onCheckedChange: ((newChecked: Boolean) -> Unit)? = null,
+    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
 ) {
-    val checkedValue = checked.value
-    if (checkedValue != null) {
+    if (checked != null) {
         Switch(
-            checked = checkedValue,
+            checked = checked,
             onCheckedChange = wrapOnSwitchWithLog(onCheckedChange),
-            enabled = changeable.value,
+            enabled = changeable(),
+            interactionSource = interactionSource,
         )
     } else {
         Switch(
             checked = false,
             onCheckedChange = null,
             enabled = false,
+            interactionSource = interactionSource,
         )
     }
 }