From 6dec9d9392b07a16b8536050ea0be6b3b69f4aab Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 30 Jun 2015 13:15:49 +0200 Subject: [PATCH] Added simple notification method in compatibility --- .../linphone/compatibility/ApiElevenPlus.java | 14 ++++++++++++++ src/org/linphone/compatibility/ApiFivePlus.java | 16 ++++++++++++++++ .../linphone/compatibility/ApiSixteenPlus.java | 14 ++++++++++++++ .../linphone/compatibility/ApiTwentyOnePlus.java | 16 ++++++++++++++++ .../linphone/compatibility/Compatibility.java | 15 +++++++++++++++ 5 files changed, 75 insertions(+) diff --git a/src/org/linphone/compatibility/ApiElevenPlus.java b/src/org/linphone/compatibility/ApiElevenPlus.java index 1fc9b8409..cce5c9795 100644 --- a/src/org/linphone/compatibility/ApiElevenPlus.java +++ b/src/org/linphone/compatibility/ApiElevenPlus.java @@ -166,4 +166,18 @@ public class ApiElevenPlus { return intent; } + + @SuppressWarnings("deprecation") + public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { + Notification notif = new Notification.Builder(context) + .setContentTitle(title) + .setContentText(text) + .setContentIntent(intent) + .setSmallIcon(R.drawable.logo_linphone_57x57) + .setAutoCancel(true) + .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) + .setWhen(System.currentTimeMillis()).getNotification(); + + return notif; + } } diff --git a/src/org/linphone/compatibility/ApiFivePlus.java b/src/org/linphone/compatibility/ApiFivePlus.java index 39662f067..b0c66f825 100644 --- a/src/org/linphone/compatibility/ApiFivePlus.java +++ b/src/org/linphone/compatibility/ApiFivePlus.java @@ -401,4 +401,20 @@ public class ApiFivePlus { return notif; } + + public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { + Notification notif = new Notification(); + notif.icon = R.drawable.logo_linphone_57x57; + notif.iconLevel = 0; + notif.when = System.currentTimeMillis(); + notif.flags &= Notification.FLAG_ONGOING_EVENT; + + notif.defaults |= Notification.DEFAULT_VIBRATE; + notif.defaults |= Notification.DEFAULT_SOUND; + notif.defaults |= Notification.DEFAULT_LIGHTS; + + notif.setLatestEventInfo(context, title, text, intent); + + return notif; + } } diff --git a/src/org/linphone/compatibility/ApiSixteenPlus.java b/src/org/linphone/compatibility/ApiSixteenPlus.java index 07e9d97f9..f1fcd3fb0 100644 --- a/src/org/linphone/compatibility/ApiSixteenPlus.java +++ b/src/org/linphone/compatibility/ApiSixteenPlus.java @@ -107,4 +107,18 @@ public class ApiSixteenPlus { public static void removeGlobalLayoutListener(ViewTreeObserver viewTreeObserver, OnGlobalLayoutListener keyboardListener) { viewTreeObserver.removeOnGlobalLayoutListener(keyboardListener); } + + public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { + Notification notif = new Notification.Builder(context) + .setContentTitle(title) + .setContentText(text) + .setSmallIcon(R.drawable.logo_linphone_57x57) + .setAutoCancel(true) + .setContentIntent(intent) + .setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) + .setWhen(System.currentTimeMillis()) + .build(); + + return notif; + } } diff --git a/src/org/linphone/compatibility/ApiTwentyOnePlus.java b/src/org/linphone/compatibility/ApiTwentyOnePlus.java index e12b228b7..d379d8775 100644 --- a/src/org/linphone/compatibility/ApiTwentyOnePlus.java +++ b/src/org/linphone/compatibility/ApiTwentyOnePlus.java @@ -110,4 +110,20 @@ public class ApiTwentyOnePlus { public static void removeGlobalLayoutListener(ViewTreeObserver viewTreeObserver, OnGlobalLayoutListener keyboardListener) { viewTreeObserver.removeOnGlobalLayoutListener(keyboardListener); } + + public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { + Notification notif = new NotificationCompat.Builder(context) + .setContentTitle(title) + .setContentText(text) + .setSmallIcon(R.drawable.logo_linphone_57x57) + .setAutoCancel(true) + .setContentIntent(intent) + .setDefaults(Notification.DEFAULT_ALL) + .setCategory(Notification.CATEGORY_MESSAGE) + .setVisibility(Notification.VISIBILITY_PRIVATE) + .setPriority(Notification.PRIORITY_HIGH) + .build(); + + return notif; + } } diff --git a/src/org/linphone/compatibility/Compatibility.java b/src/org/linphone/compatibility/Compatibility.java index e5da3d243..e7235d336 100644 --- a/src/org/linphone/compatibility/Compatibility.java +++ b/src/org/linphone/compatibility/Compatibility.java @@ -153,6 +153,21 @@ public class Compatibility { } } + public static Notification createSimpleNotification(Context context, String title, String text, PendingIntent intent) { + Notification notif = null; + + if (Version.sdkAboveOrEqual(Version.API21_LOLLIPOP_50)) { + return ApiTwentyOnePlus.createSimpleNotification(context, title, text, intent); + } else if (Version.sdkAboveOrEqual(Version.API16_JELLY_BEAN_41)) { + notif = ApiSixteenPlus.createSimpleNotification(context, title, text, intent); + } else if (Version.sdkAboveOrEqual(Version.API11_HONEYCOMB_30)) { + notif = ApiElevenPlus.createSimpleNotification(context, title, text, intent); + } else { + notif = ApiFivePlus.createSimpleNotification(context, title, text, intent); + } + return notif; + } + public static Notification createMessageNotification(Context context, int msgCount, String msgSender, String msg, Bitmap contactIcon, PendingIntent intent) { Notification notif = null; String title;