Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions kmpnotifier/api/kmpnotifier.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -179,3 +179,9 @@ final object com.mmk.kmpnotifier.notification/NotifierManager { // com.mmk.kmpno

// Targets: [ios]
final fun (com.mmk.kmpnotifier.notification/NotifierManager).com.mmk.kmpnotifier.extensions/onApplicationDidReceiveRemoteNotification(kotlin.collections/Map<kotlin/Any?, *>) // com.mmk.kmpnotifier.extensions/onApplicationDidReceiveRemoteNotification|onApplicationDidReceiveRemoteNotification@com.mmk.kmpnotifier.notification.NotifierManager(kotlin.collections.Map<kotlin.Any?,*>){}[0]

// Targets: [ios]
final fun (com.mmk.kmpnotifier.notification/NotifierManager).com.mmk.kmpnotifier.extensions/onNotificationClicked(platform.UserNotifications/UNNotificationContent) // com.mmk.kmpnotifier.extensions/onNotificationClicked|onNotificationClicked@com.mmk.kmpnotifier.notification.NotifierManager(platform.UserNotifications.UNNotificationContent){}[0]

// Targets: [ios]
final fun (com.mmk.kmpnotifier.notification/NotifierManager).com.mmk.kmpnotifier.extensions/onUserNotification(platform.UserNotifications/UNNotificationContent) // com.mmk.kmpnotifier.extensions/onUserNotification|onUserNotification@com.mmk.kmpnotifier.notification.NotifierManager(platform.UserNotifications.UNNotificationContent){}[0]
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public fun NotifierManager.onApplicationDidReceiveRemoteNotification(userInfo: M
}
}

internal fun NotifierManager.onUserNotification(notificationContent: UNNotificationContent) {
public fun NotifierManager.onUserNotification(notificationContent: UNNotificationContent) {
val userInfo = notificationContent.userInfo
val payloadData = userInfo.asPayloadData()
val hasNotification = notificationContent.title != null || notificationContent.body != null
Expand All @@ -50,7 +50,7 @@ internal fun NotifierManager.onUserNotification(notificationContent: UNNotificat
}
}

internal fun NotifierManager.onNotificationClicked(notificationContent: UNNotificationContent) {
public fun NotifierManager.onNotificationClicked(notificationContent: UNNotificationContent) {
NotifierManagerImpl.onNotificationClicked(notificationContent.userInfo.asPayloadData())
}

Expand All @@ -75,4 +75,4 @@ internal fun Map<Any?, *>?.asPayloadData(): PayloadData {

private fun UNNotificationContent.isPushNotification(): Boolean {
return userInfo.containsKey(KEY_IOS_FIREBASE_NOTIFICATION)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ import com.mmk.kmpnotifier.notification.IosNotifier
import com.mmk.kmpnotifier.notification.NotifierManagerImpl
import com.mmk.kmpnotifier.notification.PushNotifier
import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
import platform.UIKit.UIApplication
import platform.UIKit.registerForRemoteNotifications
Expand All @@ -22,18 +25,18 @@ internal class FirebasePushNotifierImpl : PushNotifier {

private val firebaseMessageDelegate by lazy { FirebaseMessageDelegate() }

private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)

init {
MainScope().launch {
currentLogger.log("FirebasePushNotifier is initialized")
scope.launch {
currentLogger.log("FirebasePushNotifier is initializing")
UNUserNotificationCenter.currentNotificationCenter().delegate =
IosNotifier.NotificationDelegate()
FIRMessaging.messaging().delegate = firebaseMessageDelegate
UIApplication.sharedApplication.registerForRemoteNotifications()
}

}


override suspend fun getToken(): String? = suspendCoroutine { cont ->
FIRMessaging.messaging().tokenWithCompletion { token, error ->
cont.resume(token)
Expand Down
Loading