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

Commit 3012ec31 authored by Selim Cinek's avatar Selim Cinek Committed by Automerger Merge Worker
Browse files

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

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

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


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


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


    private void bindFacePile() {
    private void bindFacePile() {