diff --git a/app/src/main/java/me/capcom/smsgateway/modules/gateway/GatewayService.kt b/app/src/main/java/me/capcom/smsgateway/modules/gateway/GatewayService.kt index d6f48305..660c6f87 100644 --- a/app/src/main/java/me/capcom/smsgateway/modules/gateway/GatewayService.kt +++ b/app/src/main/java/me/capcom/smsgateway/modules/gateway/GatewayService.kt @@ -117,7 +117,7 @@ class GatewayService( ) } - internal suspend fun registerFcmToken(pushToken: String) { + internal suspend fun registerFcmToken(pushToken: String?) { if (!settings.enabled) return val settings = settings.registrationInfo @@ -126,13 +126,15 @@ class GatewayService( if (accessToken != null) { // if there's an access token, try to update push token try { - api.devicePatch( - accessToken, - GatewayApi.DevicePatchRequest( - settings.id, - pushToken + pushToken?.let { + api.devicePatch( + accessToken, + GatewayApi.DevicePatchRequest( + settings.id, + it + ) ) - ) + } events.emit( DeviceRegisteredEvent( api.hostname, diff --git a/app/src/main/java/me/capcom/smsgateway/modules/gateway/workers/RegistrationWorker.kt b/app/src/main/java/me/capcom/smsgateway/modules/gateway/workers/RegistrationWorker.kt index 26c18046..18c9b583 100644 --- a/app/src/main/java/me/capcom/smsgateway/modules/gateway/workers/RegistrationWorker.kt +++ b/app/src/main/java/me/capcom/smsgateway/modules/gateway/workers/RegistrationWorker.kt @@ -26,7 +26,7 @@ class RegistrationWorker( override suspend fun doWork(): Result { try { - val token = inputData.getString(DATA_TOKEN) ?: return Result.failure() + val token = inputData.getString(DATA_TOKEN) App.instance.gatewayService.registerFcmToken(token) diff --git a/app/src/main/java/me/capcom/smsgateway/services/PushService.kt b/app/src/main/java/me/capcom/smsgateway/services/PushService.kt index 47b1279b..866b401d 100644 --- a/app/src/main/java/me/capcom/smsgateway/services/PushService.kt +++ b/app/src/main/java/me/capcom/smsgateway/services/PushService.kt @@ -55,7 +55,7 @@ class PushService : FirebaseMessagingService(), KoinComponent { companion object { fun register(context: Context): Unit { FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task -> - if (!task.isSuccessful) { + if (!task.isSuccessful || task.isCanceled) { Toast.makeText( context, "Fetching FCM registration token failed: ${task.exception}",