From d6a417171a24f08181e03babfed1003470962fd1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 7 Mar 2019 16:31:45 +0100 Subject: [PATCH] Prevent call notifications from blinking --- .../linphone/notifications/Notifiable.java | 20 +++++++++++++++++++ .../notifications/NotificationsManager.java | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/app/src/main/java/org/linphone/notifications/Notifiable.java b/app/src/main/java/org/linphone/notifications/Notifiable.java index 66cd86d2e..1cd7839e5 100644 --- a/app/src/main/java/org/linphone/notifications/Notifiable.java +++ b/app/src/main/java/org/linphone/notifications/Notifiable.java @@ -29,11 +29,15 @@ public class Notifiable { private String mGroupTitle; private String mLocalIdentity; private String mMyself; + private int iconId; + private int textId; public Notifiable(int id) { mNotificationId = id; mMessages = new ArrayList<>(); mIsGroup = false; + iconId = 0; + textId = 0; } public int getNotificationId() { @@ -83,4 +87,20 @@ public class Notifiable { public void setLocalIdentity(String localIdentity) { mLocalIdentity = localIdentity; } + + public int getIconResourceId() { + return iconId; + } + + public void setIconResourceId(int id) { + iconId = id; + } + + public int getTextResourceId() { + return textId; + } + + public void setTextResourceId(int id) { + textId = id; + } } diff --git a/app/src/main/java/org/linphone/notifications/NotificationsManager.java b/app/src/main/java/org/linphone/notifications/NotificationsManager.java index 8cd4f7cb6..d067fb17d 100644 --- a/app/src/main/java/org/linphone/notifications/NotificationsManager.java +++ b/app/src/main/java/org/linphone/notifications/NotificationsManager.java @@ -341,6 +341,14 @@ public class NotificationsManager { break; } + if (notif.getIconResourceId() == iconId + && notif.getTextResourceId() == notificationTextId) { + // Notification hasn't changed, do not "update" it to avoid blinking + return; + } + notif.setIconResourceId(iconId); + notif.setTextResourceId(notificationTextId); + LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); Uri pictureUri = contact != null ? contact.getPhotoUri() : null; Bitmap bm = ImageUtils.getRoundBitmapFromUri(mContext, pictureUri);