Skip to content

Commit f79b3ed

Browse files
committed
Migrate "Check for spatial capabilities" to snippets
1 parent 26bda83 commit f79b3ed

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

xr/src/main/java/com/example/xr/compose/SpatialCapabilities.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,17 @@
1717
package com.example.xr.compose
1818

1919
import androidx.compose.runtime.Composable
20+
import androidx.compose.ui.unit.dp
2021
import androidx.xr.compose.platform.LocalSpatialCapabilities
22+
import androidx.xr.compose.spatial.Subspace
23+
import androidx.xr.compose.subspace.SpatialPanel
24+
import androidx.xr.compose.subspace.layout.SubspaceModifier
25+
import androidx.xr.compose.subspace.layout.fillMaxHeight
26+
import androidx.xr.compose.subspace.layout.width
27+
import androidx.xr.scenecore.Session
28+
import androidx.xr.scenecore.SpatialCapabilities
29+
import androidx.xr.scenecore.addSpatialCapabilitiesChangedListener
30+
import androidx.xr.scenecore.getSpatialCapabilities
2131

2232
@Composable
2333
private fun SupportingInfoPanel() {}
@@ -38,3 +48,25 @@ private fun SpatialCapabilitiesCheck() {
3848
val spatialAudioEnabled = LocalSpatialCapabilities.current.isSpatialAudioEnabled
3949
// [END androidxr_compose_checkSpatialCapabilities]
4050
}
51+
52+
@Composable
53+
private fun checkSpatialUiEnabled() {
54+
// [START androidxr_compose_checkSpatialUiEnabled]
55+
if (LocalSpatialCapabilities.current.isSpatialUiEnabled) {
56+
Subspace {
57+
SpatialPanel(
58+
modifier = SubspaceModifier
59+
.width(1488.dp)
60+
.fillMaxHeight()
61+
) {
62+
AppContent()
63+
}
64+
}
65+
} else {
66+
AppContent()
67+
}
68+
// [END androidxr_compose_checkSpatialUiEnabled]
69+
}
70+
71+
@Composable
72+
private fun AppContent() {}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.example.xr.scenecore
2+
3+
import androidx.xr.scenecore.Session
4+
import androidx.xr.scenecore.SpatialCapabilities
5+
import androidx.xr.scenecore.getSpatialCapabilities
6+
7+
fun checkMultipleCapabilities(xrSession: Session) {
8+
// [START androidxr_compose_checkMultipleCapabilities]
9+
// Example 1: check if enabling passthrough mode is allowed
10+
if (xrSession.getSpatialCapabilities().hasCapability(
11+
SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL)) {
12+
xrSession.spatialEnvironment.setPassthroughOpacityPreference(0f)
13+
}
14+
// Example 2: multiple capability flags can be checked simultaneously:
15+
if (xrSession.getSpatialCapabilities().hasCapability(
16+
SpatialCapabilities.SPATIAL_CAPABILITY_PASSTHROUGH_CONTROL and
17+
SpatialCapabilities.SPATIAL_CAPABILITY_3D_CONTENT)) {
18+
// ...
19+
}
20+
// [END androidxr_compose_checkMultipleCapabilities]
21+
}

0 commit comments

Comments
 (0)