Prevent corner-case where link previews were generated for SMS.

Also added some hardening to make sure that it's impossible for any link
previews to be fetched if the setting is disabled (this was already the
case in practice, we just have some assertions in there now).

Fixes #9956
This commit is contained in:
Greyson Parrelli
2020-08-27 10:52:47 -04:00
committed by Alan Evans
parent d3c9f66de6
commit c09dbfa47c
2 changed files with 30 additions and 8 deletions

View File

@@ -1840,6 +1840,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
sendButton.addOnTransportChangedListener((newTransport, manuallySelected) -> {
calculateCharactersRemaining();
updateLinkPreviewState();
linkPreviewViewModel.onTransportChanged(newTransport.isSms());
composeText.setTransport(newTransport);
buttonToggle.getBackground().setColorFilter(newTransport.getBackgroundColor(), PorterDuff.Mode.MULTIPLY);
@@ -2692,7 +2693,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
}
private void updateLinkPreviewState() {
if (SignalStore.settings().isLinkPreviewsEnabled() && !sendButton.getSelectedTransport().isSms() && !attachmentManager.isAttachmentPresent()) {
if (SignalStore.settings().isLinkPreviewsEnabled() && isSecureText && !sendButton.getSelectedTransport().isSms() && !attachmentManager.isAttachmentPresent()) {
linkPreviewViewModel.onEnabled();
linkPreviewViewModel.onTextChanged(this, composeText.getTextTrimmed().toString(), composeText.getSelectionStart(), composeText.getSelectionEnd());
} else {