summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chaohui Wang <chaohuiw@google.com> 2022-08-26 07:32:13 +0800
committer Chaohui Wang <chaohuiw@google.com> 2022-10-25 13:14:46 +0800
commite663986c39f4047f5ad6483e51b3824c16123c3c (patch)
tree148a4bc48394ad48c9060525004cd3fc98d31d1a
parent94fc6ed47a7b3f5047a8fceaac2795d6051880ba (diff)
Upgrade Compose version to 1.3 for SpaLib
- Use Switch instead of Checkbox - Disable user scroll for Pager so, current scroll behavior is not supported. Bug: 235727273 Test: Unit test & Manual with Gallery App Change-Id: I0a5cbf011432c7c1f4545c249f7f75bb239a47c0
-rw-r--r--packages/SettingsLib/Spa/build.gradle3
-rw-r--r--packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt11
-rw-r--r--packages/SettingsLib/Spa/spa/build.gradle2
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/Pager.kt3
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsScaffold.kt6
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/ui/Switch.kt10
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt41
7 files changed, 41 insertions, 35 deletions
diff --git a/packages/SettingsLib/Spa/build.gradle b/packages/SettingsLib/Spa/build.gradle
index 68c63dad6726..4fb77d7257ca 100644
--- a/packages/SettingsLib/Spa/build.gradle
+++ b/packages/SettingsLib/Spa/build.gradle
@@ -18,9 +18,8 @@ buildscript {
ext {
spa_min_sdk = 21
spa_target_sdk = 33
- jetpack_compose_version = '1.2.0-alpha04'
+ jetpack_compose_version = '1.3.0'
jetpack_compose_compiler_version = '1.3.2'
- jetpack_compose_material3_version = '1.0.0-alpha06'
}
}
plugins {
diff --git a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt
index e09ebdad7a1f..b38178b0e6f4 100644
--- a/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt
+++ b/packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/page/SettingsPagerPage.kt
@@ -17,7 +17,10 @@
package com.android.settingslib.spa.gallery.page
import android.os.Bundle
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPage
@@ -48,9 +51,11 @@ object SettingsPagerPageProvider : SettingsPageProvider {
@Composable
override fun Page(arguments: Bundle?) {
- SettingsScaffold(title = TITLE) {
- SettingsPager(listOf("Personal", "Work")) {
- PlaceholderTitle("Page $it")
+ SettingsScaffold(title = TITLE) { paddingValues ->
+ Box(Modifier.padding(paddingValues)) {
+ SettingsPager(listOf("Personal", "Work")) {
+ PlaceholderTitle("Page $it")
+ }
}
}
}
diff --git a/packages/SettingsLib/Spa/spa/build.gradle b/packages/SettingsLib/Spa/spa/build.gradle
index 3bafcf27fed9..2820ed7bc96e 100644
--- a/packages/SettingsLib/Spa/spa/build.gradle
+++ b/packages/SettingsLib/Spa/spa/build.gradle
@@ -55,7 +55,7 @@ android {
dependencies {
api "androidx.appcompat:appcompat:1.7.0-alpha01"
- api "androidx.compose.material3:material3:$jetpack_compose_material3_version"
+ api "androidx.compose.material3:material3:1.1.0-alpha01"
api "androidx.compose.material:material-icons-extended:$jetpack_compose_version"
api "androidx.compose.runtime:runtime-livedata:$jetpack_compose_version"
api "androidx.compose.ui:ui-tooling-preview:$jetpack_compose_version"
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/Pager.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/Pager.kt
index bf338574c42d..4df7794e8759 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/Pager.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/framework/compose/Pager.kt
@@ -40,7 +40,6 @@ import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.Velocity
import androidx.compose.ui.unit.dp
-import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.flow.filter
@@ -214,6 +213,7 @@ internal fun Pager(
horizontalAlignment = horizontalAlignment,
reverseLayout = reverseLayout,
contentPadding = contentPadding,
+ userScrollEnabled = false,
modifier = modifier,
) {
items(
@@ -241,6 +241,7 @@ internal fun Pager(
horizontalArrangement = Arrangement.spacedBy(itemSpacing, horizontalAlignment),
reverseLayout = reverseLayout,
contentPadding = contentPadding,
+ userScrollEnabled = false,
modifier = modifier,
) {
items(
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsScaffold.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsScaffold.kt
index d17e4645ee5e..b50cb3ed84d0 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsScaffold.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/SettingsScaffold.kt
@@ -21,8 +21,8 @@ import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold
-import androidx.compose.material3.SmallTopAppBar
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@@ -43,7 +43,7 @@ fun SettingsScaffold(
) {
Scaffold(
topBar = {
- SmallTopAppBar(
+ TopAppBar(
title = {
Text(
text = title,
@@ -63,7 +63,7 @@ fun SettingsScaffold(
@OptIn(ExperimentalMaterial3Api::class)
@Composable
-internal fun settingsTopAppBarColors() = TopAppBarDefaults.largeTopAppBarColors(
+private fun settingsTopAppBarColors() = TopAppBarDefaults.smallTopAppBarColors(
containerColor = SettingsTheme.colorScheme.surfaceHeader,
scrolledContainerColor = SettingsTheme.colorScheme.surfaceHeader,
)
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 b9690762845e..9831b918894b 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,30 +16,26 @@
package com.android.settingslib.spa.widget.ui
-import androidx.compose.material3.Checkbox
-import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Switch
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import com.android.settingslib.spa.framework.util.wrapOnSwitchWithLog
-@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun SettingsSwitch(
checked: State<Boolean?>,
changeable: State<Boolean>,
onCheckedChange: ((newChecked: Boolean) -> Unit)? = null,
) {
- // TODO: Replace Checkbox with Switch when the androidx.compose.material3_material3 library is
- // updated to date.
val checkedValue = checked.value
if (checkedValue != null) {
- Checkbox(
+ Switch(
checked = checkedValue,
onCheckedChange = wrapOnSwitchWithLog(onCheckedChange),
enabled = changeable.value,
)
} else {
- Checkbox(
+ Switch(
checked = false,
onCheckedChange = null,
enabled = false,
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt
index 2be1d1c6cce6..0caa8213e163 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppListPage.kt
@@ -16,8 +16,8 @@
package com.android.settingslib.spaprivileged.template.app
+import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.DropdownMenuItem
@@ -57,23 +57,28 @@ fun <T : AppRecord> AppListPage(
ShowSystemAction(showSystem.value) { showSystem.value = it }
},
) { paddingValues ->
- Spacer(Modifier.padding(paddingValues))
- WorkProfilePager(primaryUserOnly) { userInfo ->
- Column(Modifier.fillMaxSize()) {
- val options = remember { listModel.getSpinnerOptions() }
- val selectedOption = rememberSaveable { mutableStateOf(0) }
- Spinner(options, selectedOption.value) { selectedOption.value = it }
- AppList(
- appListConfig = AppListConfig(
- userId = userInfo.id,
- showInstantApps = showInstantApps,
- ),
- listModel = listModel,
- showSystem = showSystem,
- option = selectedOption,
- searchQuery = stateOf(""),
- appItem = appItem,
- )
+ Box(
+ Modifier
+ .padding(paddingValues)
+ .fillMaxSize()
+ ) {
+ WorkProfilePager(primaryUserOnly) { userInfo ->
+ Column(Modifier.fillMaxSize()) {
+ val options = remember { listModel.getSpinnerOptions() }
+ val selectedOption = rememberSaveable { mutableStateOf(0) }
+ Spinner(options, selectedOption.value) { selectedOption.value = it }
+ AppList(
+ appListConfig = AppListConfig(
+ userId = userInfo.id,
+ showInstantApps = showInstantApps,
+ ),
+ listModel = listModel,
+ showSystem = showSystem,
+ option = selectedOption,
+ searchQuery = stateOf(""),
+ appItem = appItem,
+ )
+ }
}
}
}