permissionLauncher

inline fun ComponentActivity.permissionLauncher(crossinline onSuccess: () -> Unit = {}, crossinline onFailure: () -> Unit = {}): ActivityResultLauncher<Array<String>>

Creates a permission request launcher with typed success/failure callbacks.

This helper simplifies requesting multiple runtime permissions by automatically checking if all requested permissions were granted and invoking the appropriate callback.

Usage

class MainActivity : ComponentActivity() {
private lateinit var permissionLauncher: ActivityResultLauncher<Array<String>>

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

permissionLauncher = permissionLauncher(
onSuccess = {
// All permissions granted
startCameraPreview()
},
onFailure = {
// At least one permission denied
showToast("Camera permission is required")
}
)

// Later, request permissions
permissionLauncher.launch(
arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
)
)
}
}

Return

ActivityResultLauncher that accepts an array of permission strings

Parameters

onSuccess

Callback invoked when ALL requested permissions are granted

onFailure

Callback invoked when ANY permission is denied

See also