diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 8dbe2c88a..18b0b48a2 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -116,6 +116,7 @@ public final class LinphoneService extends Service { private String mNotificationTitle; private boolean mDisableRegistrationStatus; private LinphoneCoreListenerBase mListener; + public static int notifcationsPriority = (Version.sdkAboveOrEqual(Version.API16_JELLY_BEAN_41) ? Notification.PRIORITY_DEFAULT : 0); public int getMessageNotifCount() { return mMsgNotifCount; @@ -153,7 +154,7 @@ public final class LinphoneService extends Service { bm = BitmapFactory.decodeResource(getResources(), R.drawable.logo_linphone_57x57); } catch (Exception e) { } - mNotif = Compatibility.createNotification(this, mNotificationTitle, "", R.drawable.status_level, IC_LEVEL_OFFLINE, bm, mNotifContentIntent, true); + mNotif = Compatibility.createNotification(this, mNotificationTitle, "", R.drawable.status_level, IC_LEVEL_OFFLINE, bm, mNotifContentIntent, true,notifcationsPriority); LinphoneManager.createAndStart(LinphoneService.this); @@ -271,6 +272,7 @@ public final class LinphoneService extends Service { } }; + private enum IncallIconState {INCALL, PAUSE, VIDEO, IDLE} private IncallIconState mCurrentIncallIconState = IncallIconState.IDLE; @@ -357,7 +359,7 @@ public final class LinphoneService extends Service { bm = BitmapFactory.decodeResource(getResources(), R.drawable.logo_linphone_57x57); } catch (Exception e) { } - mCustomNotif = Compatibility.createNotification(this, title, message, iconResourceID, 0, bm, notifContentIntent, isOngoingEvent); + mCustomNotif = Compatibility.createNotification(this, title, message, iconResourceID, 0, bm, notifContentIntent, isOngoingEvent,notifcationsPriority); mCustomNotif.defaults |= Notification.DEFAULT_VIBRATE; mCustomNotif.defaults |= Notification.DEFAULT_SOUND; @@ -529,7 +531,7 @@ public final class LinphoneService extends Service { bm = BitmapFactory.decodeResource(getResources(), R.drawable.logo_linphone_57x57); } catch (Exception e) { } - mNotif = Compatibility.createNotification(this, mNotificationTitle, text, R.drawable.status_level, level, bm, mNotifContentIntent, true); + mNotif = Compatibility.createNotification(this, mNotificationTitle, text, R.drawable.status_level, level, bm, mNotifContentIntent, true,notifcationsPriority); notifyWrapper(NOTIF_ID, mNotif); } diff --git a/src/org/linphone/compatibility/ApiSixteenPlus.java b/src/org/linphone/compatibility/ApiSixteenPlus.java index f1fcd3fb0..dba56077c 100644 --- a/src/org/linphone/compatibility/ApiSixteenPlus.java +++ b/src/org/linphone/compatibility/ApiSixteenPlus.java @@ -76,7 +76,7 @@ public class ApiSixteenPlus { return notif; } - public static Notification createNotification(Context context, String title, String message, int icon, int level, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent) { + public static Notification createNotification(Context context, String title, String message, int icon, int level, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent,int priority) { Notification notif; if (largeIcon != null) { @@ -87,6 +87,7 @@ public class ApiSixteenPlus { .setLargeIcon(largeIcon) .setContentIntent(intent) .setWhen(System.currentTimeMillis()) + .setPriority(priority) .build(); } else { notif = new Notification.Builder(context) @@ -95,6 +96,7 @@ public class ApiSixteenPlus { .setSmallIcon(icon, level) .setContentIntent(intent) .setWhen(System.currentTimeMillis()) + .setPriority(priority) .build(); } if (isOngoingEvent) { diff --git a/src/org/linphone/compatibility/ApiTwentyOnePlus.java b/src/org/linphone/compatibility/ApiTwentyOnePlus.java index d379d8775..c47fe007b 100644 --- a/src/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/src/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -78,7 +78,7 @@ public class ApiTwentyOnePlus { return notif; } - public static Notification createNotification(Context context, String title, String message, int icon, int level, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent) { + public static Notification createNotification(Context context, String title, String message, int icon, int level, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent,int priority) { Notification notif; if (largeIcon != null) { @@ -90,7 +90,7 @@ public class ApiTwentyOnePlus { .setContentIntent(intent) .setCategory(Notification.CATEGORY_SERVICE) .setVisibility(Notification.VISIBILITY_SECRET) - .setPriority(Notification.PRIORITY_DEFAULT) + .setPriority(priority) .build(); } else { notif = new NotificationCompat.Builder(context) @@ -100,7 +100,7 @@ public class ApiTwentyOnePlus { .setContentIntent(intent) .setCategory(Notification.CATEGORY_SERVICE) .setVisibility(Notification.VISIBILITY_SECRET) - .setPriority(Notification.PRIORITY_DEFAULT) + .setPriority(priority) .build(); } diff --git a/src/org/linphone/compatibility/Compatibility.java b/src/org/linphone/compatibility/Compatibility.java index e7235d336..2e8bd3afb 100644 --- a/src/org/linphone/compatibility/Compatibility.java +++ b/src/org/linphone/compatibility/Compatibility.java @@ -204,11 +204,11 @@ public class Compatibility { return notif; } - public static Notification createNotification(Context context, String title, String message, int icon, int iconLevel, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent) { + public static Notification createNotification(Context context, String title, String message, int icon, int iconLevel, Bitmap largeIcon, PendingIntent intent, boolean isOngoingEvent,int priority) { if (Version.sdkAboveOrEqual(Version.API21_LOLLIPOP_50)) { - return ApiTwentyOnePlus.createNotification(context, title, message, icon, iconLevel, largeIcon, intent, isOngoingEvent); + return ApiTwentyOnePlus.createNotification(context, title, message, icon, iconLevel, largeIcon, intent, isOngoingEvent,priority); } else if (Version.sdkAboveOrEqual(Version.API16_JELLY_BEAN_41)) { - return ApiSixteenPlus.createNotification(context, title, message, icon, iconLevel, largeIcon, intent, isOngoingEvent); + return ApiSixteenPlus.createNotification(context, title, message, icon, iconLevel, largeIcon, intent, isOngoingEvent,priority); } else if (Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) { return ApiElevenPlus.createNotification(context, title, message, icon, iconLevel, largeIcon, intent, isOngoingEvent); } else {