Skip to content

Commit

Permalink
fix: alarms can't be disabled (closes #387)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bnyro committed Feb 9, 2025
1 parent eb3275f commit fb736bd
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<List<Alarm>> =
combine(alarmRepository.getAlarmsStream(), filters, sortOrder) { items, filter, sortOrder ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down

0 comments on commit fb736bd

Please sign in to comment.