Loading app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/FoldersLiveData.ktdeleted 100644 → 0 +0 −58 Original line number Diff line number Diff line package com.fsck.k9.ui.folders import androidx.lifecycle.LiveData import com.fsck.k9.Account import com.fsck.k9.Account.FolderMode import com.fsck.k9.AccountsChangeListener import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.controller.SimpleMessagingListener import com.fsck.k9.mailstore.DisplayFolder import com.fsck.k9.mailstore.FolderRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class FoldersLiveData( private val folderRepository: FolderRepository, private val messagingController: MessagingController, private val preferences: Preferences, val account: Account, val displayMode: FolderMode? ) : LiveData<List<DisplayFolder>>() { private val messagingListener = object : SimpleMessagingListener() { override fun folderStatusChanged(account: Account, folderId: Long) { if (account.uuid == this@FoldersLiveData.account.uuid) { loadFoldersAsync() } } } private val accountsListener = AccountsChangeListener { loadFoldersAsync() } private fun loadFoldersAsync() { GlobalScope.launch(Dispatchers.Main) { val displayFolders = withContext(Dispatchers.IO) { folderRepository.getDisplayFolders(account, displayMode) } value = displayFolders } } override fun onActive() { super.onActive() messagingController.addListener(messagingListener) preferences.addOnAccountsChangeListener(accountsListener) loadFoldersAsync() } override fun onInactive() { super.onInactive() messagingController.removeListener(messagingListener) preferences.removeOnAccountsChangeListener(accountsListener) } } app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/FoldersLiveDataFactory.ktdeleted 100644 → 0 +0 −17 Original line number Diff line number Diff line package com.fsck.k9.ui.folders import com.fsck.k9.Account import com.fsck.k9.Account.FolderMode import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.mailstore.FolderRepository class FoldersLiveDataFactory( private val folderRepository: FolderRepository, private val messagingController: MessagingController, private val preferences: Preferences ) { fun create(account: Account, displayMode: FolderMode? = null): FoldersLiveData { return FoldersLiveData(folderRepository, messagingController, preferences, account, displayMode) } } app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/KoinModule.kt +0 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,5 @@ import org.koin.dsl.module val foldersUiModule = module { single { FolderNameFormatterFactory() } factory { (context: Context) -> FolderNameFormatter(context.resources) } single { FoldersLiveDataFactory(get(), get(), get()) } viewModel { FoldersViewModel(folderRepository = get()) } } Loading
app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/FoldersLiveData.ktdeleted 100644 → 0 +0 −58 Original line number Diff line number Diff line package com.fsck.k9.ui.folders import androidx.lifecycle.LiveData import com.fsck.k9.Account import com.fsck.k9.Account.FolderMode import com.fsck.k9.AccountsChangeListener import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.controller.SimpleMessagingListener import com.fsck.k9.mailstore.DisplayFolder import com.fsck.k9.mailstore.FolderRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class FoldersLiveData( private val folderRepository: FolderRepository, private val messagingController: MessagingController, private val preferences: Preferences, val account: Account, val displayMode: FolderMode? ) : LiveData<List<DisplayFolder>>() { private val messagingListener = object : SimpleMessagingListener() { override fun folderStatusChanged(account: Account, folderId: Long) { if (account.uuid == this@FoldersLiveData.account.uuid) { loadFoldersAsync() } } } private val accountsListener = AccountsChangeListener { loadFoldersAsync() } private fun loadFoldersAsync() { GlobalScope.launch(Dispatchers.Main) { val displayFolders = withContext(Dispatchers.IO) { folderRepository.getDisplayFolders(account, displayMode) } value = displayFolders } } override fun onActive() { super.onActive() messagingController.addListener(messagingListener) preferences.addOnAccountsChangeListener(accountsListener) loadFoldersAsync() } override fun onInactive() { super.onInactive() messagingController.removeListener(messagingListener) preferences.removeOnAccountsChangeListener(accountsListener) } }
app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/FoldersLiveDataFactory.ktdeleted 100644 → 0 +0 −17 Original line number Diff line number Diff line package com.fsck.k9.ui.folders import com.fsck.k9.Account import com.fsck.k9.Account.FolderMode import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.mailstore.FolderRepository class FoldersLiveDataFactory( private val folderRepository: FolderRepository, private val messagingController: MessagingController, private val preferences: Preferences ) { fun create(account: Account, displayMode: FolderMode? = null): FoldersLiveData { return FoldersLiveData(folderRepository, messagingController, preferences, account, displayMode) } }
app/ui/legacy/src/main/java/com/fsck/k9/ui/folders/KoinModule.kt +0 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,5 @@ import org.koin.dsl.module val foldersUiModule = module { single { FolderNameFormatterFactory() } factory { (context: Context) -> FolderNameFormatter(context.resources) } single { FoldersLiveDataFactory(get(), get(), get()) } viewModel { FoldersViewModel(folderRepository = get()) } }