Skip to content

Commit 497a4c2

Browse files
committed
add camera permission check
1 parent aff8f5f commit 497a4c2

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

firebase-ai/app/src/main/java/com/google/firebase/quickstart/ai/ui/HybridInferenceScreen.kt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.google.firebase.quickstart.ai.ui
22

3+
import android.Manifest
4+
import android.content.pm.PackageManager
35
import androidx.activity.compose.rememberLauncherForActivityResult
46
import androidx.activity.result.contract.ActivityResultContracts
7+
import androidx.core.content.ContextCompat
58
import androidx.compose.foundation.layout.Arrangement
69
import androidx.compose.foundation.layout.Box
710
import androidx.compose.foundation.layout.Column
@@ -54,11 +57,25 @@ fun HybridInferenceScreen(
5457
}
5558
)
5659

60+
val permissionLauncher = rememberLauncherForActivityResult(
61+
ActivityResultContracts.RequestPermission()
62+
) { isGranted ->
63+
if (isGranted) {
64+
cameraLauncher.launch(null)
65+
}
66+
}
67+
5768
Scaffold(
5869
floatingActionButton = {
5970
FloatingActionButton(
6071
onClick = {
61-
cameraLauncher.launch(null)
72+
val permissionCheckResult =
73+
ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA)
74+
if (permissionCheckResult == PackageManager.PERMISSION_GRANTED) {
75+
cameraLauncher.launch(null)
76+
} else {
77+
permissionLauncher.launch(Manifest.permission.CAMERA)
78+
}
6279
},
6380
containerColor = MaterialTheme.colorScheme.primary,
6481
contentColor = MaterialTheme.colorScheme.onPrimary

0 commit comments

Comments
 (0)