Skip to content

Commit fe20b61

Browse files
authored
Merge pull request #203 from wintezz/fix/androidify-195-build
Fixes build after `androidx.xr.compose:compose` update to `1.0.0-alpha11`
2 parents 1aeb832 + 513c8a8 commit fe20b61

9 files changed

Lines changed: 62 additions & 174 deletions

File tree

core/xr/src/main/java/com/android/developers/androidify/xr/SpatialUiModes.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
2727
import androidx.compose.ui.res.stringResource
2828
import androidx.compose.ui.res.vectorResource
2929
import androidx.compose.ui.unit.dp
30+
import androidx.xr.compose.platform.LocalSession
31+
import androidx.xr.compose.platform.LocalSpatialCapabilities
32+
import androidx.xr.compose.platform.LocalSpatialConfiguration
3033
import androidx.xr.scenecore.scene
3134

3235
/** Check if the device is XR-enabled, but is not yet rendering spatial UI. */

core/xr/src/main/java/com/android/developers/androidify/xr/XrPreview.kt

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -15,111 +15,9 @@
1515
*/
1616
package com.android.developers.androidify.xr
1717

18-
import androidx.compose.runtime.Composable
19-
import androidx.compose.runtime.CompositionLocalProvider
20-
import androidx.compose.runtime.ProvidableCompositionLocal
21-
import androidx.compose.runtime.compositionLocalWithComputedDefaultOf
2218
import androidx.compose.ui.tooling.preview.Devices.PIXEL_7_PRO
2319
import androidx.compose.ui.tooling.preview.Devices.PIXEL_TABLET
2420
import androidx.compose.ui.tooling.preview.Preview
25-
import androidx.xr.compose.platform.SpatialCapabilities
26-
import androidx.xr.compose.platform.SpatialConfiguration
27-
import androidx.xr.runtime.Session
28-
29-
/**
30-
* Preview for a layout that could go into Full Space Mode.
31-
*/
32-
@Composable
33-
fun SupportsFullSpaceModeRequestProvider(contents: @Composable () -> Unit) {
34-
CompositionLocalProvider(LocalSpatialConfiguration provides HasSpatialFeatureSpatialConfiguration) {
35-
CompositionLocalProvider(LocalSpatialCapabilities provides SupportsFullSpaceModeRequestCapabilities) {
36-
CompositionLocalProvider(LocalSession provides null) {
37-
contents()
38-
}
39-
}
40-
}
41-
}
42-
43-
private object HasSpatialFeatureSpatialConfiguration : SpatialConfiguration {
44-
override val hasXrSpatialFeature: Boolean
45-
get() = true
46-
}
47-
48-
private object SupportsFullSpaceModeRequestCapabilities : SpatialCapabilities {
49-
override val isSpatialUiEnabled: Boolean
50-
get() = false
51-
override val isContent3dEnabled: Boolean
52-
get() = true
53-
override val isAppEnvironmentEnabled: Boolean
54-
get() = true
55-
override val isPassthroughControlEnabled: Boolean
56-
get() = true
57-
override val isSpatialAudioEnabled: Boolean
58-
get() = true
59-
}
60-
61-
/**
62-
* Workaround composition locals for b/441901724.
63-
* Any composable referencing XR composition locals will fail to preview instead of gracefully
64-
* degrading due to failing to resolve XR capabilities.
65-
*
66-
* This can be removed when the default for XR capabilities under the preview is no capabilities
67-
* instead of throwing an exception.
68-
* */
69-
val LocalSpatialCapabilities: ProvidableCompositionLocal<SpatialCapabilities> =
70-
compositionLocalWithComputedDefaultOf {
71-
runCatching {
72-
androidx.xr.compose.platform.LocalSpatialCapabilities.currentValue
73-
}.getOrDefault(NoSpatialCapabilities)
74-
}
75-
76-
/**
77-
* Workaround composition locals for b/441901724.
78-
* Any composable referencing XR composition locals will fail to preview instead of gracefully
79-
* degrading due to failing to resolve XR capabilities.
80-
*
81-
* This can be removed when the default for XR capabilities under the preview is no capabilities
82-
* instead of throwing an exception.
83-
* */
84-
val LocalSpatialConfiguration: ProvidableCompositionLocal<SpatialConfiguration> =
85-
compositionLocalWithComputedDefaultOf {
86-
runCatching {
87-
androidx.xr.compose.platform.LocalSpatialConfiguration.currentValue
88-
}.getOrDefault(LacksSpatialFeatureSpatialConfiguration)
89-
}
90-
91-
/**
92-
* Workaround composition locals for b/441901724.
93-
* Any composable referencing XR composition locals will fail to preview instead of gracefully
94-
* degrading due to failing to resolve XR capabilities.
95-
*
96-
* This can be removed when the default for XR capabilities under the preview is no capabilities
97-
* instead of throwing an exception.
98-
* */
99-
val LocalSession: ProvidableCompositionLocal<Session?> =
100-
compositionLocalWithComputedDefaultOf {
101-
runCatching {
102-
androidx.xr.compose.platform.LocalSession.currentValue
103-
}.getOrNull()
104-
}
105-
106-
private object NoSpatialCapabilities : SpatialCapabilities {
107-
override val isSpatialUiEnabled: Boolean
108-
get() = false
109-
override val isContent3dEnabled: Boolean
110-
get() = false
111-
override val isAppEnvironmentEnabled: Boolean
112-
get() = false
113-
override val isPassthroughControlEnabled: Boolean
114-
get() = false
115-
override val isSpatialAudioEnabled: Boolean
116-
get() = false
117-
}
118-
119-
private object LacksSpatialFeatureSpatialConfiguration : SpatialConfiguration {
120-
override val hasXrSpatialFeature: Boolean
121-
get() = false
122-
}
12321

12422
@Preview(device = PIXEL_TABLET, name = "Android XR (Home Space Mode)")
12523
annotation class XrHomeSpaceMediumPreview

feature/camera/src/main/java/com/android/developers/androidify/camera/CameraLayout.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import androidx.compose.ui.tooling.preview.Preview
5050
import androidx.compose.ui.tooling.preview.PreviewParameter
5151
import androidx.compose.ui.unit.dp
5252
import androidx.lifecycle.compose.LifecycleStartEffect
53+
import androidx.xr.compose.platform.LocalSpatialCapabilities
5354
import com.android.developers.androidify.camera.xr.CameraLayoutSpatial
5455
import com.android.developers.androidify.theme.AndroidifyTheme
5556
import com.android.developers.androidify.theme.TertiaryContainer
@@ -59,7 +60,6 @@ import com.android.developers.androidify.util.allowsFullContent
5960
import com.android.developers.androidify.util.isWidthAtLeastMedium
6061
import com.android.developers.androidify.util.shouldShowTabletopLayout
6162
import com.android.developers.androidify.util.supportsTabletop
62-
import com.android.developers.androidify.xr.LocalSpatialCapabilities
6363

6464
@Composable
6565
internal fun CameraLayout(

feature/creation/src/main/java/com/android/developers/androidify/creation/EditScreenLayoutType.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
package com.android.developers.androidify.creation
1717

1818
import androidx.compose.runtime.Composable
19+
import androidx.xr.compose.platform.LocalSpatialCapabilities
1920
import com.android.developers.androidify.util.areBothWindowDimensionsAtLeastMedium
20-
import com.android.developers.androidify.xr.LocalSpatialCapabilities
2121

2222
enum class EditScreenLayoutType {
2323
Compact,

feature/creation/src/main/java/com/android/developers/androidify/creation/xr/EditScreenHomeSpaceModePreviews.kt

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import com.android.developers.androidify.creation.EditScreen
2323
import com.android.developers.androidify.creation.EditScreenLayoutType
2424
import com.android.developers.androidify.creation.fakeDropBehaviourFactory
2525
import com.android.developers.androidify.theme.SharedElementContextPreview
26-
import com.android.developers.androidify.xr.SupportsFullSpaceModeRequestProvider
2726
import com.android.developers.androidify.xr.XrHomeSpaceCompactPreview
2827
import com.android.developers.androidify.xr.XrHomeSpaceMediumPreview
2928

@@ -32,24 +31,22 @@ import com.android.developers.androidify.xr.XrHomeSpaceMediumPreview
3231
@Composable
3332
private fun EditScreenMediumXrHomeSpaceModePreview() {
3433
SharedElementContextPreview {
35-
SupportsFullSpaceModeRequestProvider {
36-
EditScreen(
37-
snackbarHostState = SnackbarHostState(),
38-
dropBehaviourFactory = fakeDropBehaviourFactory,
39-
onCameraPressed = { },
40-
uiState = CreationState(),
41-
onChooseImageClicked = {},
42-
onPromptOptionSelected = {},
43-
onUndoPressed = {},
44-
onPromptGenerationPressed = {},
45-
onBotColorSelected = {},
46-
onStartClicked = {},
47-
onDropCallback = {},
48-
onBackPressed = {},
49-
onAboutPressed = {},
50-
layoutType = EditScreenLayoutType.Medium,
51-
)
52-
}
34+
EditScreen(
35+
snackbarHostState = SnackbarHostState(),
36+
dropBehaviourFactory = fakeDropBehaviourFactory,
37+
onCameraPressed = { },
38+
uiState = CreationState(),
39+
onChooseImageClicked = {},
40+
onPromptOptionSelected = {},
41+
onUndoPressed = {},
42+
onPromptGenerationPressed = {},
43+
onBotColorSelected = {},
44+
onStartClicked = {},
45+
onDropCallback = {},
46+
onBackPressed = {},
47+
onAboutPressed = {},
48+
layoutType = EditScreenLayoutType.Medium,
49+
)
5350
}
5451
}
5552

@@ -58,23 +55,21 @@ private fun EditScreenMediumXrHomeSpaceModePreview() {
5855
@Composable
5956
private fun EditScreenCompactXrHomeSpaceModePreview() {
6057
SharedElementContextPreview {
61-
SupportsFullSpaceModeRequestProvider {
62-
EditScreen(
63-
snackbarHostState = SnackbarHostState(),
64-
dropBehaviourFactory = fakeDropBehaviourFactory,
65-
onCameraPressed = { },
66-
uiState = CreationState(),
67-
onChooseImageClicked = {},
68-
onPromptOptionSelected = {},
69-
onUndoPressed = {},
70-
onPromptGenerationPressed = {},
71-
onBotColorSelected = {},
72-
onStartClicked = {},
73-
onDropCallback = {},
74-
onBackPressed = {},
75-
onAboutPressed = {},
76-
layoutType = EditScreenLayoutType.Compact,
77-
)
78-
}
58+
EditScreen(
59+
snackbarHostState = SnackbarHostState(),
60+
dropBehaviourFactory = fakeDropBehaviourFactory,
61+
onCameraPressed = { },
62+
uiState = CreationState(),
63+
onChooseImageClicked = {},
64+
onPromptOptionSelected = {},
65+
onUndoPressed = {},
66+
onPromptGenerationPressed = {},
67+
onBotColorSelected = {},
68+
onStartClicked = {},
69+
onDropCallback = {},
70+
onBackPressed = {},
71+
onAboutPressed = {},
72+
layoutType = EditScreenLayoutType.Compact,
73+
)
7974
}
8075
}

feature/home/src/main/java/com/android/developers/androidify/home/HomeScreenMedium.kt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import com.android.developers.androidify.theme.components.AboutButton
3636
import com.android.developers.androidify.theme.components.AndroidifyTopAppBar
3737
import com.android.developers.androidify.util.LargeScreensPreview
3838
import com.android.developers.androidify.xr.RequestFullSpaceIconButton
39-
import com.android.developers.androidify.xr.SupportsFullSpaceModeRequestProvider
4039
import com.android.developers.androidify.xr.XrHomeSpaceMediumPreview
4140
import com.android.developers.androidify.xr.couldRequestFullSpace
4241

@@ -120,15 +119,13 @@ private fun HomeScreenLargeScreensPreview() {
120119
@XrHomeSpaceMediumPreview
121120
@Composable
122121
private fun HomeScreenLargeScreensHomeSpaceModePreview() {
123-
SupportsFullSpaceModeRequestProvider {
124-
SharedElementContextPreview {
125-
HomeScreenContents(
126-
layoutType = HomeScreenLayoutType.Medium,
127-
onClickLetsGo = { },
128-
videoLink = "",
129-
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
130-
onAboutClicked = {},
131-
)
132-
}
122+
SharedElementContextPreview {
123+
HomeScreenContents(
124+
layoutType = HomeScreenLayoutType.Medium,
125+
onClickLetsGo = { },
126+
videoLink = "",
127+
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
128+
onAboutClicked = {},
129+
)
133130
}
134131
}

feature/home/src/main/java/com/android/developers/androidify/home/xr/HomeScreenHomeSpaceModePreviews.kt

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import androidx.compose.runtime.Composable
2020
import com.android.developers.androidify.home.HomeScreenContents
2121
import com.android.developers.androidify.home.HomeScreenLayoutType
2222
import com.android.developers.androidify.theme.SharedElementContextPreview
23-
import com.android.developers.androidify.xr.SupportsFullSpaceModeRequestProvider
2423
import com.android.developers.androidify.xr.XrHomeSpaceCompactPreview
2524
import com.android.developers.androidify.xr.XrHomeSpaceMediumPreview
2625

@@ -29,31 +28,27 @@ import com.android.developers.androidify.xr.XrHomeSpaceMediumPreview
2928
@Composable
3029
private fun HomeScreenMediumXrHomeSpaceModePreview() {
3130
SharedElementContextPreview {
32-
SupportsFullSpaceModeRequestProvider {
33-
HomeScreenContents(
34-
layoutType = HomeScreenLayoutType.Medium,
35-
onClickLetsGo = { },
36-
videoLink = "",
37-
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
38-
onAboutClicked = {},
39-
)
40-
}
31+
HomeScreenContents(
32+
layoutType = HomeScreenLayoutType.Medium,
33+
onClickLetsGo = { },
34+
videoLink = "",
35+
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
36+
onAboutClicked = {},
37+
)
4138
}
4239
}
4340

4441
@ExperimentalMaterial3ExpressiveApi
4542
@XrHomeSpaceCompactPreview
4643
@Composable
4744
private fun HomeScreenCompactXrHomeSpaceModePreview() {
48-
SupportsFullSpaceModeRequestProvider {
49-
SharedElementContextPreview {
50-
HomeScreenContents(
51-
layoutType = HomeScreenLayoutType.Compact,
52-
onClickLetsGo = {},
53-
videoLink = "",
54-
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
55-
onAboutClicked = {},
56-
)
57-
}
45+
SharedElementContextPreview {
46+
HomeScreenContents(
47+
layoutType = HomeScreenLayoutType.Compact,
48+
onClickLetsGo = {},
49+
videoLink = "",
50+
dancingBotLink = "https://services.google.com/fh/files/misc/android_dancing.gif",
51+
onAboutClicked = {},
52+
)
5853
}
5954
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
package com.android.developers.androidify.results
1717

1818
import androidx.compose.runtime.Composable
19+
import androidx.xr.compose.platform.LocalSpatialCapabilities
1920
import com.android.developers.androidify.util.allowsFullContent
20-
import com.android.developers.androidify.xr.LocalSpatialCapabilities
2121

2222
enum class ResultsLayoutType {
2323
Verbose,

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ mlkitSegmentation = "16.0.0-beta1"
7979
playServicesBase = "18.9.0"
8080
timber = "5.0.1"
8181
workRuntimeKtx = "2.10.5"
82-
xr-compose = "1.0.0-alpha07"
82+
xr-compose = "1.0.0-alpha11"
8383

8484
[libraries]
8585
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }

0 commit comments

Comments
 (0)