Skip to content

Commit 5a9320e

Browse files
committed
Add XR feature enablement flag to CameraViewModel
1 parent 0e742fb commit 5a9320e

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ internal fun CameraLayout(
6868
guideText: @Composable (modifier: Modifier) -> Unit,
6969
guide: @Composable (modifier: Modifier) -> Unit,
7070
rearCameraButton: @Composable (modifier: Modifier) -> Unit,
71+
xrEnabled: Boolean = false,
7172
supportsTabletop: Boolean = supportsTabletop(),
7273
isTabletop: Boolean = false,
7374
) {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ fun CameraPreviewScreen(
147147
toggleRearCameraFeature = { viewModel.toggleRearDisplayFeature(activity) },
148148
isRearCameraEnabled = uiState.isRearCameraActive,
149149
cameraSessionId = uiState.cameraSessionId,
150+
xrEnabled = uiState.xrEnabled,
150151
)
151152
}
152153
} else {
@@ -203,6 +204,7 @@ fun StatelessCameraPreviewContent(
203204
onAnimateZoom: (Float) -> Unit,
204205
requestCaptureImage: () -> Unit,
205206
modifier: Modifier = Modifier,
207+
xrEnabled: Boolean = false,
206208
foldingFeature: FoldingFeature? = null,
207209
shouldShowRearCameraFeature: () -> Boolean = { false },
208210
toggleRearCameraFeature: () -> Unit = {},
@@ -276,6 +278,7 @@ fun StatelessCameraPreviewContent(
276278
aspectRatio = calculateCorrectAspectRatio(size.height, size.width, aspectRatio)
277279
}
278280
},
281+
xrEnabled = xrEnabled,
279282
)
280283
}
281284

@@ -303,6 +306,7 @@ private fun CameraPreviewContent(
303306
shouldShowRearCameraFeature: () -> Boolean = { false },
304307
toggleRearCameraFeature: () -> Unit = {},
305308
isRearCameraEnabled: Boolean = false,
309+
xrEnabled: Boolean = false,
306310
) {
307311
val scope = rememberCoroutineScope()
308312
val zoomState = remember(cameraSessionId) {
@@ -341,6 +345,7 @@ private fun CameraPreviewContent(
341345
shouldShowRearCameraFeature = shouldShowRearCameraFeature,
342346
toggleRearCameraFeature = toggleRearCameraFeature,
343347
isRearCameraEnabled = isRearCameraEnabled,
348+
xrEnabled = xrEnabled,
344349
modifier = modifier,
345350
)
346351
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import androidx.lifecycle.asFlow
5050
import androidx.lifecycle.viewModelScope
5151
import androidx.window.layout.FoldingFeature
5252
import androidx.window.layout.WindowInfoTracker
53+
import com.android.developers.androidify.data.ConfigProvider
5354
import com.android.developers.androidify.util.LocalFileProvider
5455
import com.google.mlkit.vision.common.InputImage
5556
import com.google.mlkit.vision.pose.PoseDetection
@@ -76,8 +77,9 @@ class CameraViewModel
7677
application: Application,
7778
val localFileProvider: LocalFileProvider,
7879
val rearCameraUseCase: RearCameraUseCase,
80+
configProvider: ConfigProvider,
7981
) : AndroidViewModel(application) {
80-
private var _uiState = MutableStateFlow(CameraUiState())
82+
private var _uiState = MutableStateFlow(CameraUiState(xrEnabled = configProvider.isXrEnabled()))
8183
val uiState: StateFlow<CameraUiState>
8284
get() = _uiState
8385

@@ -351,6 +353,7 @@ data class CameraUiState(
351353
val canFlipCamera: Boolean = true,
352354
val isRearCameraActive: Boolean = false,
353355
val autofocusUiState: AutofocusUiState = AutofocusUiState.Unspecified,
356+
val xrEnabled: Boolean = false,
354357
) {
355358
val zoomOptions = when {
356359
zoomMinRatio <= 0.6f && zoomMaxRatio >= 1f -> listOf(0.6f, 1f)

0 commit comments

Comments
 (0)