Move view state to view model

pull/1952/head
Alex Baker 2 years ago
parent eabe2b37ee
commit 738c345275

@ -43,11 +43,6 @@ class ReminderControlSet : TaskEditControlFragment() {
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var locale: Locale
data class ViewState(
val showCustomDialog: Boolean = false,
val showRandomDialog: Boolean = false,
)
private val ringMode = mutableStateOf(0)
private val vm: ReminderControlSetViewModel by viewModels()

@ -6,9 +6,15 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
class ReminderControlSetViewModel : ViewModel() {
private val _viewState = MutableStateFlow(ReminderControlSet.ViewState())
val viewState: StateFlow<ReminderControlSet.ViewState>
data class ViewState(
val showCustomDialog: Boolean = false,
val showRandomDialog: Boolean = false,
)
private val _viewState = MutableStateFlow(ViewState())
val viewState: StateFlow<ViewState>
get() = _viewState.asStateFlow()
fun showCustomDialog(visible: Boolean) {

@ -21,7 +21,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.PermissionStatus
import com.google.android.material.composethemeadapter.MdcTheme
import com.todoroo.astrid.ui.ReminderControlSet
import com.todoroo.astrid.ui.ReminderControlSetViewModel
import org.tasks.R
import org.tasks.compose.AddReminderDialog
@ -49,9 +48,7 @@ fun AlarmRow(
TaskEditRow(
iconRes = R.drawable.ic_outline_notifications_24px,
content = {
val viewState = vm.viewState.collectAsStateLifecycleAware()
val current: ReminderControlSet.ViewState = viewState.value
val viewState = vm.viewState.collectAsStateLifecycleAware().value
when (permissionStatus) {
PermissionStatus.Granted -> {
Alarms(
@ -87,13 +84,13 @@ fun AlarmRow(
}
AddReminderDialog.AddCustomReminderDialog(
openDialog = current.showCustomDialog,
openDialog = viewState.showCustomDialog,
addAlarm = addAlarm,
closeDialog = { vm.showCustomDialog(visible = false) }
)
AddReminderDialog.AddRandomReminderDialog(
openDialog = current.showRandomDialog,
openDialog = viewState.showRandomDialog,
addAlarm = addAlarm,
closeDialog = { vm.showRandomDialog(visible = false) }
)

Loading…
Cancel
Save