From 1056adb5914d5e06ca9c8c7c89ea545b7f5d6fb2 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 20 Mar 2023 13:55:36 -0300 Subject: [PATCH] Move distribution type operation into ConversationViewModel. --- .../ConversationParentFragment.java | 22 ++----------------- .../conversation/ConversationRepository.java | 4 ++++ .../conversation/ConversationViewModel.java | 9 ++++++++ 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 6ba1d873f2..bd916f0e9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -1273,34 +1273,16 @@ public class ConversationParentFragment extends Fragment public void handleDistributionBroadcastEnabled(MenuItem item) { distributionType = ThreadTable.DistributionTypes.BROADCAST; draftViewModel.setDistributionType(distributionType); + viewModel.setDistributionType(distributionType); item.setChecked(true); - - if (threadId != -1) { - new AsyncTask() { - @Override - protected Void doInBackground(Void... params) { - SignalDatabase.threads().setDistributionType(threadId, ThreadTable.DistributionTypes.BROADCAST); - return null; - } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } } @Override public void handleDistributionConversationEnabled(MenuItem item) { distributionType = ThreadTable.DistributionTypes.CONVERSATION; draftViewModel.setDistributionType(distributionType); + viewModel.setDistributionType(distributionType); item.setChecked(true); - - if (threadId != -1) { - new AsyncTask() { - @Override - protected Void doInBackground(Void... params) { - SignalDatabase.threads().setDistributionType(threadId, ThreadTable.DistributionTypes.CONVERSATION); - return null; - } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java index b1e8f1d515..f2338e5875 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java @@ -216,4 +216,8 @@ class ConversationRepository { public void setConversationMuted(@NonNull RecipientId recipientId, long until) { SignalExecutors.BOUNDED.execute(() -> SignalDatabase.recipients().setMuted(recipientId, until)); } + + public void setConversationDistributionType(long threadId, int distributionType) { + SignalExecutors.BOUNDED.execute(() -> SignalDatabase.threads().setDistributionType(threadId, distributionType)); + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java index 4996b34d4d..93d654cac6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationViewModel.java @@ -260,6 +260,15 @@ public class ConversationViewModel extends ViewModel { } } + void setDistributionType(int distributionType) { + Long threadId = this.threadId.getValue(); + if (threadId == null) { + return; + } + + conversationRepository.setConversationDistributionType(threadId, distributionType); + } + void submitMarkReadRequest(long timestampSince) { markReadRequestPublisher.onNext(timestampSince); }