diff --git a/app/src/main/java/com/bnyro/clock/domain/usecase/CreateUpdateDeleteAlarmUseCase.kt b/app/src/main/java/com/bnyro/clock/domain/usecase/CreateUpdateDeleteAlarmUseCase.kt index 2484018d..202f8a92 100644 --- a/app/src/main/java/com/bnyro/clock/domain/usecase/CreateUpdateDeleteAlarmUseCase.kt +++ b/app/src/main/java/com/bnyro/clock/domain/usecase/CreateUpdateDeleteAlarmUseCase.kt @@ -10,13 +10,11 @@ class CreateUpdateDeleteAlarmUseCase( private val alarmRepository: AlarmRepository ) { suspend fun createAlarm(alarm: Alarm) { - alarm.enabled = true AlarmHelper.enqueue(context, alarm) alarmRepository.addAlarm(alarm) } suspend fun updateAlarm(alarm: Alarm) { - alarm.enabled = true AlarmHelper.enqueue(context, alarm) alarmRepository.updateAlarm(alarm) } diff --git a/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/AlarmScreen.kt b/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/AlarmScreen.kt index 6bd835ef..f3e2c36e 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/AlarmScreen.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/AlarmScreen.kt @@ -108,17 +108,26 @@ fun AlarmScreen( } } - items(items = alarms, key = { it.id }) { - AlarmItem(it, onClick = { alarm -> - onAlarm.invoke(alarm.id) - }, onDeleteAlarm = { alarm -> - alarmModel.deleteAlarm(alarm) - }, onUpdateAlarm = { alarm -> - alarmModel.updateAlarm(alarm) - if (alarm.enabled) { - alarmModel.createToast(alarm, context) + items( + items = alarms, + key = { it.id.toString() + "-" + it.enabled } + ) { + AlarmItem( + alarm = it, + onClick = { alarm -> + onAlarm.invoke(alarm.id) + }, + onDeleteAlarm = { alarm -> + alarmModel.deleteAlarm(alarm) + }, + onUpdateAlarm = { alarm -> + alarmModel.updateAlarm(alarm) + + if (alarm.enabled) { + alarmModel.createToast(alarm, context) + } } - }) + ) } item { diff --git a/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/model/AlarmModel.kt b/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/model/AlarmModel.kt index 2db0df02..ca11e9cb 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/model/AlarmModel.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/screens/alarm/model/AlarmModel.kt @@ -35,7 +35,7 @@ class AlarmModel(application: Application) : AndroidViewModel(application) { var showFilter by mutableStateOf(false) var showSortOrder by mutableStateOf(false) val filters = MutableStateFlow(AlarmFilters()) - val sortOrder = MutableStateFlow(AlarmSortOrder.HOUR_OF_DAY) + private val sortOrder = MutableStateFlow(AlarmSortOrder.HOUR_OF_DAY) val alarms: StateFlow> = combine(alarmRepository.getAlarmsStream(), filters, sortOrder) { items, filter, sortOrder -> diff --git a/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/AlarmPickerScreen.kt b/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/AlarmPickerScreen.kt index e7e1106f..62ebf811 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/AlarmPickerScreen.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/AlarmPickerScreen.kt @@ -15,12 +15,12 @@ fun AlarmPickerScreen(onNavigateBack: () -> Unit) { currentAlarm = viewModel.alarm, onSave = { alarm -> if (alarm.id == 0L) { - //Create New Alarm - viewModel.createAlarm(alarm) + // Create New Alarm and enable by default + viewModel.createAlarm(alarm.copy(enabled = true)) viewModel.createToast(alarm, context) } else { - //Update Alarm - viewModel.updateAlarm(alarm) + // Update Alarm and enable automatically + viewModel.updateAlarm(alarm.copy(enabled = true)) viewModel.createToast(alarm, context) } onNavigateBack.invoke() diff --git a/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/model/AlarmPickerModel.kt b/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/model/AlarmPickerModel.kt index 79c4dbf2..e053b857 100644 --- a/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/model/AlarmPickerModel.kt +++ b/app/src/main/java/com/bnyro/clock/presentation/screens/alarmpicker/model/AlarmPickerModel.kt @@ -57,6 +57,7 @@ class AlarmPickerModel(application: Application, savedStateHandle: SavedStateHan (AlarmHelper.getAlarmTime(alarm) - System.currentTimeMillis()) val formattedDuration = TimeHelper.durationToFormatted(context, millisRemainingForAlarm.milliseconds) + Toast.makeText( context, context.resources.getString(R.string.alarm_will_play, formattedDuration),