aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationReceiver.kt
diff options
context:
space:
mode:
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.kt34
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