diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-06-30 23:08:55 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2016-06-30 23:08:55 +0200 |
commit | 30110431ba0d0833519b5bbb5427d6373f247c85 (patch) | |
tree | 6114e6e774b6468a739b5c8e26bda238cb6f3cf1 /src/main/java/eu/siacs/conversations/entities | |
parent | 91c3732c630064b0d23b910b951495c65447e194 (diff) |
use dnd as overriding status
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities')
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Contact.java | 11 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Presences.java | 13 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Contact.java b/src/main/java/eu/siacs/conversations/entities/Contact.java index 551b6aab..f061413b 100644 --- a/src/main/java/eu/siacs/conversations/entities/Contact.java +++ b/src/main/java/eu/siacs/conversations/entities/Contact.java @@ -148,7 +148,7 @@ public class Contact implements ListItem, Blockable { for (final String group : getGroups()) { tags.add(new Tag(group, UIHelper.getColorForName(group))); } - Presence.Status status = getMostAvailableStatus(); + Presence.Status status = getShownStatus(); if (status != Presence.Status.OFFLINE) { tags.add(UIHelper.getTagForStatus(context, status)); } @@ -237,13 +237,8 @@ public class Contact implements ListItem, Blockable { this.resetOption(Options.PENDING_SUBSCRIPTION_REQUEST); } - public Presence.Status getMostAvailableStatus() { - Presence p = this.presences.getMostAvailablePresence(); - if (p == null) { - return Presence.Status.OFFLINE; - } - - return p.getStatus(); + public Presence.Status getShownStatus() { + return this.presences.getShownStatus(); } public boolean setPhotoUri(String uri) { diff --git a/src/main/java/eu/siacs/conversations/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java index 9e94ff2b..6391f5bb 100644 --- a/src/main/java/eu/siacs/conversations/entities/Presences.java +++ b/src/main/java/eu/siacs/conversations/entities/Presences.java @@ -34,11 +34,18 @@ public class Presences { } } - public Presence getMostAvailablePresence() { + public Presence.Status getShownStatus() { + Presence.Status status = Presence.Status.OFFLINE; synchronized (this.presences) { - if (presences.size() < 1) { return null; } - return Collections.min(presences.values()); + for(Presence p : presences.values()) { + if (p.getStatus() == Presence.Status.DND) { + return p.getStatus(); + } else if (p.getStatus().compareTo(status) < 0){ + status = p.getStatus(); + } + } } + return status; } public int size() { |