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

Unverified Commit be4ba7ca authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Add GetDisplayFoldersForAccount usecase

parent c05533a2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package app.k9mail.feature.navigation.drawer

import app.k9mail.feature.navigation.drawer.domain.DomainContract.UseCase
import app.k9mail.feature.navigation.drawer.domain.usecase.GetDisplayAccounts
import app.k9mail.feature.navigation.drawer.domain.usecase.GetDisplayFoldersForAccount
import app.k9mail.feature.navigation.drawer.legacy.AccountsViewModel
import app.k9mail.feature.navigation.drawer.legacy.FoldersViewModel
import app.k9mail.feature.navigation.drawer.ui.DrawerViewModel
@@ -21,6 +22,12 @@ val navigationDrawerModule: Module = module {
        )
    }

    single<UseCase.GetDisplayFoldersForAccount> {
        GetDisplayFoldersForAccount(
            repository = get(),
        )
    }

    viewModel {
        AccountsViewModel(
            getDisplayAccounts = get(),
+5 −0
Original line number Diff line number Diff line
package app.k9mail.feature.navigation.drawer.domain

import app.k9mail.feature.navigation.drawer.domain.entity.DisplayAccount
import app.k9mail.legacy.ui.folder.DisplayFolder
import kotlinx.coroutines.flow.Flow

interface DomainContract {
@@ -9,5 +10,9 @@ interface DomainContract {
        fun interface GetDisplayAccounts {
            operator fun invoke(): Flow<List<DisplayAccount>>
        }

        fun interface GetDisplayFoldersForAccount {
            operator fun invoke(accountUuid: String): Flow<List<DisplayFolder>>
        }
    }
}
+14 −0
Original line number Diff line number Diff line
package app.k9mail.feature.navigation.drawer.domain.usecase

import app.k9mail.feature.navigation.drawer.domain.DomainContract.UseCase
import app.k9mail.legacy.ui.folder.DisplayFolder
import app.k9mail.legacy.ui.folder.DisplayFolderRepository
import kotlinx.coroutines.flow.Flow

class GetDisplayFoldersForAccount(
    private val repository: DisplayFolderRepository,
) : UseCase.GetDisplayFoldersForAccount {
    override fun invoke(accountUuid: String): Flow<List<DisplayFolder>> {
        return repository.getDisplayFoldersFlow(accountUuid)
    }
}