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

Unverified Commit c381b370 authored by Rafael Tonholo's avatar Rafael Tonholo
Browse files

chore(archive): inject ViewModel abstract class instead of concrete implementation

parent 5b0b0f5a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.fsck.k9.view.MessageWebView
import net.openid.appauth.AppAuthConfiguration
import net.thunderbird.core.preference.storage.Storage
import net.thunderbird.feature.account.AccountId
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogContract
import org.junit.Test
import org.koin.core.annotation.KoinExperimentalAPI
import org.koin.test.verify.definition
@@ -55,6 +56,7 @@ class DependencyInjectionTest {
                definition<K9WebViewClient>(AttachmentResolver::class, MessageWebView.OnPageFinishedListener::class),
                definition<MailSyncWorker>(WorkerParameters::class),
                definition<OpenPgpApiManager>(LifecycleOwner::class),
                definition<SetupArchiveFolderDialogContract.ViewModel>(SetupArchiveFolderDialogContract.State::class),
            ),
        )
    }
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import com.fsck.k9.view.MessageWebView
import net.openid.appauth.AppAuthConfiguration
import net.thunderbird.core.preference.storage.Storage
import net.thunderbird.feature.account.AccountId
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogContract
import org.junit.Test
import org.koin.core.annotation.KoinExperimentalAPI
import org.koin.test.verify.definition
@@ -55,6 +56,7 @@ class DependencyInjectionTest {
                definition<K9WebViewClient>(AttachmentResolver::class, MessageWebView.OnPageFinishedListener::class),
                definition<MailSyncWorker>(WorkerParameters::class),
                definition<OpenPgpApiManager>(LifecycleOwner::class),
                definition<SetupArchiveFolderDialogContract.ViewModel>(SetupArchiveFolderDialogContract.State::class),
            ),
        )
    }
+2 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import net.thunderbird.feature.mail.message.list.domain.usecase.BuildSwipeAction
import net.thunderbird.feature.mail.message.list.domain.usecase.CreateArchiveFolder
import net.thunderbird.feature.mail.message.list.domain.usecase.GetAccountFolders
import net.thunderbird.feature.mail.message.list.domain.usecase.SetArchiveFolder
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogContract
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogFragment
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogFragmentFactory
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogViewModel
@@ -46,7 +47,7 @@ val featureMessageListModule = module {
            setArchiveFolder = get(),
            resourceManager = get(),
            generalSettingsManager = get(),
        )
        ) as SetupArchiveFolderDialogContract.ViewModel
    }
    factory<SetupArchiveFolderDialogFragmentFactory> {
        SetupArchiveFolderDialogFragment.Factory
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ internal fun SetupArchiveFolderDialog(
    accountUuid: String,
    onDismissDialog: () -> Unit,
    modifier: Modifier = Modifier,
    viewModel: ViewModel = koinViewModel<SetupArchiveFolderDialogViewModel> { parametersOf(accountUuid) },
    viewModel: ViewModel = koinViewModel<ViewModel> { parametersOf(accountUuid) },
) {
    val (state, dispatch) = viewModel.observe { effect ->
        when (effect) {
+5 −2
Original line number Diff line number Diff line
package net.thunderbird.feature.mail.message.list.ui.dialog

import androidx.compose.runtime.Stable
import app.k9mail.core.ui.compose.common.mvi.BaseViewModel
import app.k9mail.core.ui.compose.common.mvi.UnidirectionalViewModel
import net.thunderbird.feature.mail.folder.api.RemoteFolder

internal interface SetupArchiveFolderDialogContract {
    interface ViewModel : UnidirectionalViewModel<State, Event, Effect>
sealed interface SetupArchiveFolderDialogContract {
    abstract class ViewModel(
        initialState: State,
    ) : BaseViewModel<State, Event, Effect>(initialState), UnidirectionalViewModel<State, Event, Effect>

    sealed interface State {
        val isDoNotShowDialogAgainChecked: Boolean
Loading