Merge "Fixed the appearance of image messages that are out of view" into rvc-dev am: 3c2a6a281e am: 803be6f9d6 am: caa74785a8
Change-Id: Id0e1ed4f59480517df1bf95ad771db4d2ae878fe
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user