|
|
@ -63,7 +63,9 @@ import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAt
|
|
|
|
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview;
|
|
|
|
import org.session.libsession.messaging.sending_receiving.link_preview.LinkPreview;
|
|
|
|
import org.session.libsession.messaging.threads.recipients.Recipient;
|
|
|
|
import org.session.libsession.messaging.threads.recipients.Recipient;
|
|
|
|
import org.session.libsession.messaging.threads.recipients.RecipientModifiedListener;
|
|
|
|
import org.session.libsession.messaging.threads.recipients.RecipientModifiedListener;
|
|
|
|
|
|
|
|
import org.session.libsession.messaging.utilities.UpdateMessageData;
|
|
|
|
import org.session.libsession.utilities.GroupUtil;
|
|
|
|
import org.session.libsession.utilities.GroupUtil;
|
|
|
|
|
|
|
|
import org.session.libsession.utilities.OpenGroupUrlParser;
|
|
|
|
import org.session.libsession.utilities.TextSecurePreferences;
|
|
|
|
import org.session.libsession.utilities.TextSecurePreferences;
|
|
|
|
import org.session.libsession.utilities.ThemeUtil;
|
|
|
|
import org.session.libsession.utilities.ThemeUtil;
|
|
|
|
import org.session.libsession.utilities.Util;
|
|
|
|
import org.session.libsession.utilities.Util;
|
|
|
@ -92,6 +94,7 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil;
|
|
|
|
import org.thoughtcrime.securesms.loki.utilities.MentionUtilities;
|
|
|
|
import org.thoughtcrime.securesms.loki.utilities.MentionUtilities;
|
|
|
|
import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities;
|
|
|
|
import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities;
|
|
|
|
import org.thoughtcrime.securesms.loki.views.MessageAudioView;
|
|
|
|
import org.thoughtcrime.securesms.loki.views.MessageAudioView;
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.loki.views.OpenGroupInvitationView;
|
|
|
|
import org.thoughtcrime.securesms.loki.views.ProfilePictureView;
|
|
|
|
import org.thoughtcrime.securesms.loki.views.ProfilePictureView;
|
|
|
|
import org.thoughtcrime.securesms.mms.GlideRequests;
|
|
|
|
import org.thoughtcrime.securesms.mms.GlideRequests;
|
|
|
|
import org.thoughtcrime.securesms.mms.ImageSlide;
|
|
|
|
import org.thoughtcrime.securesms.mms.ImageSlide;
|
|
|
@ -156,6 +159,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
private Stub<DocumentView> documentViewStub;
|
|
|
|
private Stub<DocumentView> documentViewStub;
|
|
|
|
private Stub<LinkPreviewView> linkPreviewStub;
|
|
|
|
private Stub<LinkPreviewView> linkPreviewStub;
|
|
|
|
private Stub<StickerView> stickerStub;
|
|
|
|
private Stub<StickerView> stickerStub;
|
|
|
|
|
|
|
|
private Stub<OpenGroupInvitationView> openGroupInvitationViewStub;
|
|
|
|
private @Nullable EventListener eventListener;
|
|
|
|
private @Nullable EventListener eventListener;
|
|
|
|
|
|
|
|
|
|
|
|
private int defaultBubbleColor;
|
|
|
|
private int defaultBubbleColor;
|
|
|
@ -203,6 +207,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
this.documentViewStub = new Stub<>(findViewById(R.id.document_view_stub));
|
|
|
|
this.documentViewStub = new Stub<>(findViewById(R.id.document_view_stub));
|
|
|
|
this.linkPreviewStub = new Stub<>(findViewById(R.id.link_preview_stub));
|
|
|
|
this.linkPreviewStub = new Stub<>(findViewById(R.id.link_preview_stub));
|
|
|
|
this.stickerStub = new Stub<>(findViewById(R.id.sticker_view_stub));
|
|
|
|
this.stickerStub = new Stub<>(findViewById(R.id.sticker_view_stub));
|
|
|
|
|
|
|
|
this.openGroupInvitationViewStub = new Stub<>(findViewById(R.id.open_group_invitation_stub));
|
|
|
|
this.groupSenderHolder = findViewById(R.id.group_sender_holder);
|
|
|
|
this.groupSenderHolder = findViewById(R.id.group_sender_holder);
|
|
|
|
this.quoteView = findViewById(R.id.quote_view);
|
|
|
|
this.quoteView = findViewById(R.id.quote_view);
|
|
|
|
this.container = findViewById(R.id.container);
|
|
|
|
this.container = findViewById(R.id.container);
|
|
|
@ -467,7 +472,9 @@ public class ConversationItem extends LinearLayout
|
|
|
|
bodyText.setOverflowText(null);
|
|
|
|
bodyText.setOverflowText(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!messageRecord.isOpenGroupInvitation())
|
|
|
|
bodyText.setText(text);
|
|
|
|
bodyText.setText(text);
|
|
|
|
|
|
|
|
|
|
|
|
bodyText.setVisibility(View.VISIBLE);
|
|
|
|
bodyText.setVisibility(View.VISIBLE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -528,6 +535,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
if (mediaThumbnailStub.resolved()) mediaThumbnailStub.get().setVisibility(View.GONE);
|
|
|
|
if (mediaThumbnailStub.resolved()) mediaThumbnailStub.get().setVisibility(View.GONE);
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (openGroupInvitationViewStub.resolved()) openGroupInvitationViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0);
|
|
|
|
LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0);
|
|
|
@ -564,6 +572,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (openGroupInvitationViewStub.resolved()) openGroupInvitationViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
audioViewStub.get().setAudio(((MediaMmsMessageRecord) messageRecord).getSlideDeck().getAudioSlide(), showControls);
|
|
|
|
audioViewStub.get().setAudio(((MediaMmsMessageRecord) messageRecord).getSlideDeck().getAudioSlide(), showControls);
|
|
|
@ -580,6 +589,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
if (audioViewStub.resolved()) audioViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (audioViewStub.resolved()) audioViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (openGroupInvitationViewStub.resolved()) openGroupInvitationViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
documentViewStub.get().setDocument(((MediaMmsMessageRecord) messageRecord).getSlideDeck().getDocumentSlide(), showControls);
|
|
|
|
documentViewStub.get().setDocument(((MediaMmsMessageRecord) messageRecord).getSlideDeck().getDocumentSlide(), showControls);
|
|
|
@ -597,6 +607,7 @@ public class ConversationItem extends LinearLayout
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (openGroupInvitationViewStub.resolved()) openGroupInvitationViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
//noinspection ConstantConditions
|
|
|
|
List<Slide> thumbnailSlides = ((MmsMessageRecord) messageRecord).getSlideDeck().getThumbnailSlides();
|
|
|
|
List<Slide> thumbnailSlides = ((MmsMessageRecord) messageRecord).getSlideDeck().getThumbnailSlides();
|
|
|
@ -619,6 +630,29 @@ public class ConversationItem extends LinearLayout
|
|
|
|
ViewUtil.updateLayoutParams(groupSenderHolder, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
ViewUtil.updateLayoutParams(groupSenderHolder, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
|
|
|
|
|
|
|
|
footer.setVisibility(VISIBLE);
|
|
|
|
footer.setVisibility(VISIBLE);
|
|
|
|
|
|
|
|
} else if (messageRecord.isOpenGroupInvitation()) {
|
|
|
|
|
|
|
|
openGroupInvitationViewStub.get().setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
if (mediaThumbnailStub.resolved()) mediaThumbnailStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (audioViewStub.resolved()) audioViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (documentViewStub.resolved()) documentViewStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
if (linkPreviewStub.resolved()) linkPreviewStub.get().setVisibility(GONE);
|
|
|
|
|
|
|
|
if (stickerStub.resolved()) stickerStub.get().setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UpdateMessageData updateMessageData = UpdateMessageData.Companion.fromJSON(messageRecord.getBody());
|
|
|
|
|
|
|
|
String name = null, url = null;
|
|
|
|
|
|
|
|
if (updateMessageData.getKind() instanceof UpdateMessageData.Kind.OpenGroupInvitation) {
|
|
|
|
|
|
|
|
UpdateMessageData.Kind.OpenGroupInvitation data = (UpdateMessageData.Kind.OpenGroupInvitation)updateMessageData.getKind();
|
|
|
|
|
|
|
|
name = data.getGroupName();
|
|
|
|
|
|
|
|
url = OpenGroupUrlParser.INSTANCE.trimParameter(data.getGroupUrl());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
openGroupInvitationViewStub.get().setOpenGroup(name, url, messageRecord.isOutgoing());
|
|
|
|
|
|
|
|
openGroupInvitationViewStub.get().setOnLongClickListener(passthroughClickListener);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bodyText.setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ViewUtil.updateLayoutParams(bodyText, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
|
|
|
|
ViewUtil.updateLayoutParams(groupSenderHolder, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (mediaThumbnailStub.resolved()) mediaThumbnailStub.get().setVisibility(View.GONE);
|
|
|
|
if (mediaThumbnailStub.resolved()) mediaThumbnailStub.get().setVisibility(View.GONE);
|
|
|
|
if (audioViewStub.resolved()) audioViewStub.get().setVisibility(View.GONE);
|
|
|
|
if (audioViewStub.resolved()) audioViewStub.get().setVisibility(View.GONE);
|
|
|
|