From 33caa7ce92504e8f62e7fb393bec7cd304760bee Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 27 Aug 2019 13:24:43 +0200 Subject: [PATCH] Set ongoing flag for notifications that needs to be --- app/src/main/java/org/linphone/LinphoneService.java | 2 +- .../org/linphone/compatibility/ApiTwentyFourPlus.java | 1 + .../org/linphone/compatibility/ApiTwentyOnePlus.java | 4 +++- .../org/linphone/compatibility/ApiTwentySixPlus.java | 5 ++++- .../java/org/linphone/compatibility/Compatibility.java | 9 +++++---- .../org/linphone/notifications/NotificationsManager.java | 3 ++- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index 32e18352e..da5b18d91 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -186,7 +186,7 @@ public final class LinphoneService extends Service { return START_STICKY; } - mLinphoneManager = new LinphoneManager(this); + mLinphoneManager = new LinphoneManager(getApplicationContext()); sInstance = this; // sInstance is ready once linphone manager has been created mNotificationManager = new NotificationsManager(this); diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentyFourPlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentyFourPlus.java index 14a2938ee..f2d0f617c 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentyFourPlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentyFourPlus.java @@ -114,6 +114,7 @@ class ApiTwentyFourPlus { .setPriority(Notification.PRIORITY_HIGH) .setWhen(System.currentTimeMillis()) .setShowWhen(true) + .setOngoing(true) .setColor(context.getColor(R.color.notification_led_color)) .addAction(getCallDeclineAction(context, callId)); diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java index 5b5d193fb..e91ceee9d 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -107,7 +107,8 @@ class ApiTwentyOnePlus { int level, Bitmap largeIcon, PendingIntent intent, - int priority) { + int priority, + boolean ongoing) { Notification notif; if (largeIcon != null) { @@ -128,6 +129,7 @@ class ApiTwentyOnePlus { .setWhen(System.currentTimeMillis()) .setPriority(priority) .setShowWhen(true) + .setOngoing(ongoing) .build(); } else { notif = diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java index 678b71641..d855668e0 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java @@ -165,6 +165,7 @@ class ApiTwentySixPlus { .setPriority(Notification.PRIORITY_HIGH) .setWhen(System.currentTimeMillis()) .setShowWhen(true) + .setOngoing(true) .setColor(context.getColor(R.color.notification_led_color)) .addAction(ApiTwentyFourPlus.getCallDeclineAction(context, callId)); @@ -182,7 +183,8 @@ class ApiTwentySixPlus { int level, Bitmap largeIcon, PendingIntent intent, - int priority) { + int priority, + boolean ongoing) { if (largeIcon != null) { return new Notification.Builder( @@ -197,6 +199,7 @@ class ApiTwentySixPlus { .setPriority(priority) .setWhen(System.currentTimeMillis()) .setShowWhen(true) + .setOngoing(ongoing) .setColor(context.getColor(R.color.notification_led_color)) .build(); } else { diff --git a/app/src/main/java/org/linphone/compatibility/Compatibility.java b/app/src/main/java/org/linphone/compatibility/Compatibility.java index ae307b376..d13779f5f 100644 --- a/app/src/main/java/org/linphone/compatibility/Compatibility.java +++ b/app/src/main/java/org/linphone/compatibility/Compatibility.java @@ -88,7 +88,7 @@ public class Compatibility { String msg, Bitmap contactIcon, PendingIntent intent) { - if (Version.sdkAboveOrEqual(28)) { + if (Version.sdkAboveOrEqual(Version.API28_PIE_90)) { return ApiTwentyEightPlus.createMessageNotification( context, notif, contactIcon, intent); } else if (Version.sdkAboveOrEqual(Version.API26_O_80)) { @@ -151,13 +151,14 @@ public class Compatibility { int iconLevel, Bitmap largeIcon, PendingIntent intent, - int priority) { + int priority, + boolean ongoing) { if (Version.sdkAboveOrEqual(Version.API26_O_80)) { return ApiTwentySixPlus.createNotification( - context, title, message, icon, iconLevel, largeIcon, intent, priority); + context, title, message, icon, iconLevel, largeIcon, intent, priority, ongoing); } return ApiTwentyOnePlus.createNotification( - context, title, message, icon, iconLevel, largeIcon, intent, priority); + context, title, message, icon, iconLevel, largeIcon, intent, priority, ongoing); } public static boolean canDrawOverlays(Context context) { diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.java b/app/src/main/java/org/linphone/notifications/NotificationsManager.java index 403662fd2..32551cd42 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.java +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.java @@ -111,7 +111,8 @@ public class NotificationsManager { R.mipmap.ic_launcher, bm, pendingIntent, - Notification.PRIORITY_MIN); + Notification.PRIORITY_MIN, + true); if (isServiceNotificationDisplayed()) { startForeground();