diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt index 17414f9f33..c6ceaae725 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt @@ -20,6 +20,7 @@ import androidx.work.* import chat.simplex.app.MainActivity.Companion.OLD_ANDROID_UI_FLAGS import chat.simplex.app.model.NtfManager import chat.simplex.app.model.NtfManager.AcceptCallAction +import chat.simplex.app.platform.PushManager import chat.simplex.app.views.call.CallActivity import chat.simplex.common.helpers.* import chat.simplex.common.model.* @@ -270,6 +271,7 @@ class SimplexApp: Application(), LifecycleEventObserver { // Prevents from showing "Enable notifications" alert when onboarding wasn't complete yet if (chatModel.controller.appPrefs.onboardingStage.get() == OnboardingStage.OnboardingComplete) { SimplexService.showBackgroundServiceNoticeIfNeeded() + PushManager.initStart(context) if (appPrefs.notificationsMode.get() == NotificationsMode.SERVICE) withBGApi { platform.androidServiceStart() diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/platform/PushManager.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/platform/PushManager.kt index f5f78233a6..32cf239f5c 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/platform/PushManager.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/platform/PushManager.kt @@ -62,6 +62,20 @@ object PushManager { } } + /** + * Register to UnifiedPush distributor if any is already used + * + * To run when the app starts; call [chat.simplex.app.PushService.onUnregistered] + * if the distributor is uninstalled + */ + fun initStart(context: Context) { + Log.d(TAG, "Init UnifiedPush during app startup") + //TODO: limit to once a day to reduce registrations to ntf server ? + UnifiedPush.getAckDistributor(context)?.let { + register(context) + } + } + private fun register(context: Context) { // TODO: add VAPID UnifiedPush.register(context)