Fix behavior of DefaultPermissionsPresenter. Do not show dialog immediately.

This commit is contained in:
Benoit Marty 2023-09-21 11:01:41 +02:00
parent da61b8970a
commit a43e82e2ff
2 changed files with 25 additions and 17 deletions

View file

@ -98,12 +98,12 @@ class DefaultPermissionsPresenter @AssistedInject constructor(
LaunchedEffect(this) {
if (permissionState.status.isGranted) {
// User may have granted permission from the settings, to reset the store regarding this permission
// User may have granted permission from the settings, so reset the store regarding this permission
permissionsStore.resetPermission(permission)
}
}
val showDialog = rememberSaveable { mutableStateOf(permissionState.status !is PermissionStatus.Granted) }
val showDialog = rememberSaveable { mutableStateOf(false) }
fun handleEvents(event: PermissionsEvents) {
when (event) {
@ -111,8 +111,11 @@ class DefaultPermissionsPresenter @AssistedInject constructor(
showDialog.value = false
}
PermissionsEvents.OpenSystemDialog -> {
permissionState.launchPermissionRequest()
showDialog.value = false
if (permissionState.status !is PermissionStatus.Granted && isAlreadyDenied) {
showDialog.value = true
} else {
permissionState.launchPermissionRequest()
}
}
}
}