Skip to content

Commit 88cbc37

Browse files
committed
Add LocalAnimateBoundsScope back to all layouts
1 parent 1b28dd6 commit 88cbc37

File tree

2 files changed

+84
-62
lines changed

2 files changed

+84
-62
lines changed

feature/results/src/main/java/com/android/developers/androidify/customize/CustomizeExportScreen.kt

Lines changed: 72 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import androidx.compose.ui.draw.dropShadow
6363
import androidx.compose.ui.graphics.Color
6464
import androidx.compose.ui.graphics.shadow.Shadow
6565
import androidx.compose.ui.graphics.vector.ImageVector
66+
import androidx.compose.ui.layout.LookaheadScope
6667
import androidx.compose.ui.platform.LocalContext
6768
import androidx.compose.ui.res.stringResource
6869
import androidx.compose.ui.res.vectorResource
@@ -75,6 +76,7 @@ import com.android.developers.androidify.results.PermissionRationaleDialog
7576
import com.android.developers.androidify.results.R
7677
import com.android.developers.androidify.results.shareImage
7778
import com.android.developers.androidify.theme.AndroidifyTheme
79+
import com.android.developers.androidify.theme.LocalAnimateBoundsScope
7880
import com.android.developers.androidify.theme.components.AboutButton
7981
import com.android.developers.androidify.theme.components.AndroidifyTopAppBar
8082
import com.android.developers.androidify.theme.components.PrimaryButton
@@ -266,6 +268,7 @@ private fun CustomizeExportContents(
266268
)
267269
}
268270
}
271+
269272
when (layoutType) {
270273
CustomizeExportLayoutType.Medium -> CustomizeExportScreenScaffold(
271274
snackbarHostState,
@@ -318,29 +321,34 @@ private fun CustomizeExportLayoutCompact(
318321
toolSelector: ToolSelectorComposable,
319322
actionButtons: @Composable (Modifier) -> Unit,
320323
) {
321-
Column(
322-
modifier = Modifier
323-
.fillMaxSize()
324-
.padding(paddingValues),
325-
horizontalAlignment = Alignment.CenterHorizontally,
326-
verticalArrangement = Arrangement.SpaceBetween,
327-
) {
328-
Box(
329-
modifier = Modifier
330-
.weight(1f, fill = true),
331-
contentAlignment = Alignment.Center,
332-
) {
333-
imageResult(
334-
state.exportImageCanvas,
335-
)
324+
LookaheadScope {
325+
CompositionLocalProvider(LocalAnimateBoundsScope provides this) {
326+
327+
Column(
328+
modifier = Modifier
329+
.fillMaxSize()
330+
.padding(paddingValues),
331+
horizontalAlignment = Alignment.CenterHorizontally,
332+
verticalArrangement = Arrangement.SpaceBetween,
333+
) {
334+
Box(
335+
modifier = Modifier
336+
.weight(1f, fill = true),
337+
contentAlignment = Alignment.Center,
338+
) {
339+
imageResult(
340+
state.exportImageCanvas,
341+
)
342+
}
343+
Spacer(modifier = Modifier.height(16.dp))
344+
toolSelector(Modifier, true)
345+
Spacer(modifier = Modifier.height(16.dp))
346+
toolDetail(Modifier, true)
347+
Spacer(modifier = Modifier.height(16.dp))
348+
actionButtons(Modifier)
349+
Spacer(modifier = Modifier.height(24.dp))
350+
}
336351
}
337-
Spacer(modifier = Modifier.height(16.dp))
338-
toolSelector(Modifier, true)
339-
Spacer(modifier = Modifier.height(16.dp))
340-
toolDetail(Modifier, true)
341-
Spacer(modifier = Modifier.height(16.dp))
342-
actionButtons(Modifier)
343-
Spacer(modifier = Modifier.height(24.dp))
344352
}
345353
}
346354

@@ -353,50 +361,54 @@ private fun CustomizeExportLayoutMedium(
353361
toolSelector: ToolSelectorComposable,
354362
actionButtons: @Composable (Modifier) -> Unit,
355363
) {
356-
Row(
357-
Modifier
358-
.fillMaxSize()
359-
.padding(paddingValues),
360-
verticalAlignment = Alignment.CenterVertically,
361-
horizontalArrangement = Arrangement.SpaceBetween,
362-
) {
363-
Box(
364-
modifier = Modifier.weight(0.6f),
365-
contentAlignment = Alignment.Center,
366-
) {
367-
imageResult(
368-
state.exportImageCanvas,
369-
)
370-
}
371-
Column(
372-
Modifier
373-
.weight(0.4f)
374-
.fillMaxHeight(),
375-
horizontalAlignment = Alignment.CenterHorizontally,
376-
verticalArrangement = Arrangement.SpaceBetween,
377-
) {
364+
LookaheadScope {
365+
CompositionLocalProvider(LocalAnimateBoundsScope provides this) {
378366
Row(
379367
Modifier
380-
.weight(1f)
381-
.fillMaxSize(),
382-
horizontalArrangement = Arrangement.SpaceAround,
368+
.fillMaxSize()
369+
.padding(paddingValues),
383370
verticalAlignment = Alignment.CenterVertically,
384-
371+
horizontalArrangement = Arrangement.SpaceBetween,
385372
) {
386-
Box(modifier = Modifier.weight(1f)) {
387-
toolDetail(Modifier.align(Alignment.CenterEnd), false)
373+
Box(
374+
modifier = Modifier.weight(0.6f),
375+
contentAlignment = Alignment.Center,
376+
) {
377+
imageResult(
378+
state.exportImageCanvas,
379+
)
380+
}
381+
Column(
382+
Modifier
383+
.weight(0.4f)
384+
.fillMaxHeight(),
385+
horizontalAlignment = Alignment.CenterHorizontally,
386+
verticalArrangement = Arrangement.SpaceBetween,
387+
) {
388+
Row(
389+
Modifier
390+
.weight(1f)
391+
.fillMaxSize(),
392+
horizontalArrangement = Arrangement.SpaceAround,
393+
verticalAlignment = Alignment.CenterVertically,
394+
395+
) {
396+
Box(modifier = Modifier.weight(1f)) {
397+
toolDetail(Modifier.align(Alignment.CenterEnd), false)
398+
}
399+
Spacer(modifier = Modifier.size(16.dp))
400+
toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false)
401+
Spacer(modifier = Modifier.size(16.dp))
402+
}
403+
Spacer(modifier = Modifier.size(16.dp))
404+
actionButtons(
405+
Modifier
406+
.align(Alignment.End)
407+
.padding(end = 16.dp),
408+
)
409+
Spacer(modifier = Modifier.size(24.dp))
388410
}
389-
Spacer(modifier = Modifier.size(16.dp))
390-
toolSelector(Modifier.requiredSizeIn(minWidth = 56.dp), false)
391-
Spacer(modifier = Modifier.size(16.dp))
392411
}
393-
Spacer(modifier = Modifier.size(16.dp))
394-
actionButtons(
395-
Modifier
396-
.align(Alignment.End)
397-
.padding(end = 16.dp),
398-
)
399-
Spacer(modifier = Modifier.size(24.dp))
400412
}
401413
}
402414
}

feature/results/src/main/java/com/android/developers/androidify/customize/xr/CustomizeExportScreenSpatial.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ import androidx.compose.foundation.layout.size
2424
import androidx.compose.material3.MaterialTheme
2525
import androidx.compose.material3.SnackbarHostState
2626
import androidx.compose.runtime.Composable
27+
import androidx.compose.runtime.CompositionLocalProvider
2728
import androidx.compose.ui.Alignment
2829
import androidx.compose.ui.Modifier
2930
import androidx.compose.ui.graphics.Color
31+
import androidx.compose.ui.layout.LookaheadScope
3032
import androidx.compose.ui.unit.dp
3133
import androidx.xr.compose.spatial.ContentEdge
3234
import androidx.xr.compose.spatial.Orbiter
@@ -46,6 +48,7 @@ import com.android.developers.androidify.customize.CustomizeExportState
4648
import com.android.developers.androidify.customize.ExportImageCanvas
4749
import com.android.developers.androidify.customize.ToolDetailComposable
4850
import com.android.developers.androidify.customize.ToolSelectorComposable
51+
import com.android.developers.androidify.theme.LocalAnimateBoundsScope
4952
import com.android.developers.androidify.xr.DisableSharedTransition
5053
import com.android.developers.androidify.xr.MainPanelWorkaround
5154
import com.android.developers.androidify.xr.SquiggleBackgroundSubspace
@@ -94,8 +97,15 @@ fun CustomizeExportLayoutSpatial(
9497
topBar = {},
9598
containerColor = Color.Transparent,
9699
) {
97-
Box(Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
98-
imageResult(state.exportImageCanvas)
100+
LookaheadScope {
101+
CompositionLocalProvider(LocalAnimateBoundsScope provides this) {
102+
Box(
103+
Modifier.fillMaxSize(),
104+
contentAlignment = Alignment.Center
105+
) {
106+
imageResult(state.exportImageCanvas)
107+
}
108+
}
99109
}
100110
}
101111
}

0 commit comments

Comments
 (0)