From 7903eb9bb9025c6fff1ed9e8561367cceda19337 Mon Sep 17 00:00:00 2001 From: Ziedelth Date: Fri, 24 May 2024 15:46:12 +0200 Subject: [PATCH] Fix notifications --- .../shikkanime/utils/FirebaseNotification.kt | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/fr/shikkanime/utils/FirebaseNotification.kt b/src/main/kotlin/fr/shikkanime/utils/FirebaseNotification.kt index f937b1c2..dff20b59 100644 --- a/src/main/kotlin/fr/shikkanime/utils/FirebaseNotification.kt +++ b/src/main/kotlin/fr/shikkanime/utils/FirebaseNotification.kt @@ -5,7 +5,7 @@ import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseOptions import com.google.firebase.messaging.AndroidConfig import com.google.firebase.messaging.FirebaseMessaging -import com.google.firebase.messaging.MulticastMessage +import com.google.firebase.messaging.Message import com.google.firebase.messaging.Notification import fr.shikkanime.dtos.variants.EpisodeVariantDto import fr.shikkanime.services.MemberService @@ -44,19 +44,21 @@ object FirebaseNotification { .setPriority(AndroidConfig.Priority.HIGH) .build() - val tokens = mutableSetOf("global") - memberService.findAllByAnimeUUID(episodeDto.mapping.anime.uuid!!).forEach { tokens.add(it.uuid!!.toString()) } - // Chunked tokens to avoid the 500 tokens limit (due to the limit of the Firebase API) - val chunkedTokens = tokens.chunked(500) + val topics = mutableSetOf("global") + memberService.findAllByAnimeUUID(episodeDto.mapping.anime.uuid!!).forEach { topics.add(it.uuid!!.toString()) } + // Chunked topics to avoid the 500 topics limit (due to the limit of the Firebase API) + val chunkedTopics = topics.chunked(500) - chunkedTokens.forEach { + chunkedTopics.forEach { FirebaseMessaging.getInstance() - .sendEachForMulticast( - MulticastMessage.builder() - .addAllTokens(it) - .setNotification(notification) - .setAndroidConfig(androidConfig) - .build() + .sendEach( + it.map { topic -> + Message.builder() + .setTopic(topic) + .setNotification(notification) + .setAndroidConfig(androidConfig) + .build() + } ) } }