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
)
)
}
}Content copied to clipboard
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