From 3e95ed8ed4e69ce7c8771f739370800304445e6d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 6 May 2019 10:18:23 +0200 Subject: [PATCH] Changes to call Service.startForeground sooner --- .../main/java/org/linphone/LinphoneService.java | 16 +++++++++------- .../notifications/NotificationsManager.java | 2 ++ .../org/linphone/receivers/BootReceiver.java | 8 ++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index ff36f76f3..eb210c3fe 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -192,18 +192,20 @@ public final class LinphoneService extends Service { return START_STICKY; } + mNotificationManager = new NotificationsManager(this); + if (Version.sdkAboveOrEqual(Version.API26_O_80) + && intent != null + && intent.getBooleanExtra("ForceStartForeground", false)) { + // We need to call this asap + mNotificationManager.startForeground(); + } + mLinphoneManager = new LinphoneManager(this); sInstance = this; // sInstance is ready once linphone manager has been created mLinphoneManager.startLibLinphone(isPush); LinphoneManager.getCore().addListener(mListener); - mNotificationManager = new NotificationsManager(this); - - if (Version.sdkAboveOrEqual(Version.API26_O_80) - && intent != null - && intent.getBooleanExtra("ForceStartForeground", false)) { - mNotificationManager.startForeground(); - } + mNotificationManager.onCoreReady(); mContactsManager = new ContactsManager(this, handler); if (!Version.sdkAboveOrEqual(Version.API26_O_80) diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.java b/app/src/main/java/org/linphone/notifications/NotificationsManager.java index adf2a0480..91af745fd 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.java +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.java @@ -203,7 +203,9 @@ public class NotificationsManager { } } }; + } + public void onCoreReady() { Core core = LinphoneManager.getCore(); if (core != null) { core.addListener(mListener); diff --git a/app/src/main/java/org/linphone/receivers/BootReceiver.java b/app/src/main/java/org/linphone/receivers/BootReceiver.java index 3ca1b1500..8ca3aa57f 100644 --- a/app/src/main/java/org/linphone/receivers/BootReceiver.java +++ b/app/src/main/java/org/linphone/receivers/BootReceiver.java @@ -41,10 +41,10 @@ public class BootReceiver extends BroadcastReceiver { android.util.Log.i( "LinphoneBootReceiver", "Device is starting, auto_start is " + autostart); if (autostart && !LinphoneService.isReady()) { - Intent linphoneServiceIntent = new Intent(Intent.ACTION_MAIN); - linphoneServiceIntent.setClass(context, LinphoneService.class); - linphoneServiceIntent.putExtra("ForceStartForeground", true); - Compatibility.startService(context, linphoneServiceIntent); + Intent serviceIntent = new Intent(Intent.ACTION_MAIN); + serviceIntent.setClass(context, LinphoneService.class); + serviceIntent.putExtra("ForceStartForeground", true); + Compatibility.startService(context, serviceIntent); } } }