Skip to content

Commit 62d7324

Browse files
committed
Extracted new composible for permission denied
1 parent c316594 commit 62d7324

File tree

1 file changed

+37
-19
lines changed
  • samples/camera/camerax/src/main/java/com/example/platform/camerax/basic

1 file changed

+37
-19
lines changed

samples/camera/camerax/src/main/java/com/example/platform/camerax/basic/CameraXBasic.kt

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -154,25 +154,43 @@ private fun ContentWithPermissionHandling(
154154
}
155155
}
156156

157-
is PermissionStatus.Denied -> {
158-
Column(
159-
modifier = Modifier
160-
.fillMaxSize()
161-
.padding(16.dp),
162-
horizontalAlignment = Alignment.CenterHorizontally,
163-
verticalArrangement = Arrangement.Center,
164-
) {
165-
val textToShow = if (cameraPermissionState.status.shouldShowRationale) {
166-
"The camera is needed to take pictures. Please grant the permission."
167-
} else {
168-
"Camera permission is required to use this feature."
169-
}
170-
Text(text = textToShow)
171-
Spacer(modifier = Modifier.height(8.dp))
172-
Button(onClick = { cameraPermissionState.launchPermissionRequest() }) {
173-
Text("Request Permission")
174-
}
175-
}
157+
is PermissionStatus.Denied -> CameraPermissionDeniedView(
158+
cameraPermissionState.status,
159+
cameraPermissionState,
160+
)
161+
}
162+
}
163+
164+
/**
165+
* Composable function that displays a message when camera permission is denied.
166+
*
167+
* It provides an option to request the permission again.
168+
*
169+
* @param status The current [PermissionStatus] of the camera permission.
170+
* @param cameraPermissionState The [PermissionState] for the camera permission, used to request permission again.
171+
*/
172+
@Composable
173+
@OptIn(ExperimentalPermissionsApi::class)
174+
private fun CameraPermissionDeniedView(
175+
status: PermissionStatus,
176+
cameraPermissionState: PermissionState,
177+
) {
178+
Column(
179+
modifier = Modifier
180+
.fillMaxSize()
181+
.padding(16.dp),
182+
horizontalAlignment = Alignment.CenterHorizontally,
183+
verticalArrangement = Arrangement.Center,
184+
) {
185+
val textToShow = if (status.shouldShowRationale) {
186+
"The camera is needed to take pictures. Please grant the permission."
187+
} else {
188+
"Camera permission is required to use this feature."
189+
}
190+
Text(text = textToShow)
191+
Spacer(modifier = Modifier.height(8.dp))
192+
Button(onClick = { cameraPermissionState.launchPermissionRequest() }) {
193+
Text("Request Permission")
176194
}
177195
}
178196
}

0 commit comments

Comments
 (0)