From eef1504171a08a5a150b6e9250644622cfa9c64a Mon Sep 17 00:00:00 2001 From: Artyom <17145209+Korna@users.noreply.github.com> Date: Wed, 12 Oct 2022 13:47:22 +0300 Subject: [PATCH] Add notification sound for iOS and Android (#83) --- .../converters/PushTokenMessageConverter.kt | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/push-message-provider-fcm/src/main/kotlin/ru/touchin/push/message/provider/fcm/converters/PushTokenMessageConverter.kt b/push-message-provider-fcm/src/main/kotlin/ru/touchin/push/message/provider/fcm/converters/PushTokenMessageConverter.kt index 752d786..9a7f948 100644 --- a/push-message-provider-fcm/src/main/kotlin/ru/touchin/push/message/provider/fcm/converters/PushTokenMessageConverter.kt +++ b/push-message-provider-fcm/src/main/kotlin/ru/touchin/push/message/provider/fcm/converters/PushTokenMessageConverter.kt @@ -1,5 +1,9 @@ package ru.touchin.push.message.provider.fcm.converters +import com.google.firebase.messaging.AndroidConfig +import com.google.firebase.messaging.AndroidNotification +import com.google.firebase.messaging.ApnsConfig +import com.google.firebase.messaging.Aps import com.google.firebase.messaging.Message import org.springframework.stereotype.Component import ru.touchin.push.message.provider.dto.Notification @@ -10,9 +14,17 @@ class PushTokenMessageConverter( private val notificationConverter: NotificationConverter ) { + private companion object { + + const val PLATFORMS_KEY_SOUND_ON = "default" + + } + operator fun invoke(request: PushTokenMessage): Message { return Message.builder() .setToken(request.token) + .setupApns() + .setupAndroid() .setIfExists(request.notification) .putAllData(request.data) .build() @@ -26,4 +38,28 @@ class PushTokenMessageConverter( } } + private fun Message.Builder.setupApns(): Message.Builder { + return setApnsConfig( + ApnsConfig.builder() + .setAps( + Aps.builder() + .setSound(PLATFORMS_KEY_SOUND_ON) + .build() + ) + .build() + ) + } + + private fun Message.Builder.setupAndroid(): Message.Builder { + return setAndroidConfig( + AndroidConfig.builder() + .setNotification( + AndroidNotification.builder() + .setSound(PLATFORMS_KEY_SOUND_ON) + .build() + ) + .build() + ) + } + }