Bug fix with fillMaxSize/Width/Height in glance-wear-tiles
When assigning the top level container with fillMaxSize/Width/Heightmodifier in content composbale, nothing is displayed on the screen. The reason is we added a extra container Box as root during composition, which has default dimension modifier as "WRAP". A "EXPAND" Box/Column/Row in a "WRAP" root results in zero dimension.
Relnote: Bug fix with fillMaxSize/Width/Height in glance-wear-tiles
Test: sample demo
Change-Id: I0a39f94b75561d17410c6d164701625a2e61ad54
diff --git a/glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt b/glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt
index a00c325..44c7c9e 100644
--- a/glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt
+++ b/glance/glance-wear-tiles/integration-tests/demos/src/main/java/androidx/glance/wear/tiles/demos/HelloTileService.kt
@@ -17,15 +17,18 @@
package androidx.glance.wear.tiles.demos
import androidx.compose.runtime.Composable
+import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.glance.GlanceModifier
import androidx.glance.Image
import androidx.glance.ImageProvider
+import androidx.glance.background
import androidx.glance.layout.Alignment
import androidx.glance.layout.Column
import androidx.glance.layout.ContentScale
import androidx.glance.layout.Spacer
+import androidx.glance.layout.fillMaxSize
import androidx.glance.layout.height
import androidx.glance.layout.size
import androidx.glance.text.FontWeight
@@ -38,7 +41,9 @@
@Composable
override fun Content() {
Column(
- horizontalAlignment = Alignment.CenterHorizontally
+ modifier = GlanceModifier.fillMaxSize().background(Color.DarkGray),
+ horizontalAlignment = Alignment.CenterHorizontally,
+ verticalAlignment = Alignment.CenterVertically
) {
Image(
provider = ImageProvider(R.mipmap.ic_launcher),
diff --git a/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/GlanceTileService.kt b/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/GlanceTileService.kt
index 3d2ba2d..365d1b0 100644
--- a/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/GlanceTileService.kt
+++ b/glance/glance-wear-tiles/src/androidMain/kotlin/androidx/glance/wear/tiles/GlanceTileService.kt
@@ -28,8 +28,10 @@
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.Recomposer
import androidx.glance.Applier
+import androidx.glance.GlanceModifier
import androidx.glance.layout.EmittableBox
import androidx.glance.LocalState
+import androidx.glance.layout.fillMaxSize
import androidx.glance.state.GlanceState
import androidx.glance.state.GlanceStateDefinition
import androidx.lifecycle.Lifecycle
@@ -153,6 +155,7 @@
): CompositionResult =
coroutineScope {
val root = EmittableBox()
+ root.modifier = GlanceModifier.fillMaxSize()
val applier = Applier(root)
val recomposer = Recomposer(currentCoroutineContext())
val composition = Composition(applier, recomposer)