Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfb849d6 authored by InfinityDeltaX's avatar InfinityDeltaX
Browse files

Cleaned up more code in MessageListAdapter

parent 3b61f13a
Loading
Loading
Loading
Loading
+33 −36
Original line number Diff line number Diff line
@@ -276,51 +276,48 @@ public class MessageListAdapter extends RecyclerCursorAdapter<MessageListViewHol
    }

    private boolean shouldShowTimestamp(MessageItem messageItem, int position) {
        boolean showTimestamp;
        if (position == mCursor.getCount() - 1) {
            showTimestamp = true;
        } else if (messageItem.mDeliveryStatus != MessageItem.DeliveryStatus.NONE) {
            showTimestamp = true;
            return true;
        }

        MessageItem messageItem2 = getItem(position + 1);

        if (messageItem.mDeliveryStatus != MessageItem.DeliveryStatus.NONE) {
            return true;
        } else if (messageItem.isFailedMessage()) {
            showTimestamp = true;
            return true;
        } else if (messageItem.isSending()) {
            showTimestamp = true;
            return true;
        } else if (messagesFromDifferentPeople(messageItem, messageItem2)) {
            return true;
        } else {
            int MAX_DURATION = 60 * 60 * 1000;
            MessageItem messageItem2 = getItem(position + 1);
            showTimestamp = messageItem2.mDate - messageItem.mDate >= MAX_DURATION;


            if (messageItem.mAddress != null && messageItem2.mAddress != null &&
                    !messageItem.mAddress.equals(messageItem2.mAddress) &&
                    !messageItem.isOutgoingMessage() && !messageItem2.isOutgoingMessage()) {
                showTimestamp = true;
            }
            return (messageItem2.mDate - messageItem.mDate >= MAX_DURATION);
        }
        return showTimestamp;
    }

    private boolean shouldShowAvatar(MessageItem messageItem, int position) {
        boolean showAvatar;

        if (position == 0) {
            showAvatar = true;
        } else {
            int MAX_DURATION = 60 * 60 * 1000;
            return true;
        }

        MessageItem messageItem2 = getItem(position - 1);
            showAvatar = messageItem.getBoxId() != messageItem2.getBoxId() || messageItem.mDate - messageItem2.mDate >= MAX_DURATION;

        if (messagesFromDifferentPeople(messageItem, messageItem2)) {
            // If the messages are from different people, then we don't care about any of the other checks,
            // we need to show the avatar/timestamp. This is used for group chats, which is why we want
            // both to be incoming messages
            if (messageItem.mAddress != null && messageItem2.mAddress != null &&
                    !messageItem.mAddress.equals(messageItem2.mAddress) &&
                    !messageItem.isOutgoingMessage() && !messageItem2.isOutgoingMessage()) {
                showAvatar = true;
            return true;
        } else {
            int MAX_DURATION = 60 * 60 * 1000;
            return (messageItem.getBoxId() != messageItem2.getBoxId() || messageItem.mDate - messageItem2.mDate >= MAX_DURATION);
        }
    }

        return showAvatar;
    private boolean messagesFromDifferentPeople(MessageItem a, MessageItem b) {
        return (a.mAddress != null && b.mAddress != null &&
                !a.mAddress.equals(b.mAddress) &&
                !a.isOutgoingMessage() && !b.isOutgoingMessage());
    }

    private int getBubbleBackgroundResource(boolean showAvatar, boolean isMine) {