From 0c332b6adb316c2d09cf66d855681852d38a423d Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 28 Aug 2020 09:25:08 -0400 Subject: [PATCH] Fix corner cases with LinkPreviewViewModel enabled state. --- .../securesms/conversation/ConversationActivity.java | 5 ----- .../securesms/linkpreview/LinkPreviewRepository.java | 5 +++++ .../securesms/linkpreview/LinkPreviewViewModel.java | 10 +++------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 02771d15d7..59aee28783 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -1903,11 +1903,6 @@ public class ConversationActivity extends PassphraseRequiredActivity private void initializeLinkPreviewObserver() { linkPreviewViewModel = ViewModelProviders.of(this, new LinkPreviewViewModel.Factory(new LinkPreviewRepository())).get(LinkPreviewViewModel.class); - if (!SignalStore.settings().isLinkPreviewsEnabled()) { - linkPreviewViewModel.onUserCancel(); - return; - } - linkPreviewViewModel.getLinkPreviewState().observe(this, previewState -> { if (previewState == null) return; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java index c9334df64d..6c505fccbb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java @@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupManager; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob; +import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil.OpenGraph; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.GlideApp; @@ -84,6 +85,10 @@ public class LinkPreviewRepository { @NonNull String url, @NonNull Callback callback) { + if (!SignalStore.settings().isLinkPreviewsEnabled()) { + throw new IllegalStateException(); + } + CompositeRequestController compositeController = new CompositeRequestController(); if (!LinkPreviewUtil.isValidPreviewUrl(url)) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java index 5ec5f0b77c..0237811713 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java @@ -138,9 +138,9 @@ public class LinkPreviewViewModel extends ViewModel { } public void onTransportChanged(boolean isSms) { - enabled = !isSms; + enabled = SignalStore.settings().isLinkPreviewsEnabled() && !isSms; - if (isSms) { + if (!enabled) { onUserCancel(); } } @@ -159,12 +159,8 @@ public class LinkPreviewViewModel extends ViewModel { } public void onEnabled() { - if (!SignalStore.settings().isLinkPreviewsEnabled()) { - throw new AssertionError(); - } - userCanceled = false; - enabled = true; + enabled = SignalStore.settings().isLinkPreviewsEnabled(); } @Override