-
public final class PermissionFlowKt
-
-
Method Summary
Modifier and Type Method Description final static State<PermissionState>rememberPermissionState(String permission)Creates a PermissionState for a permission that is remembered across compositions. final static State<MultiplePermissionState>rememberMultiplePermissionState(String permissions)Creates a MultiplePermissionState for a multiple permissions that is remembered across compositions. final static ManagedActivityResultLauncher<Array<String>, Map<String, Boolean>>rememberPermissionFlowRequestLauncher(Function1<Map<String, Boolean>, Unit> onResult)Creates a ManagedActivityResultLauncher that is tied with PermissionFlow APIs and remembered across recompositions. -
-
Method Detail
-
rememberPermissionState
@Composable() final static State<PermissionState> rememberPermissionState(String permission)
Creates a PermissionState for a permission that is remembered across compositions.
Example:
@Composable fun PermissionDemo() { val state by rememberPermissionState(Manifest.permission.CAMERA) if (state.isGranted) { // Render something } else { // Render something else } }- Parameters:
permission- The permission to observe.
-
rememberMultiplePermissionState
@Composable() final static State<MultiplePermissionState> rememberMultiplePermissionState(String permissions)
Creates a MultiplePermissionState for a multiple permissions that is remembered across compositions.
Example:
@Composable fun PermissionDemo() { val state by rememberMultiplePermissionState( Manifest.permission.CAMERA Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_CONTACTS ) if (state.allGranted) { // Render something } val grantedPermissions = state.grantedPermissions // Do something with `grantedPermissions` val deniedPermissions = state.deniedPermissions // Do something with `deniedPermissions` }- Parameters:
permissions- The list of permissions to observe.
-
rememberPermissionFlowRequestLauncher
@Composable() final static ManagedActivityResultLauncher<Array<String>, Map<String, Boolean>> rememberPermissionFlowRequestLauncher(Function1<Map<String, Boolean>, Unit> onResult)
Creates a ManagedActivityResultLauncher that is tied with PermissionFlow APIs and remembered across recompositions.
Example:
@Composable fun DemoPermissionLaunch() { val permissionLauncher = rememberPermissionFlowRequestLauncher() Button(onClick = { permissionLauncher.launch(Manifest.permission.CAMERA) }) { Text("Launch Camera Permission Request") } }Make sure to use ManagedActivityResultLauncher.launch method inside callback or a side effect and not directly in the compose scope. Otherwise, it'll be invoked across recompositions.
- Parameters:
onResult- The callback to invoke when the result is received.
-
-
-
-