Skip to content

Commit 4f7cc32

Browse files
committed
call yield() to force a suspension point
1 parent 1bda4eb commit 4f7cc32

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

OneSignalSDK/onesignal/notifications/src/main/java/com/onesignal/notifications/internal/permissions/impl/NotificationPermissionController.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import com.onesignal.notifications.R
4343
import com.onesignal.notifications.internal.common.NotificationHelper
4444
import com.onesignal.notifications.internal.permissions.INotificationPermissionChangedHandler
4545
import com.onesignal.notifications.internal.permissions.INotificationPermissionController
46+
import kotlinx.coroutines.yield
4647

4748
internal class NotificationPermissionController(
4849
private val _application: IApplicationService,
@@ -84,6 +85,10 @@ internal class NotificationPermissionController(
8485
* to notify of the status.
8586
*/
8687
override suspend fun prompt(fallbackToSettings: Boolean): Boolean {
88+
// Calling yield() to force a suspension point because Kotlin Continuation won't work
89+
// properly from java caller if a suspend function does not actually suspend
90+
yield()
91+
8792
if (notificationsEnabled()) {
8893
return true
8994
}

0 commit comments

Comments
 (0)