diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionUiState.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionUiState.kt new file mode 100644 index 0000000..fedef1f --- /dev/null +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionUiState.kt @@ -0,0 +1,7 @@ +package de.jeanlucmakiola.calendula.ui.permission + +sealed interface PermissionUiState { + data object Rationale : PermissionUiState + data object Denied : PermissionUiState + data object Granted : PermissionUiState +} diff --git a/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionViewModel.kt b/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionViewModel.kt new file mode 100644 index 0000000..05df891 --- /dev/null +++ b/app/src/main/java/de/jeanlucmakiola/calendula/ui/permission/PermissionViewModel.kt @@ -0,0 +1,27 @@ +package de.jeanlucmakiola.calendula.ui.permission + +import androidx.lifecycle.ViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import javax.inject.Inject + +@HiltViewModel +class PermissionViewModel @Inject constructor() : ViewModel() { + + private val _state = MutableStateFlow(PermissionUiState.Rationale) + val state: StateFlow = _state.asStateFlow() + + fun onGranted() { + _state.value = PermissionUiState.Granted + } + + fun onDenied() { + _state.value = PermissionUiState.Denied + } + + fun onRetry() { + _state.value = PermissionUiState.Rationale + } +}