summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vignesh Ramanathan <vigneshrsastra@google.com> 2025-02-10 04:36:47 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-10 04:36:47 -0800
commit381e04771973626375e21b8a2d24d9fd02893f2f (patch)
tree180e1ee4b7c63cff6c881134ed917d0a506d0399
parent71fb91daeeef098cedc04504dba16feee9833a80 (diff)
parent48894ec6e0f12d76836fafa6f62cf7731617c675 (diff)
Merge "Add items, expandableButton support to ListScopeWrapper" into main
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/ScrollableScreen.kt9
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt35
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)
+ }
}
/**