diff options
author | 2025-02-10 04:36:47 -0800 | |
---|---|---|
committer | 2025-02-10 04:36:47 -0800 | |
commit | 381e04771973626375e21b8a2d24d9fd02893f2f (patch) | |
tree | 180e1ee4b7c63cff6c881134ed917d0a506d0399 | |
parent | 71fb91daeeef098cedc04504dba16feee9833a80 (diff) | |
parent | 48894ec6e0f12d76836fafa6f62cf7731617c675 (diff) |
Merge "Add items, expandableButton support to ListScopeWrapper" into main
2 files changed, 44 insertions, 0 deletions
diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt b/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt index db3711670..6e7be01ec 100644 --- a/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt +++ b/PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt @@ -135,10 +135,19 @@ fun Context.findActivity(): Activity { interface ListScopeWrapper { fun item(key: Any? = null, contentType: Any? = null, content: @Composable () -> Unit) + fun items( + count: Int, + key: ((index: Int) -> Any)? = null, + contentType: (index: Int) -> Any? = { null }, + content: @Composable (index: Int) -> Unit, + ) + fun expandableItems( state: ExpandableState, count: Int, key: ((index: Int) -> Any)? = null, itemContent: @Composable BoxScope.(index: Int) -> Unit, ) + + fun expandableButton(state: ExpandableState, key: Any? = null, content: @Composable () -> Unit) } diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt index 4337a9bd0..f179ac735 100644 --- a/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt +++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt @@ -40,6 +40,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.wear.compose.foundation.ExpandableState import androidx.wear.compose.foundation.ScrollInfoProvider +import androidx.wear.compose.foundation.expandableButton import androidx.wear.compose.foundation.expandableItems import androidx.wear.compose.foundation.lazy.ScalingLazyColumn import androidx.wear.compose.foundation.lazy.ScalingLazyListScope @@ -75,6 +76,15 @@ private class TransformingScopeConverter(private val scope: TransformingLazyColu scope.item { Box(modifier = Modifier.scrollTransform(this)) { content() } } } + override fun items( + count: Int, + key: ((Int) -> Any)?, + contentType: (Int) -> Any?, + content: @Composable ((Int) -> Unit), + ) { + scope.items(count, key, contentType) { content(it) } + } + override fun expandableItems( state: ExpandableState, count: Int, @@ -83,6 +93,14 @@ private class TransformingScopeConverter(private val scope: TransformingLazyColu ) { throw Exception("Expandable Items are not implemented on TLC Yet. Use SLC.") } + + override fun expandableButton( + state: ExpandableState, + key: Any?, + content: @Composable (() -> Unit), + ) { + throw Exception("Expandable Button is not implemented on TLC Yet. Use SLC.") + } } private class ScalingScopeConverter(private val scope: ScalingLazyListScope) : ListScopeWrapper { @@ -90,6 +108,15 @@ private class ScalingScopeConverter(private val scope: ScalingLazyListScope) : L scope.item { content() } } + override fun items( + count: Int, + key: ((Int) -> Any)?, + contentType: (Int) -> Any?, + content: @Composable ((Int) -> Unit), + ) { + scope.items(count, key) { content(it) } + } + override fun expandableItems( state: ExpandableState, count: Int, @@ -98,6 +125,14 @@ private class ScalingScopeConverter(private val scope: ScalingLazyListScope) : L ) { scope.expandableItems(state, count, key, itemContent) } + + override fun expandableButton( + state: ExpandableState, + key: Any?, + content: @Composable (() -> Unit), + ) { + scope.expandableButton(state, key, content) + } } /** |