diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 317da665b6b..0db2a533b6e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -871,11 +871,6 @@ android:enabled="true" android:exported="true" /> - - diff --git a/app/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt b/app/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt index 53eabb54191..3b998a4a73e 100644 --- a/app/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt +++ b/app/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt @@ -56,6 +56,7 @@ import io.homeassistant.companion.android.common.notifications.createChannelID import io.homeassistant.companion.android.common.notifications.getGroupNotificationBuilder import io.homeassistant.companion.android.common.notifications.handleChannel import io.homeassistant.companion.android.common.notifications.handleColor +import io.homeassistant.companion.android.common.notifications.handleDeleteIntent import io.homeassistant.companion.android.common.notifications.handleSmallIcon import io.homeassistant.companion.android.common.notifications.handleText import io.homeassistant.companion.android.common.notifications.parseColor @@ -935,7 +936,7 @@ class MessagingManager @Inject constructor( handleReplyHistory(notificationBuilder, data) - handleDeleteIntent(notificationBuilder, data, messageId, group, groupId, id) + handleDeleteIntent(context, notificationBuilder, data, messageId, group, groupId, id) handleContentIntent(notificationBuilder, data) @@ -1033,29 +1034,6 @@ class MessagingManager @Inject constructor( } } - private fun handleDeleteIntent( - builder: NotificationCompat.Builder, - data: Map, - messageId: Int, - group: String?, - groupId: Int, - databaseId: Long? - ) { - val deleteIntent = Intent(context, NotificationDeleteReceiver::class.java).apply { - putExtra(NotificationDeleteReceiver.EXTRA_DATA, HashMap(data)) - putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_GROUP, group) - putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_GROUP_ID, groupId) - putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_DB, databaseId) - } - val deletePendingIntent = PendingIntent.getBroadcast( - context, - messageId, - deleteIntent, - PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - builder.setDeleteIntent(deletePendingIntent) - } - private fun handlePersistent( builder: NotificationCompat.Builder, tag: String?, diff --git a/common/src/main/AndroidManifest.xml b/common/src/main/AndroidManifest.xml index 12601643615..82307ba2445 100644 --- a/common/src/main/AndroidManifest.xml +++ b/common/src/main/AndroidManifest.xml @@ -11,6 +11,11 @@ + + \ No newline at end of file diff --git a/app/src/main/java/io/homeassistant/companion/android/notifications/NotificationDeleteReceiver.kt b/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationDeleteReceiver.kt similarity index 97% rename from app/src/main/java/io/homeassistant/companion/android/notifications/NotificationDeleteReceiver.kt rename to common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationDeleteReceiver.kt index 2604df7687c..f27f629bd05 100644 --- a/app/src/main/java/io/homeassistant/companion/android/notifications/NotificationDeleteReceiver.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationDeleteReceiver.kt @@ -1,4 +1,4 @@ -package io.homeassistant.companion.android.notifications +package io.homeassistant.companion.android.common.notifications import android.content.BroadcastReceiver import android.content.Context diff --git a/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationFunctions.kt b/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationFunctions.kt index e1019bb0416..4ed54bb1ef5 100755 --- a/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationFunctions.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/notifications/NotificationFunctions.kt @@ -2,7 +2,9 @@ package io.homeassistant.companion.android.common.notifications import android.app.NotificationChannel import android.app.NotificationManager +import android.app.PendingIntent import android.content.Context +import android.content.Intent import android.graphics.Color import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter @@ -290,3 +292,27 @@ fun clearNotification(context: Context, tag: String) { val messageId = tag.hashCode() notificationManagerCompat.cancel(tag, messageId, true) } + +fun handleDeleteIntent( + context: Context, + builder: NotificationCompat.Builder, + data: Map, + messageId: Int, + group: String?, + groupId: Int, + databaseId: Long? +) { + val deleteIntent = Intent(context, NotificationDeleteReceiver::class.java).apply { + putExtra(NotificationDeleteReceiver.EXTRA_DATA, HashMap(data)) + putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_GROUP, group) + putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_GROUP_ID, groupId) + putExtra(NotificationDeleteReceiver.EXTRA_NOTIFICATION_DB, databaseId) + } + val deletePendingIntent = PendingIntent.getBroadcast( + context, + messageId, + deleteIntent, + PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + builder.setDeleteIntent(deletePendingIntent) +} diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index f4d31032cd0..19dc629b31b 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -263,6 +263,7 @@ + diff --git a/wear/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt b/wear/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt index fffc857adad..76cd38f90d9 100755 --- a/wear/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt +++ b/wear/src/main/java/io/homeassistant/companion/android/notifications/MessagingManager.kt @@ -14,6 +14,7 @@ import io.homeassistant.companion.android.common.notifications.commandBeaconMoni import io.homeassistant.companion.android.common.notifications.commandBleTransmitter import io.homeassistant.companion.android.common.notifications.getGroupNotificationBuilder import io.homeassistant.companion.android.common.notifications.handleChannel +import io.homeassistant.companion.android.common.notifications.handleDeleteIntent import io.homeassistant.companion.android.common.notifications.handleSmallIcon import io.homeassistant.companion.android.common.notifications.handleText import io.homeassistant.companion.android.common.util.TextToSpeechData @@ -116,6 +117,8 @@ class MessagingManager @Inject constructor( handleText(notificationBuilder, data) + handleDeleteIntent(context, notificationBuilder, data, messageId, group, groupId, null) + notificationManagerCompat.apply { Log.d(TAG, "Show notification with tag \"$tag\" and id \"$messageId\"") notify(tag, messageId, notificationBuilder.build())