diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 042a9ef4e..5e557f831 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -141,6 +141,7 @@ import dagger.android.DispatchingAndroidInjector import dagger.android.HasAndroidInjector import de.c1710.filemojicompat_ui.helpers.EMOJI_PREFERENCE import io.reactivex.rxjava3.schedulers.Schedulers +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject @@ -329,7 +330,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje updateAnnouncementsBadge() } is NewNotificationsEvent -> { - directMessageTab?.let { tab -> + directMessageTab?.let { if (event.accountId == activeAccount.accountId) { val hasDirectMessageNotification = event.notifications.any { it.type == Notification.Type.MENTION && it.status?.visibility == Status.Visibility.DIRECT } @@ -400,10 +401,12 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje tab.badge?.isVisible = showBadge // TODO a bit cumbersome (also for resetting) - accountManager.activeAccount?.let { - if (it.hasDirectMessageBadge != showBadge) { - it.hasDirectMessageBadge = showBadge - accountManager.saveAccount(it) + lifecycleScope.launch(Dispatchers.IO) { + accountManager.activeAccount?.let { + if (it.hasDirectMessageBadge != showBadge) { + it.hasDirectMessageBadge = showBadge + accountManager.saveAccount(it) + } } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt index 0b26635f3..3e7eb421e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsFragment.kt @@ -66,7 +66,6 @@ import com.mikepenz.iconics.utils.sizeDp import kotlinx.coroutines.delay import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking import javax.inject.Inject import kotlin.time.DurationUnit import kotlin.time.toDuration @@ -132,7 +131,7 @@ class ConversationsFragment : binding.progressBar.hide() if (loadState.isAnyLoading()) { - runBlocking { + lifecycleScope.launch { eventHub.dispatch(ConversationsLoadingEvent(accountManager.activeAccount?.accountId ?: "")) } }