Skip to content

Commit 1befe2c

Browse files
committed
fix #406: Added the service for canceling the ringing sound & Adapted onStartCommand for the service that cancels the ringing sound.
1 parent f4c90ae commit 1befe2c

3 files changed

Lines changed: 19 additions & 7 deletions

File tree

app/src/main/kotlin/org/fossify/clock/extensions/Context.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import org.fossify.clock.receivers.HideTimerReceiver
5959
import org.fossify.clock.receivers.SkipUpcomingAlarmReceiver
6060
import org.fossify.clock.receivers.StopAlarmReceiver
6161
import org.fossify.clock.receivers.UpcomingAlarmReceiver
62+
import org.fossify.clock.services.AlarmService
6263
import org.fossify.clock.services.SnoozeService
6364
import org.fossify.commons.extensions.formatMinutesToTimeString
6465
import org.fossify.commons.extensions.formatSecondsToTimeString
@@ -282,6 +283,14 @@ fun Context.cancelAlarmClock(alarm: Alarm) {
282283
alarmManager.cancel(getUpcomingAlarmPendingIntent(alarm))
283284
}
284285

286+
fun Context.stopAlarmService(id: Int) {
287+
val intent = Intent(this, AlarmService::class.java).apply {
288+
action = AlarmService.ACTION_STOP_ALARM
289+
putExtra(ALARM_ID, id)
290+
}
291+
startService(intent)
292+
}
293+
285294
fun Context.hideNotification(id: Int) {
286295
notificationManager.cancel(id)
287296
}

app/src/main/kotlin/org/fossify/clock/helpers/DBHelper.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.database.sqlite.SQLiteOpenHelper
99
import android.text.TextUtils
1010
import org.fossify.clock.extensions.cancelAlarmClock
1111
import org.fossify.clock.extensions.createNewAlarm
12+
import org.fossify.clock.extensions.stopAlarmService
1213
import org.fossify.clock.models.Alarm
1314
import org.fossify.commons.extensions.getIntValue
1415
import org.fossify.commons.extensions.getStringValue
@@ -100,8 +101,8 @@ class DBHelper private constructor(
100101
fun deleteAlarms(alarms: ArrayList<Alarm>) {
101102
alarms.filter { it.isEnabled }.forEach {
102103
context.cancelAlarmClock(it)
104+
context.stopAlarmService(it.id)
103105
}
104-
105106
val args = TextUtils.join(", ", alarms.map { it.id.toString() })
106107
val selection = "$ALARMS_TABLE_NAME.$COL_ID IN ($args)"
107108
mDb.delete(ALARMS_TABLE_NAME, selection, null)

app/src/main/kotlin/org/fossify/clock/services/AlarmService.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,16 @@ class AlarmService : Service() {
6060
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
6161
val action = intent?.action ?: ACTION_START_ALARM
6262
val alarmId = intent?.getIntExtra(ALARM_ID, -1) ?: -1
63-
val newAlarm = applicationContext.dbHelper.getAlarmWithId(alarmId)
64-
if (alarmId == -1 || newAlarm == null) {
65-
stopSelfIfIdle()
66-
return START_NOT_STICKY
67-
}
6863

6964
when (action) {
70-
ACTION_START_ALARM -> startNewAlarm(newAlarm)
65+
ACTION_START_ALARM -> {
66+
val newAlarm = applicationContext.dbHelper.getAlarmWithId(alarmId)
67+
if (alarmId == -1 || newAlarm == null) {
68+
stopSelfIfIdle()
69+
return START_NOT_STICKY
70+
}
71+
startNewAlarm(newAlarm)
72+
}
7173
ACTION_STOP_ALARM -> stopActiveAlarm(alarmId)
7274
else -> throw IllegalArgumentException("Unknown action: $action")
7375
}

0 commit comments

Comments
 (0)