Package 

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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.