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 3ec9e81f8beeef91cd6f0ae0ff1bd6d06e7a2b49..97e73bc07d7b1001a9a2c0ddd762041801d207c8 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;