diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt b/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt new file mode 100644 index 00000000..c903ff72 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt @@ -0,0 +1,34 @@ +package com.pitchedapps.frost.services + +import android.app.PendingIntent +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.support.v4.app.NotificationManagerCompat +import com.pitchedapps.frost.utils.L + +/** + * Created by Allan Wang on 2017-08-04. + * + * Cancels a notification + */ +private const val NOTIF_TAG_TO_CANCEL = "notif_tag_to_cancel" +private const val NOTIF_ID_TO_CANCEL = "notif_id_to_cancel" + +class NotificationReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + L.d("NotificationReceiver triggered") + val notifTag = intent.getStringExtra(NOTIF_TAG_TO_CANCEL) + val notifId = intent.getIntExtra(NOTIF_ID_TO_CANCEL, -1) + if (notifId != -1) { + L.d("NotificationReceiver: Cancelling $notifTag $notifId") + NotificationManagerCompat.from(context).cancel(notifTag, notifId) + } + } +} + +fun Context.getNotificationPendingCancelIntent(tag: String?, notifId: Int): PendingIntent { + val cancelIntent = Intent(this, NotificationReceiver::class.java) + .putExtra(NOTIF_TAG_TO_CANCEL, tag).putExtra(NOTIF_ID_TO_CANCEL, notifId) + return PendingIntent.getBroadcast(this, 0, cancelIntent, 0) +}
\ No newline at end of file |