From 74b431d98831f2782ef133200bd2a770021476d3 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 6 Jul 2026 15:29:06 -0400 Subject: [PATCH] Move some usages of Dispatchers.IO to Dispatchers.Default. --- .../securesms/backup/ArchiveUploadProgress.kt | 4 ++-- .../backup/v2/ArchiveRestoreProgress.kt | 2 +- .../securesms/backup/v2/BackupRepository.kt | 2 +- .../backup/v2/ui/BackupAlertDelegate.kt | 2 +- .../MessageBackupsFlowViewModel.kt | 4 ++-- .../MonthlyDonationCanceledViewModel.kt | 2 +- .../securesms/calls/new/NewCallViewModel.kt | 2 +- .../settings/app/AppSettingsFragment.kt | 2 +- .../app/backups/BackupStateObserver.kt | 12 ++++++------ .../app/backups/BackupsSettingsViewModel.kt | 2 +- .../remote/BackupKeyDisplayViewModel.kt | 2 +- .../remote/RemoteBackupsSettingsViewModel.kt | 4 ++-- .../app/chats/folders/ChatFoldersViewModel.kt | 18 +++++++++--------- .../InternalBackupPlaygroundViewModel.kt | 4 ++-- .../DataSeedingPlaygroundViewModel.kt | 2 +- .../internal/issues/InternalIssuesViewModel.kt | 4 ++-- .../InternalSqlitePlaygroundViewModel.kt | 2 +- .../NotificationsSettingsViewModel.kt | 2 +- .../AdvancedPrivacySettingsViewModel.kt | 2 +- .../pnp/PhoneNumberPrivacySettingsViewModel.kt | 2 +- .../storage/ManageStorageSettingsViewModel.kt | 2 +- .../DonationPendingBottomSheetViewModel.kt | 2 +- .../donate/InAppPaymentCheckoutDelegate.kt | 2 +- .../donate/card/CreditCardViewModel.kt | 2 +- .../gateway/GatewaySelectorRepository.kt | 2 +- .../paypal/PayPalCompleteOrderBottomSheet.kt | 2 +- .../donate/stripe/Stripe3DSDialogFragment.kt | 2 +- .../ideal/IdealTransferDetailsViewModel.kt | 2 +- .../mandate/BankTransferMandateViewModel.kt | 2 +- .../manage/ManageDonationsViewModel.kt | 4 ++-- .../ConversationSettingsNavHostFragment.kt | 2 +- .../ConversationSettingsViewModel.kt | 6 +++--- .../InternalConversationSettingsFragment.kt | 2 +- ...SoundsAndNotificationsSettingsViewModel2.kt | 8 ++++---- .../components/webrtc/v2/CallPeerRepository.kt | 4 ++-- .../contacts/paged/ContactSearchViewModel.kt | 2 +- .../conversation/PinnedMessagesViewModel.kt | 2 +- .../clicklisteners/PollVotesViewModel.kt | 2 +- .../conversation/v2/ConversationFragment.kt | 2 +- .../conversation/v2/ConversationViewModel.kt | 14 +++++++------- .../ConversationListViewModel.kt | 8 ++++---- .../groups/GroupsInCommonRepository.kt | 4 ++-- .../MemberLabelEducationViewModel.kt | 2 +- .../memberlabel/MemberLabelRepository.kt | 12 ++++++------ .../groups/memberlabel/MemberLabelViewModel.kt | 2 +- .../ui/addmembers/AddMembersViewModel.kt | 4 ++-- .../ui/addtogroup/AddToGroupsViewModel.kt | 2 +- .../securesms/jobs/AttachmentBackfill.kt | 2 +- .../securesms/main/MainToolbarViewModel.kt | 2 +- .../mediasend/v2/review/AddMessageViewModel.kt | 2 +- .../mediasend/v3/MediaSendV3Repository.kt | 2 +- .../InternalMessageDetailsViewModel.kt | 2 +- .../securesms/nicknames/NicknameViewModel.kt | 4 ++-- .../securesms/recipients/Composables.kt | 2 +- .../securesms/recipients/ui/RecipientPicker.kt | 2 +- .../data/RegistrationRepository.kt | 2 +- .../v2/AppRegistrationStorageController.kt | 4 ++-- .../service/AttachmentProgressService.kt | 2 +- .../starred/StarredMessagesActivity.kt | 2 +- .../starred/StarredMessagesViewModel.kt | 4 ++-- .../manage/StickerManagementRepository.kt | 12 ++++++------ .../stories/archive/StoryArchiveViewModel.kt | 2 +- .../registration/RegistrationRepository.kt | 2 +- 63 files changed, 112 insertions(+), 112 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/ArchiveUploadProgress.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/ArchiveUploadProgress.kt index e828b3e1fe..7ee18d453e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/ArchiveUploadProgress.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/ArchiveUploadProgress.kt @@ -50,7 +50,7 @@ object ArchiveUploadProgress { private val TAG = Log.tag(ArchiveUploadProgress::class) - private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) + private val scope = CoroutineScope(Dispatchers.Default + SupervisorJob()) private val _progress: MutableSharedFlow = MutableSharedFlow(replay = 1) @@ -119,7 +119,7 @@ object ArchiveUploadProgress { updateState(notify = false) { updated } } .onStart { emit(uploadProgress) } - .flowOn(Dispatchers.IO) + .flowOn(Dispatchers.Default) .shareIn(scope, SharingStarted.Eagerly, replay = 1) init { diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveRestoreProgress.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveRestoreProgress.kt index 3c74f47304..c6e24331e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveRestoreProgress.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ArchiveRestoreProgress.kt @@ -82,7 +82,7 @@ object ArchiveRestoreProgress { val stateFlow: Flow = store .throttleLatest(1.seconds) .distinctUntilChanged() - .flowOn(Dispatchers.IO) + .flowOn(Dispatchers.Default) init { SignalExecutors.BOUNDED.execute { update() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index e2d8afa9f9..028d3ffa98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -646,7 +646,7 @@ object BackupRepository { val state = SignalStore.backup.backupDownloadNotifierState ?: return null val nextSheetDisplayTime = state.lastSheetDisplaySeconds.seconds + state.intervalSeconds.seconds - val remainingAttachmentSize = withContext(SignalDispatchers.IO) { + val remainingAttachmentSize = withContext(SignalDispatchers.Default) { SignalDatabase.attachments.getRemainingRestorableAttachmentSize() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt index 37f648fff3..85c82538aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/BackupAlertDelegate.kt @@ -49,7 +49,7 @@ object BackupAlertDelegate { } private suspend fun displayBackupDownloadNotifier(fragmentManager: FragmentManager) { - val downloadYourBackupToday = withContext(SignalDispatchers.IO) { BackupRepository.getDownloadYourBackupData() } + val downloadYourBackupToday = withContext(SignalDispatchers.Default) { BackupRepository.getDownloadYourBackupData() } when (downloadYourBackupToday?.type) { BackupDownloadNotifierState.Type.SHEET -> { Log.d(TAG, "Displaying 'Download your backup today' sheet.") diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt index 1063440cea..7d394b8147 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt @@ -145,7 +145,7 @@ class MessageBackupsFlowViewModel( } } catch (e: Exception) { Log.d(TAG, "Failed to handle purchase.", e) - withContext(SignalDispatchers.IO) { + withContext(SignalDispatchers.Default) { InAppPaymentsRepository.handlePipelineError( inAppPaymentId = id, error = e @@ -297,7 +297,7 @@ class MessageBackupsFlowViewModel( private fun validateTypeAndUpdateState(state: MessageBackupsFlowState): MessageBackupsFlowState { return when (state.selectedMessageBackupTier!!) { MessageBackupTier.FREE -> { - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/self/expired/MonthlyDonationCanceledViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/self/expired/MonthlyDonationCanceledViewModel.kt index 8068d15848..4cf927b01a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/self/expired/MonthlyDonationCanceledViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/self/expired/MonthlyDonationCanceledViewModel.kt @@ -40,7 +40,7 @@ class MonthlyDonationCanceledViewModel( private fun initializeFromInAppPaymentId(inAppPaymentId: InAppPaymentTable.InAppPaymentId) { viewModelScope.launch { - val inAppPayment = withContext(Dispatchers.IO) { + val inAppPayment = withContext(Dispatchers.Default) { SignalDatabase.inAppPayments.getById(inAppPaymentId) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/new/NewCallViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/new/NewCallViewModel.kt index bf3f9083de..759b7f1863 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/new/NewCallViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/new/NewCallViewModel.kt @@ -53,7 +53,7 @@ class NewCallViewModel : ViewModel() { } private suspend fun resolveAndStartCall(id: RecipientId) { - val recipient = withContext(Dispatchers.IO) { + val recipient = withContext(Dispatchers.Default) { Recipient.resolved(id) } openCall(recipient) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt index fdf1dd6194..bd933f3e1e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsFragment.kt @@ -180,7 +180,7 @@ class AppSettingsFragment : ComposeFragment(), Callbacks { @StringRes toastSuccessStringRes: Int ) { lifecycleScope.launch { - val subscriber = withContext(Dispatchers.IO) { + val subscriber = withContext(Dispatchers.Default) { InAppPaymentsRepository.getSubscriber(subscriberType) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupStateObserver.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupStateObserver.kt index 41449b09af..70e24ac0b8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupStateObserver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupStateObserver.kt @@ -58,7 +58,7 @@ class BackupStateObserver( companion object { private val TAG = Log.tag(BackupStateObserver::class) - private val staticScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) + private val staticScope = CoroutineScope(SupervisorJob() + Dispatchers.Default) private val backupTierChangedNotifier = MutableSharedFlow() /** @@ -107,13 +107,13 @@ class BackupStateObserver( } } - scope.launch(SignalDispatchers.IO) { + scope.launch(SignalDispatchers.Default) { backupTierChangedNotifier.collect { requestBackupStateRefresh() } } - scope.launch(SignalDispatchers.IO) { + scope.launch(SignalDispatchers.Default) { InternetConnectionObserver.observe().asFlow() .collect { if (backupState.value is BackupState.Error) { @@ -122,19 +122,19 @@ class BackupStateObserver( } } - scope.launch(SignalDispatchers.IO) { + scope.launch(SignalDispatchers.Default) { InAppPaymentsRepository.observeLatestBackupPayment().collect { requestBackupStateRefresh() } } - scope.launch(SignalDispatchers.IO) { + scope.launch(SignalDispatchers.Default) { SignalStore.backup.subscriptionStateMismatchDetectedFlow.collect { requestBackupStateRefresh() } } - scope.launch(SignalDispatchers.IO) { + scope.launch(SignalDispatchers.Default) { SignalStore.backup.deletionStateFlow.collect { requestBackupStateRefresh() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsViewModel.kt index 18d8404231..f9f1ecfe1f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/BackupsSettingsViewModel.kt @@ -51,7 +51,7 @@ class BackupsSettingsViewModel : ViewModel() { } } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalStore.backup.lastBackupTimeFlow .collect { lastBackupTime -> internalStateFlow.update { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/BackupKeyDisplayViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/BackupKeyDisplayViewModel.kt index ed6430d792..9ab71880cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/BackupKeyDisplayViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/BackupKeyDisplayViewModel.kt @@ -44,7 +44,7 @@ class BackupKeyDisplayViewModel : ViewModel(), BackupKeyCredentialManagerHandler viewModelScope.launch { internalUiState.update { it.copy(rotationState = BackupKeyRotationState.GENERATING_KEY) } - val stagedKeyRotations = withContext(SignalDispatchers.IO) { + val stagedKeyRotations = withContext(SignalDispatchers.Default) { BackupRepository.stageBackupKeyRotations() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt index b328431323..0020cc63ce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt @@ -143,7 +143,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { } } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { var optimizedRemainingBytes = 0L while (isActive) { if (ArchiveRestoreProgress.state.let { it.restoreState.isMediaRestoreOperation || it.restoreStatus == RestoreStatus.FINISHED }) { @@ -194,7 +194,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { } } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { BackupRepository.maybeFixAnyDanglingUploadProgress() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt index 897650b91d..f454a76e5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt @@ -24,7 +24,7 @@ class ChatFoldersViewModel : ViewModel() { val state = internalState.asStateFlow() fun loadCurrentFolders(context: Context) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val folders = ChatFoldersRepository.getCurrentFolders() val suggestedFolders = getSuggestedFolders(context, folders) @@ -93,7 +93,7 @@ class ChatFoldersViewModel : ViewModel() { } fun setCurrentFolder(folder: ChatFolderRecord) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val includedRecipients = folder.includedChats.mapNotNull { threadId -> SignalDatabase.threads.getRecipientForThreadId(threadId) } @@ -150,7 +150,7 @@ class ChatFoldersViewModel : ViewModel() { } fun deleteFolder(context: Context) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { ChatFoldersRepository.deleteFolder(internalState.value.originalFolder.folderRecord) loadCurrentFolders(context) @@ -167,7 +167,7 @@ class ChatFoldersViewModel : ViewModel() { } fun createFolder(context: Context, folder: ChatFolderRecord? = null) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val currentFolder = if (folder != null) ChatFolder(folder) else internalState.value.currentFolder ChatFoldersRepository.createFolder(currentFolder.folderRecord, currentFolder.includedRecipients, currentFolder.excludedRecipients) loadCurrentFolders(context) @@ -192,13 +192,13 @@ class ChatFoldersViewModel : ViewModel() { val updatedFolders = state.value.folders.mapIndexed { index, chatFolderRecord -> chatFolderRecord.copy(position = index) } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { ChatFoldersRepository.updatePositions(updatedFolders) } } fun updateFolder(context: Context) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val currentFolder = internalState.value.currentFolder ChatFoldersRepository.updateFolder(currentFolder.folderRecord, currentFolder.includedRecipients, currentFolder.excludedRecipients) loadCurrentFolders(context) @@ -210,7 +210,7 @@ class ChatFoldersViewModel : ViewModel() { } fun setPendingChats() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val currentFolder = internalState.value.currentFolder val includedChats = currentFolder.includedRecipients.map { recipient -> recipient.id }.toMutableSet() val excludedChats = currentFolder.excludedRecipients.map { recipient -> recipient.id }.toMutableSet() @@ -304,7 +304,7 @@ class ChatFoldersViewModel : ViewModel() { } fun savePendingChats() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val updatedFolder = internalState.value.currentFolder val includedChatIds = internalState.value.pendingIncludedRecipients val excludedChatIds = internalState.value.pendingExcludedRecipients @@ -346,7 +346,7 @@ class ChatFoldersViewModel : ViewModel() { fun setCurrentFolderId(folderId: Long) { if (folderId != -1L) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val folder = ChatFoldersRepository.getFolder(folderId) setCurrentFolder(folder) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt index f593d53634..88a7fcbf28 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt @@ -352,7 +352,7 @@ class InternalBackupPlaygroundViewModel : ViewModel() { } fun loadStats() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { launch { var stats = SignalDatabase.attachments.debugGetAttachmentStats() @@ -398,7 +398,7 @@ class InternalBackupPlaygroundViewModel : ViewModel() { return@withContext false } - suspend fun clearLocalMediaBackupState() = withContext(Dispatchers.IO) { + suspend fun clearLocalMediaBackupState() = withContext(Dispatchers.Default) { SignalDatabase.attachments.clearAllArchiveData() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/dataseeding/DataSeedingPlaygroundViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/dataseeding/DataSeedingPlaygroundViewModel.kt index 4b86f8dc16..3ebf8f2e1c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/dataseeding/DataSeedingPlaygroundViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/dataseeding/DataSeedingPlaygroundViewModel.kt @@ -41,7 +41,7 @@ class DataSeedingPlaygroundViewModel(application: Application) : AndroidViewMode val state: StateFlow = _state.asStateFlow() fun loadThreads() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { try { val threads = mutableListOf() val cursor: Cursor = SignalDatabase.threads.getRecentConversationList( diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/issues/InternalIssuesViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/issues/InternalIssuesViewModel.kt index 2778012565..ea143f1274 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/issues/InternalIssuesViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/issues/InternalIssuesViewModel.kt @@ -42,7 +42,7 @@ class InternalIssuesViewModel(application: Application) : AndroidViewModel(appli private fun load() { viewModelScope.launch { - allIssues = withContext(Dispatchers.IO) { issues.getRecent() } + allIssues = withContext(Dispatchers.Default) { issues.getRecent() } _state.update { it.copy(loading = false, notificationPriority = SignalStore.internal.issueNotificationPriority).withVisibleIssues() } } } @@ -54,7 +54,7 @@ class InternalIssuesViewModel(application: Application) : AndroidViewModel(appli private fun clearAll() { viewModelScope.launch { - withContext(Dispatchers.IO) { issues.clear() } + withContext(Dispatchers.Default) { issues.clear() } allIssues = emptyList() _state.update { it.copy(nameFilter = null, expandedIds = emptySet()).withVisibleIssues() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/sqlite/InternalSqlitePlaygroundViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/sqlite/InternalSqlitePlaygroundViewModel.kt index 4c2c19cc7a..406c06295a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/sqlite/InternalSqlitePlaygroundViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/sqlite/InternalSqlitePlaygroundViewModel.kt @@ -27,7 +27,7 @@ class InternalSqlitePlaygroundViewModel : ViewModel() { get() = _queryResults fun onQuerySubmitted(query: String) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { _queryResults.value = null val startTime = System.nanoTime() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt index 37060b27dc..5b043a132a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt @@ -33,7 +33,7 @@ class NotificationsSettingsViewModel(private val sharedPreferences: SharedPrefer // Calculating slow notification stuff isn't thread-safe, so we do it without to start off so we have most state populated, then fetch it in the background. store.update { getState(calculateSlowNotifications = false) } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { store.update { getState(calculateSlowNotifications = true) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt index 9c698496e2..d89df101b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt @@ -72,7 +72,7 @@ class AdvancedPrivacySettingsViewModel( fun setAllowAutomaticVerification(enabled: Boolean) { SignalStore.settings.automaticVerificationEnabled = enabled refresh() - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { if (!enabled) { SignalDatabase.recipients.clearAllKeyTransparencyData() SignalStore.account.distinguishedHead = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt index ddc62e478f..8bf0b4ab31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt @@ -32,7 +32,7 @@ class PhoneNumberPrivacySettingsViewModel : ViewModel() { val state: State = _state init { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { while (isActive) { refresh() delay(5.seconds) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt index 11b21dd02a..6230518e7e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt @@ -42,7 +42,7 @@ class ManageStorageSettingsViewModel : ViewModel() { val state = store.asStateFlow() init { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { InAppPaymentsRepository.observeLatestBackupPayment() .collectLatest { payment -> store.update { it.copy(isPaidTierPending = payment.state == InAppPaymentTable.State.PENDING) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPendingBottomSheetViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPendingBottomSheetViewModel.kt index aa85c8154c..d8cc04833b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPendingBottomSheetViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/DonationPendingBottomSheetViewModel.kt @@ -25,7 +25,7 @@ class DonationPendingBottomSheetViewModel( init { viewModelScope.launch { - val inAppPayment = withContext(SignalDispatchers.IO) { + val inAppPayment = withContext(SignalDispatchers.Default) { SignalDatabase.inAppPayments.getById(inAppPaymentId)!! } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/InAppPaymentCheckoutDelegate.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/InAppPaymentCheckoutDelegate.kt index a8da65e619..0ff4d8ff40 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/InAppPaymentCheckoutDelegate.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/InAppPaymentCheckoutDelegate.kt @@ -135,7 +135,7 @@ class InAppPaymentCheckoutDelegate( callback.onSubscriptionCancelled(InAppPaymentType.RECURRING_DONATION) } else { fragment.lifecycleScope.launch { - val inAppPayment = withContext(SignalDispatchers.IO) { + val inAppPayment = withContext(SignalDispatchers.Default) { SignalDatabase.inAppPayments.getById(result.inAppPaymentId!!)!! } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/card/CreditCardViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/card/CreditCardViewModel.kt index 5a275dcbcb..beee42ba70 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/card/CreditCardViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/card/CreditCardViewModel.kt @@ -38,7 +38,7 @@ class CreditCardViewModel( val calendar = Calendar.getInstance() viewModelScope.launch { - val inAppPayment = withContext(Dispatchers.IO) { + val inAppPayment = withContext(Dispatchers.Default) { SignalDatabase.inAppPayments.getById(inAppPaymentId)!! } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorRepository.kt index 1902a6852f..54b465806a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorRepository.kt @@ -37,7 +37,7 @@ object GatewaySelectorRepository { } suspend fun setInAppPaymentMethodType(inAppPayment: InAppPaymentTable.InAppPayment, paymentMethodType: InAppPaymentData.PaymentMethodType): InAppPaymentTable.InAppPayment { - return withContext(Dispatchers.IO) { + return withContext(Dispatchers.Default) { SignalDatabase.inAppPayments.update( inAppPayment.copy( data = inAppPayment.data.copy( diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalCompleteOrderBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalCompleteOrderBottomSheet.kt index ce6a4e3445..f34eb9d1df 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalCompleteOrderBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalCompleteOrderBottomSheet.kt @@ -39,7 +39,7 @@ class PayPalCompleteOrderBottomSheet : DSLSettingsBottomSheetFragment() { PayPalCompleteOrderPaymentItem.register(adapter) lifecycleScope.launch { - val inAppPayment = withContext(SignalDispatchers.IO) { + val inAppPayment = withContext(SignalDispatchers.Default) { SignalDatabase.inAppPayments.getById(args.inAppPaymentId)!! } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/Stripe3DSDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/Stripe3DSDialogFragment.kt index 12e111e9da..70ed2763b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/Stripe3DSDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/Stripe3DSDialogFragment.kt @@ -119,7 +119,7 @@ class Stripe3DSDialogFragment : DialogFragment(R.layout.donation_webview_fragmen val progress = ProgressCardDialogFragment.create() progress.show(parentFragmentManager, null) - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { SignalDatabase.inAppPayments.update(args.waitingForAuthPayment) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsViewModel.kt index 88e165fdcf..5e9061b83f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsViewModel.kt @@ -23,7 +23,7 @@ class IdealTransferDetailsViewModel(inAppPaymentId: InAppPaymentTable.InAppPayme init { viewModelScope.launch { - val inAppPayment = withContext(Dispatchers.IO) { + val inAppPayment = withContext(Dispatchers.Default) { SignalDatabase.inAppPayments.getById(inAppPaymentId)!! } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateViewModel.kt index 8c575637c4..dce8b67ab8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateViewModel.kt @@ -56,7 +56,7 @@ class BankTransferMandateViewModel( } suspend fun getPaymentMethodType(): InAppPaymentData.PaymentMethodType { - return withContext(SignalDispatchers.IO) { + return withContext(SignalDispatchers.Default) { SignalDatabase.inAppPayments.getById(inAppPaymentId)!!.data.paymentMethodType } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsViewModel.kt index ea5ff1b8c3..fa86ed48b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsViewModel.kt @@ -50,7 +50,7 @@ class ManageDonationsViewModel : ViewModel() { } } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { InAppPaymentsRepository.observeInAppPaymentRedemption(InAppPaymentType.RECURRING_DONATION) .asFlow() .collect { redemptionStatus -> @@ -71,7 +71,7 @@ class ManageDonationsViewModel : ViewModel() { } } - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { InAppPaymentsRepository.observeInAppPaymentRedemption(InAppPaymentType.ONE_TIME_DONATION) .asFlow() .collect { redemptionStatus -> diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsNavHostFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsNavHostFragment.kt index 81594d0866..1b905944a9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsNavHostFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsNavHostFragment.kt @@ -23,7 +23,7 @@ class ConversationSettingsNavHostFragment : NavHostFragment(), FragmentBackPress companion object { suspend fun createArgs(recipientId: RecipientId): Bundle { - val recipient = withContext(Dispatchers.IO) { Recipient.resolved(recipientId) } + val recipient = withContext(Dispatchers.Default) { Recipient.resolved(recipientId) } val args = if (recipient.isGroup) { ConversationSettingsFragmentArgs.Builder(null, recipient.requireGroupId(), null) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt index 083f332556..0267d0c964 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt @@ -157,7 +157,7 @@ sealed class ConversationSettingsViewModel( if (state.threadId > 0) { val newArchived = !state.isArchived store.update { it.copy(isArchived = newArchived) } - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { repository.setArchived(state.threadId, newArchived) } } @@ -548,7 +548,7 @@ sealed class ConversationSettingsViewModel( repository.unblock(groupId) } - private fun loadMemberLabels(v2GroupId: GroupId.V2, groupMembers: List) = viewModelScope.launch(SignalDispatchers.IO) { + private fun loadMemberLabels(v2GroupId: GroupId.V2, groupMembers: List) = viewModelScope.launch(SignalDispatchers.Default) { val labelsByRecipientId = MemberLabelRepository.instance .getLabels(v2GroupId, groupMembers.map { it.member }) @@ -561,7 +561,7 @@ sealed class ConversationSettingsViewModel( } } - private fun loadCanSetMemberLabel(groupId: GroupId.V2) = viewModelScope.launch(SignalDispatchers.IO) { + private fun loadCanSetMemberLabel(groupId: GroupId.V2) = viewModelScope.launch(SignalDispatchers.Default) { val canSetLabel = MemberLabelRepository.instance.canSetLabel(groupId, Recipient.self()) store.update { it.copy( diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt index d597b4a735..fade58e6de 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt @@ -174,7 +174,7 @@ class InternalConversationSettingsFragment : ComposeFragment(), InternalConversa } override fun add1000Messages(recipientId: RecipientId) { - viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) { + viewLifecycleOwner.lifecycleScope.launch(Dispatchers.Default) { val recipient = Recipient.live(recipientId).get() val messageCount = 1000 val startTime = System.currentTimeMillis() - messageCount diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel2.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel2.kt index a642b3dad0..d2f1a084b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/sounds/SoundsAndNotificationsSettingsViewModel2.kt @@ -71,25 +71,25 @@ class SoundsAndNotificationsSettingsViewModel2( } private fun applySetMuteUntil(muteUntil: Long) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalDatabase.recipients.setMuted(recipientId, muteUntil) } } private fun applySetMentionSetting(setting: NotificationSetting) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalDatabase.recipients.setMentionSetting(recipientId, setting) } } private fun applySetCallNotificationSetting(setting: NotificationSetting) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalDatabase.recipients.setCallNotificationSetting(recipientId, setting) } } private fun applySetReplyNotificationSetting(setting: NotificationSetting) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalDatabase.recipients.setReplyNotificationSetting(recipientId, setting) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallPeerRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallPeerRepository.kt index 47208cb5db..7e155cd8c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallPeerRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallPeerRepository.kt @@ -41,13 +41,13 @@ class CallPeerRepository( private val recipient: Flow = liveRecipient.flatMapLatest { it.observable().asFlow() } private val groupRecipient = recipient.filter { it.isActiveGroup } private val groupRecord: Flow = groupRecipient.mapLatest { - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { SignalDatabase.groups.getGroup(it.requireGroupId()).get() } } val groupMembers: Flow> = groupRecord.mapLatest { record -> - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { record.members.map { Recipient.resolved(it) }.map { GroupMemberEntry.FullMember(it, record.isAdmin(it)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt index 4d5d13fa8f..8810b5d78a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchViewModel.kt @@ -157,7 +157,7 @@ class ContactSearchViewModel( suspend fun setConfiguration(contactSearchConfiguration: ContactSearchConfiguration) { internalSearchInProgress.value = true try { - val (pagedDataSource, size) = withContext(Dispatchers.IO) { + val (pagedDataSource, size) = withContext(Dispatchers.Default) { val source = ContactSearchPagedDataSource( contactSearchConfiguration, arbitraryRepository = arbitraryRepository, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/PinnedMessagesViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/PinnedMessagesViewModel.kt index 1805cc3bd1..6b3a27c650 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/PinnedMessagesViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/PinnedMessagesViewModel.kt @@ -56,7 +56,7 @@ class PinnedMessagesViewModel( } fun unpinMessage() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { repository.getPinnedMessageRecords(threadId).map { val unpinJob = UnpinMessageJob.create(messageId = it.id) if (unpinJob != null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/PollVotesViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/PollVotesViewModel.kt index fad90bbef4..bd72df61db 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/PollVotesViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/PollVotesViewModel.kt @@ -31,7 +31,7 @@ class PollVotesViewModel(pollId: Long) : ViewModel() { } private fun loadPollInfo(pollId: Long) { - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { val poll = SignalDatabase.polls.getPollFromId(pollId)!! val mostVotes = poll.pollOptions.maxByOrNull { option -> option.voters.size }?.voters?.size _state.update { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index f3eee4ef75..6bf4934d0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -1247,7 +1247,7 @@ class ConversationFragment : viewLifecycleOwner.lifecycle.addObserver(LastScrolledPositionUpdater(adapter, layoutManager, viewModel)) - viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) { + viewLifecycleOwner.lifecycleScope.launch(Dispatchers.Default) { var wasTerminated: Boolean? = null viewModel .groupRecordFlow diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 4429d5f245..ee827a1efc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -349,7 +349,7 @@ class ConversationViewModel( } fun onAvatarDownloadFailed() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val recipient = recipientSnapshot if (recipient != null) { recipients.manuallyUpdateShowAvatar(recipient.id, false) @@ -359,7 +359,7 @@ class ConversationViewModel( } private fun getPinnedMessages() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val threadRecipient = SignalDatabase.threads.getRecipientForThreadId(threadId) internalPinnedMessages.value = repository.getPinnedMessages(threadId).map { ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(AppDependencies.application, it, threadRecipient!!) @@ -436,18 +436,18 @@ class ConversationViewModel( ), transform = { it.toList() } ) - .flowOn(Dispatchers.IO) + .flowOn(Dispatchers.Default) } fun onCollapseEvents(messageId: Long) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { repository.collapseEvents(messageId) pagingController.onDataInvalidated() } } fun onExpandEvents(messageId: Long) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { repository.expandEvents(messageId) pagingController.onDataInvalidated() } @@ -743,7 +743,7 @@ class ConversationViewModel( } fun toggleVote(poll: PollRecord, pollOption: PollOption, isChecked: Boolean) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val voteCount = if (isChecked) { SignalDatabase.polls.insertVote(poll, pollOption) } else { @@ -825,7 +825,7 @@ class ConversationViewModel( } fun collapseAllEvents() { - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { repository.collapseAllEvents() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt index a8d8fe5939..31722bad86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt @@ -215,7 +215,7 @@ sealed class ConversationListViewModel( } private fun loadCurrentFolders() { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val folders = ChatFoldersRepository.getCurrentFolders() val unreadCountAndEmptyAndMutedStatus: Map> = if (folders.size > 1) { @@ -263,7 +263,7 @@ sealed class ConversationListViewModel( } fun onUpdateMute(chatFolder: ChatFolderRecord, until: Long) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val ids = SignalDatabase.threads.getRecipientIdsByChatFolder(chatFolder) val recipientIds: List = ids.filter { id -> Recipient.resolved(id).muteUntil != until @@ -284,14 +284,14 @@ sealed class ConversationListViewModel( } fun removeChatFromFolder(threadId: Long) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { SignalDatabase.chatFolders.removeFromFolder(currentFolder.id, threadId) scheduleChatFolderSync(currentFolder.id) } } fun addToFolder(folderId: Long, threadIds: List) { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val includedChats = folders.find { it.chatFolder.id == folderId }?.chatFolder?.includedChats val threadIdsNotIncluded = threadIds.filterNot { threadId -> includedChats?.contains(threadId) ?: false diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupsInCommonRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupsInCommonRepository.kt index a51ae7439e..297e0f197d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupsInCommonRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupsInCommonRepository.kt @@ -33,7 +33,7 @@ object GroupsInCommonRepository { getGroupsInCommonCount(recipientId) } - suspend fun getGroupsInCommonCount(recipientId: RecipientId): Int = withContext(Dispatchers.IO) { + suspend fun getGroupsInCommonCount(recipientId: RecipientId): Int = withContext(Dispatchers.Default) { SignalDatabase.groups .getPushGroupsContainingMember(recipientId) .count { it.members.contains(Recipient.self().id) } @@ -56,7 +56,7 @@ object GroupsInCommonRepository { } } - private suspend fun getGroupsContainingRecipient(context: Context, recipientId: RecipientId): List = withContext(Dispatchers.IO) { + private suspend fun getGroupsContainingRecipient(context: Context, recipientId: RecipientId): List = withContext(Dispatchers.Default) { SignalDatabase.groups .getPushGroupsContainingMember(recipientId) .asSequence() diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelEducationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelEducationViewModel.kt index 34cdb4b760..d61aed57fc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelEducationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelEducationViewModel.kt @@ -30,7 +30,7 @@ class MemberLabelEducationViewModel( val uiState: StateFlow = _uiState.asStateFlow() init { - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { val self = Recipient.self() val selfMemberLabel = repository.getLabel(groupId, self.id) val selfCanSetLabel = repository.canSetLabel(groupId, self) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelRepository.kt index 54dc5ccafb..9a8ff03ebf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelRepository.kt @@ -40,7 +40,7 @@ class MemberLabelRepository private constructor( val instance: MemberLabelRepository by lazy { MemberLabelRepository() } } - suspend fun getRecipient(recipientId: RecipientId): Recipient = withContext(Dispatchers.IO) { + suspend fun getRecipient(recipientId: RecipientId): Recipient = withContext(Dispatchers.Default) { Recipient.resolved(recipientId) } @@ -83,7 +83,7 @@ class MemberLabelRepository private constructor( /** * Gets the member label for a specific recipient in the group. */ - suspend fun getLabel(groupId: GroupId.V2, recipient: Recipient): MemberLabel? = withContext(Dispatchers.IO) { + suspend fun getLabel(groupId: GroupId.V2, recipient: Recipient): MemberLabel? = withContext(Dispatchers.Default) { getLabelSync(groupId, recipient) } @@ -92,14 +92,14 @@ class MemberLabelRepository private constructor( * * Returns a map of [RecipientId] to [MemberLabel] for members that have labels. */ - suspend fun getLabels(groupId: GroupId.V2, recipients: List): Map = withContext(Dispatchers.IO) { + suspend fun getLabels(groupId: GroupId.V2, recipients: List): Map = withContext(Dispatchers.Default) { getLabelsSync(groupId, recipients) } /** * Checks whether [recipient] has permission to set their member label in the given group. */ - suspend fun canSetLabel(groupId: GroupId.V2, recipient: Recipient): Boolean = withContext(Dispatchers.IO) { + suspend fun canSetLabel(groupId: GroupId.V2, recipient: Recipient): Boolean = withContext(Dispatchers.Default) { val groupRecord = groupsTable.getGroup(groupId).orNull() ?: return@withContext false if (!isSelfAnActiveGroupMember(groupRecord)) return@withContext false @@ -116,7 +116,7 @@ class MemberLabelRepository private constructor( /** * Computes the sender [NameColor] for a recipient as seen by other group members. */ - suspend fun getSenderNameColor(groupId: GroupId.V2, recipient: Recipient): NameColor = withContext(Dispatchers.IO) { + suspend fun getSenderNameColor(groupId: GroupId.V2, recipient: Recipient): NameColor = withContext(Dispatchers.Default) { val groupMemberIds = groupsTable .getGroupMembers(groupId, GroupTable.MemberSet.FULL_MEMBERS_INCLUDING_SELF) .mapNotNull { it.serviceId.orNull() } @@ -127,7 +127,7 @@ class MemberLabelRepository private constructor( /** * Returns all group members who have labels set for the given group. */ - suspend fun getMembersWithLabels(groupId: GroupId.V2): List = withContext(Dispatchers.IO) { + suspend fun getMembersWithLabels(groupId: GroupId.V2): List = withContext(Dispatchers.Default) { val groupRecord = groupsTable.getGroup(groupId).orNull() ?: return@withContext emptyList() if (!isSelfAnActiveGroupMember(groupRecord)) return@withContext emptyList() diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelViewModel.kt index cd7fdae648..483af53b70 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/memberlabel/MemberLabelViewModel.kt @@ -50,7 +50,7 @@ class MemberLabelViewModel( } private fun loadInitialState() { - viewModelScope.launch(SignalDispatchers.IO) { + viewModelScope.launch(SignalDispatchers.Default) { val recipient = memberLabelRepo.getRecipient(recipientId) val memberLabel = memberLabelRepo.getLabel(groupId, recipient) originalLabelEmoji = memberLabel?.emoji.orEmpty() diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.kt index bae545a167..8a1f71d4f1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.kt @@ -50,7 +50,7 @@ class AddMembersViewModel( suspend fun shouldAllowSelection(selection: RecipientSelection): Boolean { val recipientHasE164 = selection is RecipientSelection.HasId && - withContext(Dispatchers.IO) { Recipient.resolved(selection.id) }.hasE164 + withContext(Dispatchers.Default) { Recipient.resolved(selection.id) }.hasE164 return when { groupId.isV1 && !recipientHasE164 -> { @@ -101,7 +101,7 @@ class AddMembersViewModel( val confirmAddMessage = if (uiState.value.newSelections.size == 1) { UserMessage.ConfirmAddMember( group = group, - recipient = withContext(Dispatchers.IO) { + recipient = withContext(Dispatchers.Default) { Recipient.resolved(uiState.value.newSelections.single().orCreateRecipientId) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupsViewModel.kt index 07dc92a1a9..26232ef591 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupsViewModel.kt @@ -56,7 +56,7 @@ class AddToGroupsViewModel( private fun confirmAddToGroup(groupRecipientId: RecipientId) { viewModelScope.launch { - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { if (!existingGroupMemberships.contains(groupRecipientId)) { internalUiState.update { it.copy( diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentBackfill.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentBackfill.kt index dc1f4b9380..e35de4f95b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentBackfill.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentBackfill.kt @@ -77,7 +77,7 @@ object AttachmentBackfill { /** The scope the response timeouts run on. Overridable so tests can drive the timeout with virtual time. */ @VisibleForTesting - internal var timeoutScope: CoroutineScope = CoroutineScope(Dispatchers.IO + SupervisorJob()) + internal var timeoutScope: CoroutineScope = CoroutineScope(Dispatchers.Default + SupervisorJob()) /** * Considers a backfill request for [messageId] after a permanent download failure. The attachment is flagged diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainToolbarViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainToolbarViewModel.kt index 0f1b141678..c66a759b21 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainToolbarViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainToolbarViewModel.kt @@ -34,7 +34,7 @@ class MainToolbarViewModel : ViewModel() { fun refresh() { viewModelScope.launch { - val self = withContext(SignalDispatchers.IO) { + val self = withContext(SignalDispatchers.Default) { Recipient.self().resolve() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageViewModel.kt index da4e57368d..2e55392078 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageViewModel.kt @@ -31,7 +31,7 @@ class AddMessageViewModel(initialMessage: CharSequence?) : ViewModel() { iterator.setText(it) AddMessageCharacterCount(iterator.countBreaks()) } - .flowOn(Dispatchers.IO) + .flowOn(Dispatchers.Default) } fun updateAddAMessageCount(input: CharSequence?) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v3/MediaSendV3Repository.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v3/MediaSendV3Repository.kt index 58a2d3b8f8..5bee4c9dda 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v3/MediaSendV3Repository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v3/MediaSendV3Repository.kt @@ -150,7 +150,7 @@ object MediaSendV3Repository : MediaSendRepository { } } - override suspend fun checkUntrustedIdentities(contactIds: Set, since: Long): List = withContext(Dispatchers.IO) { + override suspend fun checkUntrustedIdentities(contactIds: Set, since: Long): List = withContext(Dispatchers.Default) { if (contactIds.isEmpty()) return@withContext emptyList() val recipients: List = contactIds diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/InternalMessageDetailsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/InternalMessageDetailsViewModel.kt index 9198a3b3d5..d79a2be5db 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/InternalMessageDetailsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/InternalMessageDetailsViewModel.kt @@ -22,7 +22,7 @@ class InternalMessageDetailsViewModel(val messageId: Long) : ViewModel() { val state: State = _state init { - viewModelScope.launch(Dispatchers.IO) { + viewModelScope.launch(Dispatchers.Default) { val messageRecord = SignalDatabase.messages.getMessageRecord(messageId) val attachments = SignalDatabase.attachments.getAttachmentsForMessage(messageId) diff --git a/app/src/main/java/org/thoughtcrime/securesms/nicknames/NicknameViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/nicknames/NicknameViewModel.kt index 06f97f8e84..29344db387 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/nicknames/NicknameViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/nicknames/NicknameViewModel.kt @@ -97,7 +97,7 @@ class NicknameViewModel( viewModelScope.launch { internalState.value = state.value.copy(formState = NicknameState.FormState.SAVING) - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { SignalDatabase.recipients.setNicknameAndNote( recipientId, ProfileName.EMPTY, @@ -115,7 +115,7 @@ class NicknameViewModel( val stateSnapshot = state.value.copy(formState = NicknameState.FormState.SAVING) internalState.value = stateSnapshot - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { SignalDatabase.recipients.setNicknameAndNote( recipientId, ProfileName.fromParts(stateSnapshot.firstName, stateSnapshot.lastName), diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Composables.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/Composables.kt index 5daab81ef3..20bbc9a167 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Composables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Composables.kt @@ -38,7 +38,7 @@ private fun rememberRecipientField(recipientId: RecipientId, initialData: Re var recipientAndCounter by remember(recipientId) { mutableStateOf(initialData to 0L) } LaunchedEffect(recipientId) { - withContext(SignalDispatchers.IO) { + withContext(SignalDispatchers.Default) { Recipient.observable(recipientId) .asFlow() .collect { diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/RecipientPicker.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/RecipientPicker.kt index d2063a6db8..6ad102c399 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/RecipientPicker.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/RecipientPicker.kt @@ -312,7 +312,7 @@ private suspend fun showItemContextMenu( callbacks: RecipientPickerCallbacks.ContextMenu ) { val context = anchorView.context - val recipient = withContext(Dispatchers.IO) { + val recipient = withContext(Dispatchers.Default) { Recipient.resolved(contactSearchKey.requireRecipientSearchKey().recipientId) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/data/RegistrationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/data/RegistrationRepository.kt index 59c6624399..38bc8cac57 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/data/RegistrationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/data/RegistrationRepository.kt @@ -149,7 +149,7 @@ object RegistrationRepository { * Queries, and creates if needed, the local profile key. */ @JvmStatic - suspend fun getProfileKey(e164: String): ProfileKey = withContext(Dispatchers.IO) { + suspend fun getProfileKey(e164: String): ProfileKey = withContext(Dispatchers.Default) { // TODO [regv2]: make creation more explicit instead of hiding it in this getter val recipientTable = SignalDatabase.recipients val recipient = recipientTable.getByE164(e164) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/AppRegistrationStorageController.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/AppRegistrationStorageController.kt index bb51f0c709..7d923de9c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/AppRegistrationStorageController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/AppRegistrationStorageController.kt @@ -82,7 +82,7 @@ class AppRegistrationStorageController(private val context: Context) : StorageCo private val LEGACY_BACKUP_PATTERN = Regex("^signal-(\\d{4})-(\\d{2})-(\\d{2})-(\\d{2})-(\\d{2})-(\\d{2})\\.backup$") } - override suspend fun getPreExistingRegistrationData(): PreExistingRegistrationData? = withContext(Dispatchers.IO) { + override suspend fun getPreExistingRegistrationData(): PreExistingRegistrationData? = withContext(Dispatchers.Default) { if (!SignalStore.account.isRegistered) { return@withContext null } @@ -277,7 +277,7 @@ class AppRegistrationStorageController(private val context: Context) : StorageCo RegistrationUtil.maybeMarkRegistrationComplete() } - override suspend fun setRestoreDecision(decision: RestoreDecision) = withContext(Dispatchers.IO) { + override suspend fun setRestoreDecision(decision: RestoreDecision) = withContext(Dispatchers.Default) { if (!SignalStore.registration.restoreDecisionState.isDecisionPending) { return@withContext } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/AttachmentProgressService.kt b/app/src/main/java/org/thoughtcrime/securesms/service/AttachmentProgressService.kt index 9ba7bfbdfe..35a823d5f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/AttachmentProgressService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/AttachmentProgressService.kt @@ -168,7 +168,7 @@ class AttachmentProgressService : SafeForegroundService() { } class Controller(private val context: Context, title: String) : AutoCloseable { - private val coroutineScope = CoroutineScope(Dispatchers.IO) + private val coroutineScope = CoroutineScope(Dispatchers.Default) private val progressFlow = MutableSharedFlow(replay = 0, extraBufferCapacity = 1) init { diff --git a/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesActivity.kt index 4508f75656..3f6b02720c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesActivity.kt @@ -129,7 +129,7 @@ class StarredMessagesActivity : PassphraseRequiredActivity() { private fun navigateToMessage(messageRecord: MessageRecord) { lifecycleScope.launch { - val (threadRecipient, startingPosition) = withContext(Dispatchers.IO) { + val (threadRecipient, startingPosition) = withContext(Dispatchers.Default) { val position = SignalDatabase.messages.getMessagePositionInConversation(messageRecord.threadId, messageRecord.dateReceived) val recipient = SignalDatabase.threads.getRecipientForThreadId(messageRecord.threadId) Pair(recipient, maxOf(0, position)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesViewModel.kt index 3ee80c1b12..2ba535b111 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/starred/StarredMessagesViewModel.kt @@ -45,11 +45,11 @@ class StarredMessagesViewModel( } } .distinctUntilChanged() - .flowOn(Dispatchers.IO) + .flowOn(Dispatchers.Default) } suspend fun unstarMessage(messageId: Long) { - withContext(Dispatchers.IO) { + withContext(Dispatchers.Default) { SignalDatabase.messages.setStarred(messageId, false) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerManagementRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerManagementRepository.kt index b4ed33dec8..f8805d8ed2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerManagementRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerManagementRepository.kt @@ -37,7 +37,7 @@ object StickerManagementRepository { private val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver private val stickersDbTable: StickerTable = SignalDatabase.stickers private val attachmentsDbTable: AttachmentTable = SignalDatabase.attachments - private val coroutineScope: CoroutineScope = CoroutineScope(Dispatchers.IO) + private val coroutineScope: CoroutineScope = CoroutineScope(Dispatchers.Default) /** * Emits the sticker packs along with any updates. @@ -58,7 +58,7 @@ object StickerManagementRepository { } } - private suspend fun loadStickerPacks(): StickerPacksResult = withContext(Dispatchers.IO) { + private suspend fun loadStickerPacks(): StickerPacksResult = withContext(Dispatchers.Default) { StickerPackRecordReader(stickersDbTable.getAllStickerPacks()).use { reader -> val installedPacks = mutableListOf() val availablePacks = mutableListOf() @@ -83,7 +83,7 @@ object StickerManagementRepository { } } - suspend fun deleteOrphanedStickerPacks() = withContext(Dispatchers.IO) { + suspend fun deleteOrphanedStickerPacks() = withContext(Dispatchers.Default) { stickersDbTable.deleteOrphanedPacks() } @@ -104,7 +104,7 @@ object StickerManagementRepository { } } - suspend fun installStickerPack(packId: StickerPackId, packKey: StickerPackKey, notify: Boolean) = withContext(Dispatchers.IO) { + suspend fun installStickerPack(packId: StickerPackId, packKey: StickerPackKey, notify: Boolean) = withContext(Dispatchers.Default) { if (stickersDbTable.isPackAvailableAsReference(packId.value)) { stickersDbTable.markPackAsInstalled(packId.value, notify) } @@ -123,7 +123,7 @@ object StickerManagementRepository { } } - suspend fun uninstallStickerPacks(packKeysById: Map) = withContext(Dispatchers.IO) { + suspend fun uninstallStickerPacks(packKeysById: Map) = withContext(Dispatchers.Default) { stickersDbTable.uninstallPacks(packIds = packKeysById.keys) if (SignalStore.account.isMultiDevice) { @@ -133,7 +133,7 @@ object StickerManagementRepository { } } - suspend fun setStickerPacksOrder(packsInOrder: List) = withContext(Dispatchers.IO) { + suspend fun setStickerPacksOrder(packsInOrder: List) = withContext(Dispatchers.Default) { stickersDbTable.updatePackOrder(packsInOrder) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/archive/StoryArchiveViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/archive/StoryArchiveViewModel.kt index c8018404f0..cd62bf6842 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/archive/StoryArchiveViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/archive/StoryArchiveViewModel.kt @@ -101,7 +101,7 @@ class StoryArchiveViewModel : ViewModel() { pagedDataJob?.cancel() pagedDataJob = viewModelScope.launch { - val size = withContext(Dispatchers.IO) { dataSource.size() } + val size = withContext(Dispatchers.Default) { dataSource.size() } if (size == 0) { _state.value = _state.value.copy(stories = emptyList(), isLoading = false) return@launch diff --git a/feature/registration/src/main/java/org/signal/registration/RegistrationRepository.kt b/feature/registration/src/main/java/org/signal/registration/RegistrationRepository.kt index 0764f2aff1..f28072412d 100644 --- a/feature/registration/src/main/java/org/signal/registration/RegistrationRepository.kt +++ b/feature/registration/src/main/java/org/signal/registration/RegistrationRepository.kt @@ -738,7 +738,7 @@ class RegistrationRepository(val context: Context, val networkController: Networ * and commits it. The app translates this into its own restore-decision state so the rest of the app knows what * happened during registration. */ - suspend fun setRestoreDecision(decision: RestoreDecision): Unit = withContext(Dispatchers.IO) { + suspend fun setRestoreDecision(decision: RestoreDecision): Unit = withContext(Dispatchers.Default) { Log.i(TAG, "[setRestoreDecision] Recording restore decision: $decision") storageController.setRestoreDecision(decision) }