From 77a2ef87b34ea7b4679e30a4304651c1d011bec7 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Thu, 16 Aug 2012 07:26:22 +0000 Subject: [PATCH] Changes the way we read count of unread notifications, to show to user overall number of unread voice messages. --- .../impl/gui/main/UINotification.java | 34 +++++++++++++++++++ .../impl/gui/main/UINotificationGroup.java | 7 +++- .../notifsource/NotificationGroup.java | 3 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/net/java/sip/communicator/impl/gui/main/UINotification.java b/src/net/java/sip/communicator/impl/gui/main/UINotification.java index 18a9c90c6..5165f60b3 100644 --- a/src/net/java/sip/communicator/impl/gui/main/UINotification.java +++ b/src/net/java/sip/communicator/impl/gui/main/UINotification.java @@ -32,6 +32,11 @@ public class UINotification */ private final Date notificationTime; + /** + * Number of unread objects like calls or messages. + */ + private int unreadObjects = 0; + /** * Creates an instance of UINotification by specifying the * notification name and time. @@ -45,10 +50,30 @@ public class UINotification public UINotification( String displayName, Date time, UINotificationGroup parentGroup) + { + this(displayName, time, parentGroup, 1); + } + + /** + * Creates an instance of UINotification by specifying the + * notification name and time. + * + * notification belongs + * @param displayName the name associated to this notification + * @param time the time when the notification was received + * @param parentGroup the group of notifications, to which this notification + * belongs + * @param unreadObjects number of unread objects for this notification. + */ + public UINotification( String displayName, + Date time, + UINotificationGroup parentGroup, + int unreadObjects) { this.notificationName = displayName; this.notificationTime = time; this.parentGroup = parentGroup; + this.unreadObjects = unreadObjects; } /** @@ -80,4 +105,13 @@ public UINotificationGroup getGroup() { return parentGroup; } + + /** + * Returns the number of unread objects for this notification. + * @return + */ + public int getUnreadObjects() + { + return unreadObjects; + } } diff --git a/src/net/java/sip/communicator/impl/gui/main/UINotificationGroup.java b/src/net/java/sip/communicator/impl/gui/main/UINotificationGroup.java index 87637461e..076f658e6 100644 --- a/src/net/java/sip/communicator/impl/gui/main/UINotificationGroup.java +++ b/src/net/java/sip/communicator/impl/gui/main/UINotificationGroup.java @@ -108,7 +108,12 @@ public int getUnreadNotificationsCount() { synchronized (unreadNotifications) { - return unreadNotifications.size(); + int count = 0; + + for(UINotification n : unreadNotifications) + count += n.getUnreadObjects(); + + return count; } } } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java index 669d96609..599976b4f 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java @@ -310,7 +310,8 @@ private void addNotificationContact( contact.getDisplayName() + " : " + contact.getDisplayDetails(), new Date(), - uiNotificationGroup)); + uiNotificationGroup, + contact.getUnreadMessageCount())); } } }