diff --git a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java index 91b6598a9..b5b8e8ce7 100644 --- a/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java +++ b/app/src/main/java/org/linphone/compatibility/ApiTwentySixPlus.java @@ -107,6 +107,23 @@ class ApiTwentySixPlus { notificationManager.createNotificationChannel(channel); } + public static void createMissedCallChannel(Context context) { + NotificationManager notificationManager = + (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + // Create missed call notification channel + String id = context.getString(R.string.notification_missed_call_channel_id); + String name = context.getString(R.string.content_title_notification_missed_call); + String description = context.getString(R.string.content_title_notification_missed_call); + NotificationChannel channel = + new NotificationChannel(id, name, NotificationManager.IMPORTANCE_LOW); + channel.setDescription(description); + channel.setLightColor(context.getColor(R.color.notification_led_color)); + channel.enableLights(true); + channel.enableVibration(true); + channel.setShowBadge(true); + notificationManager.createNotificationChannel(channel); + } + public static Notification createMessageNotification( Context context, Notifiable notif, Bitmap contactIcon, PendingIntent intent) { @@ -262,14 +279,14 @@ class ApiTwentySixPlus { public static Notification createMissedCallNotification( Context context, String title, String text, PendingIntent intent, int count) { return new Notification.Builder( - context, context.getString(R.string.notification_channel_id)) + context, context.getString(R.string.notification_missed_call_channel_id)) .setContentTitle(title) .setContentText(text) .setSmallIcon(R.drawable.call_status_missed) .setAutoCancel(true) .setContentIntent(intent) .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE) - .setCategory(Notification.CATEGORY_EVENT) + //.setCategory(Notification.CATEGORY_EVENT) No one really matches "missed call" .setVisibility(Notification.VISIBILITY_PRIVATE) .setPriority(Notification.PRIORITY_HIGH) .setWhen(System.currentTimeMillis()) diff --git a/app/src/main/java/org/linphone/compatibility/Compatibility.java b/app/src/main/java/org/linphone/compatibility/Compatibility.java index 587eb8dc8..2749e5cf2 100644 --- a/app/src/main/java/org/linphone/compatibility/Compatibility.java +++ b/app/src/main/java/org/linphone/compatibility/Compatibility.java @@ -71,6 +71,7 @@ public class Compatibility { if (Version.sdkAboveOrEqual(Version.API26_O_80)) { ApiTwentySixPlus.createServiceChannel(context); ApiTwentySixPlus.createMessageChannel(context); + ApiTwentySixPlus.createMissedCallChannel(context); } } diff --git a/app/src/main/res/values/non_localizable_custom.xml b/app/src/main/res/values/non_localizable_custom.xml index 6245f96f5..590768902 100644 --- a/app/src/main/res/values/non_localizable_custom.xml +++ b/app/src/main/res/values/non_localizable_custom.xml @@ -22,6 +22,7 @@ linphone-android@belledonne-communications.com linphone_notification_service_id linphone_notification_id + linphone_notification_missed_call_id true diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b80d51490..018740105 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -644,6 +644,7 @@ Exit conference Linphone service notification Linphone instant messages notifications + Linphone missed calls notifications Group chat room subject Group chat room info Record call