Ensure link preview fetches are canceled on message send.

master
Greyson Parrelli 2020-08-18 18:34:18 -04:00
parent 139317cf1b
commit 16147e0c08
2 changed files with 19 additions and 1 deletions

View File

@ -2366,6 +2366,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
attachmentManager.cleanup();
updateLinkPreviewState();
linkPreviewViewModel.onSend();
}
private void sendMessage() {

View File

@ -90,7 +90,11 @@ public class LinkPreviewViewModel extends ViewModel {
Util.runOnMain(() -> {
if (!userCanceled) {
if (lp.isPresent()) {
linkPreviewState.setValue(LinkPreviewState.forPreview(lp.get()));
if (activeUrl != null && activeUrl.equals(lp.get().getUrl())) {
linkPreviewState.setValue(LinkPreviewState.forPreview(lp.get()));
} else {
linkPreviewState.setValue(LinkPreviewState.forNoLinks());
}
} else {
linkPreviewState.setValue(LinkPreviewState.forLinksWithNoPreview());
}
@ -114,6 +118,19 @@ public class LinkPreviewViewModel extends ViewModel {
linkPreviewState.setValue(LinkPreviewState.forNoLinks());
}
public void onSend() {
if (activeRequest != null) {
activeRequest.cancel();
activeRequest = null;
}
userCanceled = false;
activeUrl = null;
debouncer.clear();
linkPreviewState.setValue(LinkPreviewState.forNoLinks());
}
public void onEnabled() {
userCanceled = false;
}