Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddda3f88 authored by cketti's avatar cketti
Browse files

Rewrite ManageFoldersViewModel to use Flow

parent 288486e2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,6 +4,6 @@ import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module

val manageFoldersUiModule = module {
    viewModel { ManageFoldersViewModel(foldersLiveDataFactory = get()) }
    viewModel { ManageFoldersViewModel(folderRepository = get()) }
    viewModel { FolderSettingsViewModel(preferences = get(), folderRepository = get(), messagingController = get()) }
}
+7 −14
Original line number Diff line number Diff line
package com.fsck.k9.ui.managefolders

import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
import com.fsck.k9.Account
import com.fsck.k9.ui.folders.FoldersLiveData
import com.fsck.k9.ui.folders.FoldersLiveDataFactory
import com.fsck.k9.mailstore.DisplayFolder
import com.fsck.k9.mailstore.FolderRepository

class ManageFoldersViewModel(private val foldersLiveDataFactory: FoldersLiveDataFactory) : ViewModel() {
    private var foldersLiveData: FoldersLiveData? = null

    fun getFolders(account: Account): FoldersLiveData {
        val liveData = foldersLiveData
        if (liveData != null && liveData.account.uuid == account.uuid) {
            return liveData
        }

        return foldersLiveDataFactory.create(account).also {
            foldersLiveData = it
        }
class ManageFoldersViewModel(private val folderRepository: FolderRepository) : ViewModel() {
    fun getFolders(account: Account): LiveData<List<DisplayFolder>> {
        return folderRepository.getDisplayFoldersFlow(account).asLiveData()
    }
}