mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 20:15:21 +00:00
Merge pull request #23 from loki-project/bug-fix
Correctly show quote author name in group chats.
This commit is contained in:
commit
c70de8c569
@ -150,8 +150,8 @@ public class InputPanel extends LinearLayout
|
|||||||
composeText.setMediaListener(listener);
|
composeText.setMediaListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setQuote(@NonNull GlideRequests glideRequests, long id, @NonNull Recipient author, @NonNull String body, @NonNull SlideDeck attachments) {
|
public void setQuote(@NonNull GlideRequests glideRequests, long id, @NonNull Recipient author, @NonNull String body, @NonNull SlideDeck attachments, @NonNull Recipient conversationRecipient) {
|
||||||
this.quoteView.setQuote(glideRequests, id, author, body, false, attachments);
|
this.quoteView.setQuote(glideRequests, id, author, body, false, attachments, conversationRecipient);
|
||||||
this.quoteView.setVisibility(View.VISIBLE);
|
this.quoteView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
if (this.linkPreview.getVisibility() == View.VISIBLE) {
|
if (this.linkPreview.getVisibility() == View.VISIBLE) {
|
||||||
|
@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.mms.Slide;
|
|||||||
import org.thoughtcrime.securesms.mms.SlideDeck;
|
import org.thoughtcrime.securesms.mms.SlideDeck;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientModifiedListener;
|
import org.thoughtcrime.securesms.recipients.RecipientModifiedListener;
|
||||||
|
import org.thoughtcrime.securesms.util.GroupUtil;
|
||||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.whispersystems.signalservice.loki.api.LokiGroupChatAPI;
|
import org.whispersystems.signalservice.loki.api.LokiGroupChatAPI;
|
||||||
@ -58,6 +59,7 @@ public class QuoteView extends FrameLayout implements RecipientModifiedListener
|
|||||||
private long id;
|
private long id;
|
||||||
private Recipient author;
|
private Recipient author;
|
||||||
private String body;
|
private String body;
|
||||||
|
private Recipient conversationRecipient;
|
||||||
private TextView mediaDescriptionText;
|
private TextView mediaDescriptionText;
|
||||||
private TextView missingLinkText;
|
private TextView missingLinkText;
|
||||||
private SlideDeck attachments;
|
private SlideDeck attachments;
|
||||||
@ -145,7 +147,8 @@ public class QuoteView extends FrameLayout implements RecipientModifiedListener
|
|||||||
@NonNull Recipient author,
|
@NonNull Recipient author,
|
||||||
@Nullable String body,
|
@Nullable String body,
|
||||||
boolean originalMissing,
|
boolean originalMissing,
|
||||||
@NonNull SlideDeck attachments)
|
@NonNull SlideDeck attachments,
|
||||||
|
@NonNull Recipient conversationRecipient)
|
||||||
{
|
{
|
||||||
if (this.author != null) this.author.removeListener(this);
|
if (this.author != null) this.author.removeListener(this);
|
||||||
|
|
||||||
@ -153,6 +156,7 @@ public class QuoteView extends FrameLayout implements RecipientModifiedListener
|
|||||||
this.author = author;
|
this.author = author;
|
||||||
this.body = body;
|
this.body = body;
|
||||||
this.attachments = attachments;
|
this.attachments = attachments;
|
||||||
|
this.conversationRecipient = conversationRecipient;
|
||||||
|
|
||||||
author.addListener(this);
|
author.addListener(this);
|
||||||
setQuoteAuthor(author);
|
setQuoteAuthor(author);
|
||||||
@ -193,6 +197,18 @@ public class QuoteView extends FrameLayout implements RecipientModifiedListener
|
|||||||
if (quoteeDisplayName.equals(author.getAddress().toString())) {
|
if (quoteeDisplayName.equals(author.getAddress().toString())) {
|
||||||
quoteeDisplayName = DatabaseFactory.getLokiUserDatabase(getContext()).getServerDisplayName(LokiGroupChatAPI.getPublicChatServer() + "." + LokiGroupChatAPI.getPublicChatServerID(), author.getAddress().toString());
|
quoteeDisplayName = DatabaseFactory.getLokiUserDatabase(getContext()).getServerDisplayName(LokiGroupChatAPI.getPublicChatServer() + "." + LokiGroupChatAPI.getPublicChatServerID(), author.getAddress().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we're in a group then try and use the display name in the group
|
||||||
|
if (conversationRecipient.isGroupRecipient()) {
|
||||||
|
try {
|
||||||
|
String serverId = GroupUtil.getDecodedStringId(conversationRecipient.getAddress().serialize());
|
||||||
|
String senderDisplayName = DatabaseFactory.getLokiUserDatabase(getContext()).getServerDisplayName(serverId, author.getAddress().serialize());
|
||||||
|
if (senderDisplayName != null) { quoteeDisplayName = senderDisplayName; }
|
||||||
|
} catch (Exception e) {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
authorView.setText(isOwnNumber ? getContext().getString(R.string.QuoteView_you) : quoteeDisplayName);
|
authorView.setText(isOwnNumber ? getContext().getString(R.string.QuoteView_you) : quoteeDisplayName);
|
||||||
|
|
||||||
// We use the raw color resource because Android 4.x was struggling with tints here
|
// We use the raw color resource because Android 4.x was struggling with tints here
|
||||||
|
@ -2750,7 +2750,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
messageRecord.getDateSent(),
|
messageRecord.getDateSent(),
|
||||||
author,
|
author,
|
||||||
body,
|
body,
|
||||||
slideDeck);
|
slideDeck,
|
||||||
|
recipient);
|
||||||
|
|
||||||
} else if (messageRecord.isMms() && !((MmsMessageRecord) messageRecord).getLinkPreviews().isEmpty()) {
|
} else if (messageRecord.isMms() && !((MmsMessageRecord) messageRecord).getLinkPreviews().isEmpty()) {
|
||||||
LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0);
|
LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0);
|
||||||
@ -2764,13 +2765,15 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
messageRecord.getDateSent(),
|
messageRecord.getDateSent(),
|
||||||
author,
|
author,
|
||||||
messageRecord.getBody(),
|
messageRecord.getBody(),
|
||||||
slideDeck);
|
slideDeck,
|
||||||
|
recipient);
|
||||||
} else {
|
} else {
|
||||||
inputPanel.setQuote(GlideApp.with(this),
|
inputPanel.setQuote(GlideApp.with(this),
|
||||||
messageRecord.getDateSent(),
|
messageRecord.getDateSent(),
|
||||||
author,
|
author,
|
||||||
messageRecord.getBody(),
|
messageRecord.getBody(),
|
||||||
messageRecord.isMms() ? ((MmsMessageRecord) messageRecord).getSlideDeck() : new SlideDeck());
|
messageRecord.isMms() ? ((MmsMessageRecord) messageRecord).getSlideDeck() : new SlideDeck(),
|
||||||
|
recipient);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -788,7 +788,7 @@ public class ConversationItem extends LinearLayout
|
|||||||
if (current.isMms() && !current.isMmsNotification() && ((MediaMmsMessageRecord)current).getQuote() != null) {
|
if (current.isMms() && !current.isMmsNotification() && ((MediaMmsMessageRecord)current).getQuote() != null) {
|
||||||
Quote quote = ((MediaMmsMessageRecord)current).getQuote();
|
Quote quote = ((MediaMmsMessageRecord)current).getQuote();
|
||||||
//noinspection ConstantConditions
|
//noinspection ConstantConditions
|
||||||
quoteView.setQuote(glideRequests, quote.getId(), Recipient.from(context, quote.getAuthor(), true), quote.getText(), quote.isOriginalMissing(), quote.getAttachment());
|
quoteView.setQuote(glideRequests, quote.getId(), Recipient.from(context, quote.getAuthor(), true), quote.getText(), quote.isOriginalMissing(), quote.getAttachment(), conversationRecipient);
|
||||||
quoteView.setVisibility(View.VISIBLE);
|
quoteView.setVisibility(View.VISIBLE);
|
||||||
quoteView.getLayoutParams().width = ViewGroup.LayoutParams.WRAP_CONTENT;
|
quoteView.getLayoutParams().width = ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user