diff --git a/app/src/main/java/com/nynja/mobile/communicator/ui/adapters/decorators/UnreadDividerDecoration.java b/app/src/main/java/com/nynja/mobile/communicator/ui/adapters/decorators/UnreadDividerDecoration.java index 3dfd2a809eb2d66cd64a65d57ff6c94deb373e5c..61d425d04a47d67474532612607e99911bbced36 100644 --- a/app/src/main/java/com/nynja/mobile/communicator/ui/adapters/decorators/UnreadDividerDecoration.java +++ b/app/src/main/java/com/nynja/mobile/communicator/ui/adapters/decorators/UnreadDividerDecoration.java @@ -115,9 +115,11 @@ public class UnreadDividerDecoration extends RecyclerView.ItemDecoration { View view = parent.getChildAt(i); final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) view.getLayoutParams(); final int position = params.getViewAdapterPosition(); - if (position < 0) return; + if (position < 0 || position >= items.size()) return; String unreadText = null; MessageModel lastMessage = items.isEmpty() ? null : items.get(items.size() - 1); + MessageModel currMessage = items.get(position); + MessageModel prevMessage = (position > 0 && position < items.size()) ? items.get(position - 1) : null; if (lastMessage != null && lastMessage.isUnreadForUI(mChatAdapter.getMyRoster().getRosterId()) && @@ -131,11 +133,14 @@ public class UnreadDividerDecoration extends RecyclerView.ItemDecoration { } } Long created = null; - if (items.size() > position && !items.get(position).isLoadingMessage() && (position == 0 || (position + 1 <= items.size() - && items.get(position - 1).created != null - && items.get(position).created != null - && !DateUtils.areSameDates(items.get(position - 1).created, items.get(position).created)))) { - created = items.get(position).created; + if (items.size() > position && + currMessage != null && !currMessage.isLoadingMessage() && + (position == 0 || + (prevMessage != null && + prevMessage.created != null && + currMessage.created != null && + !DateUtils.areSameDates(prevMessage.created, currMessage.created)))) { + created = currMessage.created; } drawText(c, parent, view, unreadText, created == null ? null : DateUtils.getChatDate(created)); }