Permitter

This is to manager permission. By this you can check/request multi/single permission directly from viewModel.
Step 1: Add permission to manifest
<uses-permission android:name="android.permission.CAMERA"/>
Step 2: Check permission
API
suspend fun check(vararg permissions: String): MultiplePermissionsState?
Usage
viewModelScope.launch(Dispatchers.Main) {
val result = permitter.check(android.Manifest.permission.CAMERA)// MultiPermissionState?
val granted = result?.allPermissionsGranted==true
}
Step 3: Request permission
API
suspend fun request(vararg permissions: String): Map<String, Boolean>?
Usage
viewModelScope.launch(Dispatchers.Main) {
val result = permitter.request(android.Manifest.permission.CAMERA)// Map<String, Boolean>
val granted = result?.get(android.Manifest.permission.CAMERA)==true
}