Move distribution type operation into ConversationViewModel.

This commit is contained in:
Alex Hart
2023-03-20 13:55:36 -03:00
committed by Greyson Parrelli
parent 53716019b6
commit 1056adb591
3 changed files with 15 additions and 20 deletions

View File

@@ -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<Void, Void, Void>() {
@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<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
SignalDatabase.threads().setDistributionType(threadId, ThreadTable.DistributionTypes.CONVERSATION);
return null;
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
@Override

View File

@@ -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));
}
}

View File

@@ -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);
}