fix(android): Fix multiple notification issues

- Fix updating the notification causing another vibration
- Fix the "mark as read" intent being stuck
This commit is contained in:
PapaTutuWawa 2023-09-20 14:18:08 +02:00
parent 4ec44ab3e1
commit 2adefecc92
2 changed files with 4 additions and 7 deletions

View File

@ -1,8 +1,6 @@
package org.moxxy.moxxy_native.notifications package org.moxxy.moxxy_native.notifications
import android.content.Intent import android.content.Intent
import android.util.Log
import org.moxxy.moxxy_native.TAG
/* /*
* Extract all user-added extra key-value pairs from @intent. * Extract all user-added extra key-value pairs from @intent.
@ -10,9 +8,7 @@ import org.moxxy.moxxy_native.TAG
fun extractPayloadMapFromIntent(intent: Intent): Map<String?, String?> { fun extractPayloadMapFromIntent(intent: Intent): Map<String?, String?> {
val extras = mutableMapOf<String?, String?>() val extras = mutableMapOf<String?, String?>()
intent.extras?.keySet()!!.forEach { intent.extras?.keySet()!!.forEach {
Log.d(TAG, "Checking $it -> ${intent.extras!!.get(it)}")
if (it.startsWith("payload_")) { if (it.startsWith("payload_")) {
Log.d(TAG, "Adding $it")
extras[it.substring(8)] = intent.extras!!.getString(it) extras[it.substring(8)] = intent.extras!!.getString(it)
} }
} }

View File

@ -94,7 +94,7 @@ class NotificationsImplementation(private val context: Context) : MoxxyNotificat
context.applicationContext, context.applicationContext,
0, 0,
replyIntent, replyIntent,
PendingIntent.FLAG_MUTABLE, PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT,
) )
val replyAction = NotificationCompat.Action.Builder( val replyAction = NotificationCompat.Action.Builder(
R.drawable.reply, R.drawable.reply,
@ -113,13 +113,14 @@ class NotificationsImplementation(private val context: Context) : MoxxyNotificat
notification.extra?.forEach { notification.extra?.forEach {
putExtra("payload_${it.key}", it.value) putExtra("payload_${it.key}", it.value)
Log.d(TAG, "Adding payload_${it.key} -> ${it.value}")
} }
} }
val markAsReadPendingIntent = PendingIntent.getBroadcast( val markAsReadPendingIntent = PendingIntent.getBroadcast(
context.applicationContext, context.applicationContext,
0, 0,
markAsReadIntent, markAsReadIntent,
PendingIntent.FLAG_IMMUTABLE, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT,
) )
val markAsReadAction = NotificationCompat.Action.Builder( val markAsReadAction = NotificationCompat.Action.Builder(
R.drawable.mark_as_read, R.drawable.mark_as_read,
@ -250,7 +251,7 @@ class NotificationsImplementation(private val context: Context) : MoxxyNotificat
setCategory(Notification.CATEGORY_MESSAGE) setCategory(Notification.CATEGORY_MESSAGE)
// Prevent no notification when we replied before // Prevent no notification when we replied before
setOnlyAlertOnce(false) setOnlyAlertOnce(true)
// Automatically dismiss the notification on tap // Automatically dismiss the notification on tap
setAutoCancel(true) setAutoCancel(true)