Khanzada Kashif
10/14/2024, 11:47 AM@Composable
actual fun FetchGalleryReadPermission(state: (Boolean) -> Unit) {
val permission = remember {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
Manifest.permission.READ_EXTERNAL_STORAGE
} else {
Manifest.permission.READ_MEDIA_IMAGES
}
}
val context = LocalContext.current
val permissionState by remember {
mutableStateOf(
ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED
)
}
val launcher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestPermission()
) { isGranted ->
state(isGranted)
}
LaunchedEffect(permissionState) {
if (!permissionState) {
launcher.launch(permission)
} else {
state(true)
}
}
}
youssef hachicha
10/23/2024, 8:38 AMKhanzada Kashif
10/23/2024, 8:40 AM