Fix corner cases with LinkPreviewViewModel enabled state.

This commit is contained in:
Greyson Parrelli 2020-08-28 09:25:08 -04:00
parent ba712ce357
commit 0c332b6adb
3 changed files with 8 additions and 12 deletions

View File

@ -1903,11 +1903,6 @@ public class ConversationActivity extends PassphraseRequiredActivity
private void initializeLinkPreviewObserver() { private void initializeLinkPreviewObserver() {
linkPreviewViewModel = ViewModelProviders.of(this, new LinkPreviewViewModel.Factory(new LinkPreviewRepository())).get(LinkPreviewViewModel.class); linkPreviewViewModel = ViewModelProviders.of(this, new LinkPreviewViewModel.Factory(new LinkPreviewRepository())).get(LinkPreviewViewModel.class);
if (!SignalStore.settings().isLinkPreviewsEnabled()) {
linkPreviewViewModel.onUserCancel();
return;
}
linkPreviewViewModel.getLinkPreviewState().observe(this, previewState -> { linkPreviewViewModel.getLinkPreviewState().observe(this, previewState -> {
if (previewState == null) return; if (previewState == null) return;

View File

@ -25,6 +25,7 @@ import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.groups.GroupManager; import org.thoughtcrime.securesms.groups.GroupManager;
import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl;
import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob; import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil.OpenGraph; import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil.OpenGraph;
import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.logging.Log;
import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.GlideApp;
@ -84,6 +85,10 @@ public class LinkPreviewRepository {
@NonNull String url, @NonNull String url,
@NonNull Callback callback) @NonNull Callback callback)
{ {
if (!SignalStore.settings().isLinkPreviewsEnabled()) {
throw new IllegalStateException();
}
CompositeRequestController compositeController = new CompositeRequestController(); CompositeRequestController compositeController = new CompositeRequestController();
if (!LinkPreviewUtil.isValidPreviewUrl(url)) { if (!LinkPreviewUtil.isValidPreviewUrl(url)) {

View File

@ -138,9 +138,9 @@ public class LinkPreviewViewModel extends ViewModel {
} }
public void onTransportChanged(boolean isSms) { public void onTransportChanged(boolean isSms) {
enabled = !isSms; enabled = SignalStore.settings().isLinkPreviewsEnabled() && !isSms;
if (isSms) { if (!enabled) {
onUserCancel(); onUserCancel();
} }
} }
@ -159,12 +159,8 @@ public class LinkPreviewViewModel extends ViewModel {
} }
public void onEnabled() { public void onEnabled() {
if (!SignalStore.settings().isLinkPreviewsEnabled()) {
throw new AssertionError();
}
userCanceled = false; userCanceled = false;
enabled = true; enabled = SignalStore.settings().isLinkPreviewsEnabled();
} }
@Override @Override