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

Commit 229970b9 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Merge "Fixed the appearance of image messages that are out of view"...

Merge "Merge "Fixed the appearance of image messages that are out of view" into rvc-dev am: 3c2a6a28 am: 803be6f9" into rvc-d1-dev-plus-aosp am: 419ab47e

Change-Id: I38e5dcae8a769bf442a33cc71da8e92239ba3b67
parents 949a1213 419ab47e
Loading
Loading
Loading
Loading
+15 −27
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import android.os.Bundle;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.Gravity;
@@ -537,37 +536,26 @@ public class ConversationLayout extends FrameLayout
    }

    private void updateImageMessages() {
        boolean displayExternalImage = false;
        ArraySet<View> newMessages = new ArraySet<>();
        if (mIsCollapsed) {
        View newMessage = null;
        if (mIsCollapsed && mGroups.size() > 0) {

            // When collapsed, we're displaying all image messages in a dedicated container
            // on the right of the layout instead of inline. Let's add all isolated images there
            int imageIndex = 0;
            for (int i = 0; i < mGroups.size(); i++) {
                MessagingGroup messagingGroup = mGroups.get(i);
            // When collapsed, we're displaying the image message in a dedicated container
            // on the right of the layout instead of inline. Let's add the isolated image there
            MessagingGroup messagingGroup = mGroups.get(mGroups.size() -1);
            MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
            if (isolatedMessage != null) {
                    newMessages.add(isolatedMessage.getView());
                    displayExternalImage = true;
                    if (imageIndex
                            != mImageMessageContainer.indexOfChild(isolatedMessage.getView())) {
                        mImageMessageContainer.removeView(isolatedMessage.getView());
                        mImageMessageContainer.addView(isolatedMessage.getView(), imageIndex);
                    }
                    imageIndex++;
                }
                newMessage = isolatedMessage.getView();
            }
        }
        // Remove all messages that don't belong into the image layout
        for (int i = 0; i < mImageMessageContainer.getChildCount(); i++) {
            View child = mImageMessageContainer.getChildAt(i);
            if (!newMessages.contains(child)) {
                mImageMessageContainer.removeView(child);
                i--;
        View previousMessage = mImageMessageContainer.getChildAt(0);
        if (previousMessage != newMessage) {
            mImageMessageContainer.removeView(previousMessage);
            if (newMessage != null) {
                mImageMessageContainer.addView(newMessage);
            }
        }
        mImageMessageContainer.setVisibility(displayExternalImage ? VISIBLE : GONE);
        mImageMessageContainer.setVisibility(newMessage != null ? VISIBLE : GONE);
    }

    private void bindFacePile() {