Allow background push notifications on iOS (#84)

* Allow background update for iOS devices

* Update tests
This commit is contained in:
Artyom 2022-10-13 13:45:24 +03:00 committed by GitHub
parent eef1504171
commit faf1e92633
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

View File

@ -17,6 +17,7 @@ class PushTokenMessageConverter(
private companion object {
const val PLATFORMS_KEY_SOUND_ON = "default"
const val IOS_ENABLE_BACKGROUND_UPDATE = true
}
@ -44,6 +45,7 @@ class PushTokenMessageConverter(
.setAps(
Aps.builder()
.setSound(PLATFORMS_KEY_SOUND_ON)
.setContentAvailable(IOS_ENABLE_BACKGROUND_UPDATE)
.build()
)
.build()

View File

@ -1,6 +1,10 @@
package ru.touchin.push.message.provider.fcm.converters
import com.fasterxml.jackson.databind.ObjectMapper
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.junit.Assert
import org.junit.jupiter.api.DisplayName
@ -43,6 +47,8 @@ class PushTokenMessageConverterTest {
.setToken(pushTokenMessage.token)
.setNotification(notificationConverter(notification))
.putAllData(pushTokenMessage.data)
.setupApns()
.setupAndroid()
.build()
val expectedResultJson = objectMapper.writeValueAsString(expectedResult)
@ -69,6 +75,8 @@ class PushTokenMessageConverterTest {
val expectedResult = Message.builder()
.setToken(pushTokenMessage.token)
.putAllData(pushTokenMessage.data)
.setupApns()
.setupAndroid()
.build()
val expectedResultJson = objectMapper.writeValueAsString(expectedResult)
@ -80,4 +88,29 @@ class PushTokenMessageConverterTest {
)
}
private fun Message.Builder.setupApns(): Message.Builder {
return setApnsConfig(
ApnsConfig.builder()
.setAps(
Aps.builder()
.setSound("default")
.setContentAvailable(true)
.build()
)
.build()
)
}
private fun Message.Builder.setupAndroid(): Message.Builder {
return setAndroidConfig(
AndroidConfig.builder()
.setNotification(
AndroidNotification.builder()
.setSound("default")
.build()
)
.build()
)
}
}