Skip to content

Commit b39e2f7

Browse files
committed
Adds more camera screenshot tests
Change-Id: Id322db88b4db0a398f5293a3cbad3f439fa0159e
1 parent 4c90c69 commit b39e2f7

10 files changed

+176
-3
lines changed

feature/camera/src/screenshotTest/java/com/android/developers/androidify/camera/CameraScreenScreenshotTest.kt

Lines changed: 176 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,200 @@
1515
*/
1616
package com.android.developers.androidify.camera
1717

18+
import androidx.compose.foundation.background
1819
import androidx.compose.foundation.layout.Box
20+
import androidx.compose.foundation.layout.fillMaxSize
1921
import androidx.compose.runtime.Composable
22+
import androidx.compose.ui.Modifier
23+
import androidx.compose.ui.graphics.Brush
24+
import androidx.compose.ui.graphics.Color
2025
import androidx.compose.ui.tooling.preview.Preview
26+
import androidx.window.layout.FoldingFeature
2127
import com.android.developers.androidify.theme.AndroidifyTheme
2228

2329
class CameraScreenScreenshotTest {
2430

25-
@Preview(showBackground = true)
31+
// Helper mock for FoldingFeature
32+
private class MockFoldingFeature(
33+
override val state: FoldingFeature.State,
34+
override val orientation: FoldingFeature.Orientation,
35+
override val occlusionType: FoldingFeature.OcclusionType = FoldingFeature.OcclusionType.NONE,
36+
override val isSeparating: Boolean = true,
37+
override val bounds: android.graphics.Rect = android.graphics.Rect()
38+
) : FoldingFeature
39+
40+
@Preview(showBackground = true, name = "Default State")
2641
@Composable
2742
fun CameraScreenScreenshot() {
2843
AndroidifyTheme {
2944
StatelessCameraPreviewContent(
30-
viewfinder = { modifier -> Box(modifier) },
45+
viewfinder = { modifier ->
46+
Box(
47+
modifier.fillMaxSize().background(
48+
Brush.verticalGradient(
49+
colors = listOf(
50+
Color.Red,
51+
Color.Green,
52+
Color.Blue
53+
)
54+
)
55+
)
56+
)
57+
},
58+
detectedPose = true,
59+
canFlipCamera = true,
60+
requestFlipCamera = {},
61+
defaultZoomOptions = listOf(1f),
62+
zoomLevel = { 1f },
63+
onChangeZoomLevel = {},
64+
requestCaptureImage = {},
65+
)
66+
}
67+
}
68+
69+
@Preview(showBackground = true, name = "Pose Not Detected")
70+
@Composable
71+
fun CameraScreenPoseNotDetectedScreenshot() {
72+
AndroidifyTheme {
73+
StatelessCameraPreviewContent(
74+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
75+
detectedPose = false, // Changed
76+
canFlipCamera = true,
77+
requestFlipCamera = {},
78+
defaultZoomOptions = listOf(1f),
79+
zoomLevel = { 1f },
80+
onChangeZoomLevel = {},
81+
requestCaptureImage = {},
82+
)
83+
}
84+
}
85+
86+
@Preview(showBackground = true, name = "Cannot Flip Camera")
87+
@Composable
88+
fun CameraScreenCannotFlipScreenshot() {
89+
AndroidifyTheme {
90+
StatelessCameraPreviewContent(
91+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
92+
detectedPose = true,
93+
canFlipCamera = false, // Changed
94+
requestFlipCamera = {},
95+
defaultZoomOptions = listOf(1f),
96+
zoomLevel = { 1f },
97+
onChangeZoomLevel = {},
98+
requestCaptureImage = {},
99+
)
100+
}
101+
}
102+
103+
@Preview(showBackground = true, name = "Rear Camera Button (Disabled)")
104+
@Composable
105+
fun CameraScreenRearCamDisabledScreenshot() {
106+
AndroidifyTheme {
107+
StatelessCameraPreviewContent(
108+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
109+
detectedPose = true,
110+
canFlipCamera = true,
111+
requestFlipCamera = {},
112+
defaultZoomOptions = listOf(1f),
113+
zoomLevel = { 1f },
114+
onChangeZoomLevel = {},
115+
requestCaptureImage = {},
116+
shouldShowRearCameraFeature = { true }, // Changed
117+
isRearCameraEnabled = false, // Changed
118+
toggleRearCameraFeature = {},
119+
)
120+
}
121+
}
122+
123+
@Preview(showBackground = true, name = "Rear Camera Button (Enabled)")
124+
@Composable
125+
fun CameraScreenRearCamEnabledScreenshot() {
126+
AndroidifyTheme {
127+
StatelessCameraPreviewContent(
128+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
129+
detectedPose = true,
130+
canFlipCamera = true,
131+
requestFlipCamera = {},
132+
defaultZoomOptions = listOf(1f),
133+
zoomLevel = { 1f },
134+
onChangeZoomLevel = {},
135+
requestCaptureImage = {},
136+
shouldShowRearCameraFeature = { true }, // Changed
137+
isRearCameraEnabled = true, // Changed
138+
toggleRearCameraFeature = {},
139+
)
140+
}
141+
}
142+
143+
@Preview(showBackground = true, name = "Tabletop Mode", widthDp = 800, heightDp = 800)
144+
@Composable
145+
fun CameraScreenTabletopScreenshot() {
146+
val tabletopFoldingFeature = MockFoldingFeature(
147+
state = FoldingFeature.State.HALF_OPENED,
148+
orientation = FoldingFeature.Orientation.HORIZONTAL
149+
)
150+
AndroidifyTheme {
151+
StatelessCameraPreviewContent(
152+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
31153
detectedPose = true,
32154
canFlipCamera = true,
33155
requestFlipCamera = {},
34156
defaultZoomOptions = listOf(1f),
35157
zoomLevel = { 1f },
36158
onChangeZoomLevel = {},
37-
requestCaptureImage = {}
159+
requestCaptureImage = {},
160+
foldingFeature = tabletopFoldingFeature // Changed
38161
)
39162
}
40163
}
164+
165+
@Preview(showBackground = true, name = "Medium Horizontal", widthDp = 840, heightDp = 480)
166+
@Composable
167+
fun CameraScreenMediumHorizontalScreenshot() {
168+
AndroidifyTheme {
169+
StatelessCameraPreviewContent(
170+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
171+
detectedPose = true,
172+
canFlipCamera = true,
173+
requestFlipCamera = {},
174+
defaultZoomOptions = listOf(1f),
175+
zoomLevel = { 1f },
176+
onChangeZoomLevel = {},
177+
requestCaptureImage = {},
178+
)
179+
}
180+
}
181+
182+
@Preview(showBackground = true, name = "Subcompact Horizontal", widthDp = 600, heightDp = 400)
183+
@Composable
184+
fun CameraScreenSubcompactHorizontalScreenshot() {
185+
AndroidifyTheme {
186+
StatelessCameraPreviewContent(
187+
viewfinder = { modifier -> ViewfinderPlaceholder(modifier) },
188+
detectedPose = true,
189+
canFlipCamera = true,
190+
requestFlipCamera = {},
191+
defaultZoomOptions = listOf(1f),
192+
zoomLevel = { 1f },
193+
onChangeZoomLevel = {},
194+
requestCaptureImage = {},
195+
)
196+
}
197+
}
198+
199+
// Helper composable for placeholder viewfinder
200+
@Composable
201+
private fun ViewfinderPlaceholder(modifier: Modifier = Modifier) {
202+
Box(
203+
modifier.fillMaxSize().background(
204+
Brush.verticalGradient(
205+
colors = listOf(
206+
Color(0xFFFF0000),
207+
Color(0xFF7D299B),
208+
Color(0xFF1854CC)
209+
)
210+
)
211+
)
212+
)
213+
}
41214
}

0 commit comments

Comments
 (0)