Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20208f96 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Migrate some preference page

Bug: 370360039
Flag: EXEMPT gallery only
Test: manual - with gallery
Change-Id: Ied9740ce61f7dd28eaa1a0b0fa0b67c1d093fd8b
parent 0814725f
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -23,9 +23,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.tooling.preview.Preview
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.ListPreference
@@ -33,6 +31,8 @@ import com.android.settingslib.spa.widget.preference.ListPreferenceModel
import com.android.settingslib.spa.widget.preference.ListPreferenceOption
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flow
@@ -41,18 +41,16 @@ private const val TITLE = "Sample ListPreference"

object ListPreferencePageProvider : SettingsPageProvider {
    override val name = "ListPreference"
    private val owner = createSettingsPage()

    override fun buildEntry(arguments: Bundle?) = listOf(
        SettingsEntryBuilder.create("ListPreference", owner)
            .setUiLayoutFn {
    @Composable
    override fun Page(arguments: Bundle?) {
        RegularScaffold(TITLE) {
            Category {
                SampleListPreference()
            }.build(),
        SettingsEntryBuilder.create("ListPreference not changeable", owner)
            .setUiLayoutFn {
                SampleNotChangeableListPreference()
            }.build(),
    )
            }
        }
    }

    @Composable
    fun Entry() {
@@ -61,8 +59,6 @@ object ListPreferencePageProvider : SettingsPageProvider {
            override val onClick = navigator(name)
        })
    }

    override fun getTitle(arguments: Bundle?) = TITLE
}

@Composable
+13 −42
Original line number Diff line number Diff line
@@ -27,16 +27,15 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntry
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.preference.SwitchPreference
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
import com.android.settingslib.spa.widget.ui.SettingsIcon
import kotlinx.coroutines.delay

@@ -44,42 +43,18 @@ private const val TITLE = "Sample SwitchPreference"

object SwitchPreferencePageProvider : SettingsPageProvider {
    override val name = "SwitchPreference"
    private val owner = createSettingsPage()

    override fun buildEntry(arguments: Bundle?): List<SettingsEntry> {
        val entryList = mutableListOf<SettingsEntry>()
        entryList.add(
            SettingsEntryBuilder.create( "SwitchPreference", owner)
                .setUiLayoutFn {
    @Composable
    override fun Page(arguments: Bundle?) {
        RegularScaffold(TITLE) {
            Category {
                SampleSwitchPreference()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "SwitchPreference with summary", owner)
                .setUiLayoutFn {
                SampleSwitchPreferenceWithSummary()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "SwitchPreference with async summary", owner)
                .setUiLayoutFn {
                SampleSwitchPreferenceWithAsyncSummary()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "SwitchPreference not changeable", owner)
                .setUiLayoutFn {
                SampleNotChangeableSwitchPreference()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "SwitchPreference with icon", owner)
                .setUiLayoutFn {
                SampleSwitchPreferenceWithIcon()
                }.build()
        )

        return entryList
            }
        }
    }

    @Composable
@@ -89,10 +64,6 @@ object SwitchPreferencePageProvider : SettingsPageProvider {
            override val onClick = navigator(name)
        })
    }

    override fun getTitle(arguments: Bundle?): String {
        return TITLE
    }
}

@Composable
+12 −36
Original line number Diff line number Diff line
@@ -25,52 +25,32 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntry
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsTheme
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
import kotlinx.coroutines.delay

private const val TITLE = "Sample TwoTargetSwitchPreference"

object TwoTargetSwitchPreferencePageProvider : SettingsPageProvider {
    override val name = "TwoTargetSwitchPreference"
    private val owner = createSettingsPage()

    override fun buildEntry(arguments: Bundle?): List<SettingsEntry> {
        val entryList = mutableListOf<SettingsEntry>()
        entryList.add(
            SettingsEntryBuilder.create( "TwoTargetSwitchPreference", owner)
                .setUiLayoutFn {
    @Composable
    override fun Page(arguments: Bundle?) {
        RegularScaffold(TITLE) {
            Category {
                SampleTwoTargetSwitchPreference()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "TwoTargetSwitchPreference with summary", owner)
                .setUiLayoutFn {
                SampleTwoTargetSwitchPreferenceWithSummary()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "TwoTargetSwitchPreference with async summary", owner)
                .setUiLayoutFn {
                SampleTwoTargetSwitchPreferenceWithAsyncSummary()
                }.build()
        )
        entryList.add(
            SettingsEntryBuilder.create( "TwoTargetSwitchPreference not changeable", owner)
                .setUiLayoutFn {
                SampleNotChangeableTwoTargetSwitchPreference()
                }.build()
        )

        return entryList
            }
        }
    }

    @Composable
@@ -80,10 +60,6 @@ object TwoTargetSwitchPreferencePageProvider : SettingsPageProvider {
            override val onClick = navigator(name)
        })
    }

    override fun getTitle(arguments: Bundle?): String {
        return TITLE
    }
}

@Composable