From b292b4ccd12c6bd06349429dd2cb1cf199790a65 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Thu, 23 Jan 2020 16:25:05 -0500 Subject: [PATCH] conversations: fix time-group sequence break Change-Id: If745fbeacf582d8331ee64809eee0d7a42410045 --- .../main/java/cx/ring/adapters/ConversationAdapter.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java index 3ec9e81f8..97e73bc07 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java @@ -939,7 +939,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo } Interaction nextMsg = getNextMessageFromPosition(i); if (nextMsg != null) { - if (isSeqBreak(msg, nextMsg)) { + if (isSeqBreak(msg, nextMsg) || hasPermanentTimeString(nextMsg, i + 1)) { return SequenceType.SINGLE; } else { return SequenceType.FIRST; @@ -958,12 +958,13 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo Interaction prevMsg = getPreviousMessageFromPosition(i); Interaction nextMsg = getNextMessageFromPosition(i); if (prevMsg != null && nextMsg != null) { - if (((isSeqBreak(msg, prevMsg) || isTimeShown) && !isSeqBreak(msg, nextMsg))) { + boolean nextMsgHasTime = hasPermanentTimeString(nextMsg, i + 1); + if (((isSeqBreak(msg, prevMsg) || isTimeShown) && !(isSeqBreak(msg, nextMsg) || nextMsgHasTime))) { return SequenceType.FIRST; } else if (!isSeqBreak(msg, prevMsg) && !isTimeShown && isSeqBreak(msg, nextMsg)) { return SequenceType.LAST; } else if (!isSeqBreak(msg, prevMsg) && !isTimeShown && !isSeqBreak(msg, nextMsg)) { - return SequenceType.MIDDLE; + return nextMsgHasTime ? SequenceType.LAST : SequenceType.MIDDLE; } } return SequenceType.SINGLE; -- GitLab