diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 258f3db6..31f63bfa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,7 +85,9 @@ - + + + diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt index 65c492e8..6bca43a6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/extensions/Context.kt @@ -25,7 +25,8 @@ import com.simplemobiletools.clock.models.AlarmSound import com.simplemobiletools.clock.models.MyTimeZone import com.simplemobiletools.clock.receivers.AlarmReceiver import com.simplemobiletools.clock.receivers.DateTimeWidgetUpdateReceiver -import com.simplemobiletools.clock.receivers.TimerReceiver +import com.simplemobiletools.clock.receivers.HideAlarmReceiver +import com.simplemobiletools.clock.receivers.HideTimerReceiver import com.simplemobiletools.clock.services.SnoozeService import com.simplemobiletools.commons.extensions.formatMinutesToTimeString import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor @@ -277,7 +278,7 @@ fun Context.getTimerNotification(pendingIntent: PendingIntent, addDeleteIntent: .setAutoCancel(true) .setSound(Uri.parse(config.timerSoundUri), AudioManager.STREAM_SYSTEM) .setChannelId(channelId) - .addAction(R.drawable.ic_cross, getString(R.string.dismiss), if (addDeleteIntent) reminderActivityIntent else getTimerPendingIntent()) + .addAction(R.drawable.ic_cross, getString(R.string.dismiss), if (addDeleteIntent) reminderActivityIntent else getHideTimerPendingIntent()) if (addDeleteIntent) { builder.setDeleteIntent(reminderActivityIntent) @@ -297,11 +298,16 @@ fun Context.getTimerNotification(pendingIntent: PendingIntent, addDeleteIntent: return notification } -fun Context.getTimerPendingIntent(): PendingIntent { - val intent = Intent(this, TimerReceiver::class.java) +fun Context.getHideTimerPendingIntent(): PendingIntent { + val intent = Intent(this, HideTimerReceiver::class.java) return PendingIntent.getBroadcast(this, TIMER_NOTIF_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT) } +fun Context.getHideAlarmPendingIntent(alarm: Alarm): PendingIntent { + val intent = Intent(this, HideAlarmReceiver::class.java) + return PendingIntent.getBroadcast(this, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT) +} + @SuppressLint("NewApi") fun Context.getAlarmNotification(pendingIntent: PendingIntent, alarm: Alarm, addDeleteIntent: Boolean): Notification { val channelId = "alarm_channel" @@ -328,6 +334,7 @@ fun Context.getAlarmNotification(pendingIntent: PendingIntent, alarm: Alarm, add .setAutoCancel(true) .setSound(Uri.parse(alarm.soundUri), AudioManager.STREAM_ALARM) .setChannelId(channelId) + .addAction(R.drawable.ic_cross, getString(R.string.dismiss), if (addDeleteIntent) reminderActivityIntent else getHideAlarmPendingIntent(alarm)) .addAction(R.drawable.ic_snooze, getString(R.string.snooze), getSnoozePendingIntent(alarm, addDeleteIntent)) if (addDeleteIntent) { diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/TimerReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideAlarmReceiver.kt similarity index 60% rename from app/src/main/kotlin/com/simplemobiletools/clock/receivers/TimerReceiver.kt rename to app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideAlarmReceiver.kt index b066cbca..77084139 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/TimerReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideAlarmReceiver.kt @@ -4,10 +4,11 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import com.simplemobiletools.clock.extensions.hideNotification -import com.simplemobiletools.clock.helpers.TIMER_NOTIF_ID +import com.simplemobiletools.clock.helpers.ALARM_ID -class TimerReceiver : BroadcastReceiver() { +class HideAlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { - context.hideNotification(TIMER_NOTIF_ID) + val id = intent.getIntExtra(ALARM_ID, -1) + context.hideNotification(id) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideTimerReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideTimerReceiver.kt new file mode 100644 index 00000000..e12a9a21 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/clock/receivers/HideTimerReceiver.kt @@ -0,0 +1,12 @@ +package com.simplemobiletools.clock.receivers + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import com.simplemobiletools.clock.extensions.hideTimerNotification + +class HideTimerReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + context.hideTimerNotification() + } +}