@@ -10,7 +10,11 @@ import androidx.recyclerview.widget.RecyclerView
1010import org.fossify.clock.R
1111import org.fossify.clock.activities.SimpleActivity
1212import org.fossify.clock.databinding.ItemAlarmBinding
13- import org.fossify.clock.extensions.*
13+ import org.fossify.clock.extensions.config
14+ import org.fossify.clock.extensions.dbHelper
15+ import org.fossify.clock.extensions.getAlarmSelectedDaysString
16+ import org.fossify.clock.extensions.getFormattedTime
17+ import org.fossify.clock.extensions.swap
1418import org.fossify.clock.helpers.TODAY_BIT
1519import org.fossify.clock.helpers.TOMORROW_BIT
1620import org.fossify.clock.helpers.getCurrentDayMinutes
@@ -28,8 +32,11 @@ import org.fossify.commons.interfaces.StartReorderDragListener
2832import org.fossify.commons.views.MyRecyclerView
2933
3034class AlarmsAdapter (
31- activity : SimpleActivity , var alarms : ArrayList <Alarm >, val toggleAlarmInterface : ToggleAlarmInterface ,
32- recyclerView : MyRecyclerView , itemClick : (Any ) -> Unit ,
35+ activity : SimpleActivity ,
36+ var alarms : ArrayList <Alarm >,
37+ val toggleAlarmInterface : ToggleAlarmInterface ,
38+ recyclerView : MyRecyclerView ,
39+ itemClick : (Any ) -> Unit ,
3340) : MyRecyclerViewAdapter(activity, recyclerView, itemClick), ItemTouchHelperContract {
3441
3542 private var startReorderDragListener: StartReorderDragListener
@@ -115,7 +122,9 @@ class AlarmsAdapter(
115122 activity.dbHelper.deleteAlarms(alarmsToRemove)
116123 }
117124
118- private fun getSelectedItems () = alarms.filter { selectedKeys.contains(it.id) } as ArrayList <Alarm >
125+ private fun getSelectedItems (): ArrayList <Alarm > {
126+ return alarms.filter { selectedKeys.contains(it.id) } as ArrayList <Alarm >
127+ }
119128
120129 @SuppressLint(" ClickableViewAccessibility" )
121130 private fun setupView (view : View , alarm : Alarm , holder : ViewHolder ) {
@@ -143,35 +152,46 @@ class AlarmsAdapter(
143152 alarmSwitch.isChecked = alarm.isEnabled
144153 alarmSwitch.setColors(textColor, properPrimaryColor, backgroundColor)
145154 alarmSwitch.setOnClickListener {
146- if (alarm.days > 0 ) {
147- if (activity.config.wasAlarmWarningShown) {
148- toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
149- } else {
150- ConfirmationDialog (
151- activity,
152- messageId = org.fossify.commons.R .string.alarm_warning,
153- positive = org.fossify.commons.R .string.ok,
154- negative = 0
155- ) {
156- activity.config.wasAlarmWarningShown = true
155+ when {
156+ alarm.days > 0 -> {
157+ if (activity.config.wasAlarmWarningShown) {
157158 toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
159+ } else {
160+ ConfirmationDialog (
161+ activity = activity,
162+ messageId = org.fossify.commons.R .string.alarm_warning,
163+ positive = org.fossify.commons.R .string.ok,
164+ negative = 0
165+ ) {
166+ activity.config.wasAlarmWarningShown = true
167+ toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
168+ }
158169 }
159170 }
160- } else if (alarm.days == TODAY_BIT ) {
161- if (alarm.timeInMinutes <= getCurrentDayMinutes()) {
162- alarm.days = TOMORROW_BIT
163- alarmDays.text = resources.getString(org.fossify.commons.R .string.tomorrow)
171+
172+ alarm.days == TODAY_BIT -> {
173+ if (alarm.timeInMinutes <= getCurrentDayMinutes()) {
174+ alarm.days = TOMORROW_BIT
175+ alarmDays.text =
176+ resources.getString(org.fossify.commons.R .string.tomorrow)
177+ }
178+ activity.dbHelper.updateAlarm(alarm)
179+ toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
180+ }
181+
182+ alarm.days == TOMORROW_BIT -> {
183+ toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
184+ }
185+
186+ // Unreachable zombie branch. Days are always set to a non-zero value.
187+ alarmSwitch.isChecked -> {
188+ activity.toast(R .string.no_days_selected)
189+ alarmSwitch.isChecked = false
190+ }
191+
192+ else -> {
193+ toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
164194 }
165- activity.dbHelper.updateAlarm(alarm)
166- root.context.scheduleNextAlarm(alarm, true )
167- toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
168- } else if (alarm.days == TOMORROW_BIT ) {
169- toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
170- } else if (alarmSwitch.isChecked) {
171- activity.toast(R .string.no_days_selected)
172- alarmSwitch.isChecked = false
173- } else {
174- toggleAlarmInterface.alarmToggled(alarm.id, alarmSwitch.isChecked)
175195 }
176196 }
177197 }
0 commit comments