Lukas Lechner
lifecycleScope
viewModelScope
Desmond Teo
Erik
Giorgos Neokleous
launchWhenXXXX
flosch
suspendCancellableCoroutine
suspend fun Fragment.suspendingPermissionRequest( permission: String ): Boolean = suspendCancellableCoroutine<Boolean> { continuation -> val requestPermission = registerForActivityResult(ActivityResultContracts.RequestPermission()) { result -> continuation.resume(result) } requestPermission.launch(permission) continuation.invokeOnCancellation { requestPermission.unregister() } } class SomeFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewLifecycleOwner.lifecycleScope.launch { val granted = suspendingPermissionRequest(WRITE_EXTERNAL_STORAGE) } } }
dekans
onPrepareMenu
A modern programming language that makes developers happier.