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

Commit 00075b87 authored by shamim-emon's avatar shamim-emon
Browse files

1.Converted app.k9mail.legacy.preferencesDrawerConfigManager into...

1.Converted app.k9mail.legacy.preferencesDrawerConfigManager into ConfigManager<T> to avoid direct dependency on DrawerConfig

2. Created com.fsck.k9.preferences.DrawerConfigManager interface extending ConfigManager<T>

3. Made RealDrawerConfigManager implement com.fsck.k9.preferences.DrawerConfigManager to avoid running into koin dependency injection issue
parent 766ed303
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.launch

@@ -115,11 +116,9 @@ internal class DrawerViewModel(
            }

            Event.OnAccountSelectorClick -> {
                viewModelScope.launch {
                saveDrawerConfig(
                    state.value.config.copy(showAccountSelector = state.value.config.showAccountSelector.not()),
                    )
                }
                ).launchIn(viewModelScope)
            }
            Event.OnManageFoldersClick -> emitEffect(Effect.OpenManageFolders)
            Event.OnSettingsClick -> emitEffect(Effect.OpenSettings)
+2 −2
Original line number Diff line number Diff line
@@ -2,11 +2,11 @@ package com.fsck.k9.feature

import app.k9mail.feature.navigation.drawer.NavigationDrawerExternalContract.DrawerConfig
import app.k9mail.feature.navigation.drawer.NavigationDrawerExternalContract.DrawerConfigLoader
import app.k9mail.legacy.preferences.DrawerConfigManager
import com.fsck.k9.preferences.DrawerConfigManager
import kotlinx.coroutines.flow.Flow

class NavigationDrawerConfigLoader(private val drawerConfigManager: DrawerConfigManager) : DrawerConfigLoader {
    override fun loadDrawerConfigFlow(): Flow<DrawerConfig> {
        return drawerConfigManager.getDrawerConfigFlow()
        return drawerConfigManager.getConfigFlow()
    }
}
+3 −2
Original line number Diff line number Diff line
package com.fsck.k9.feature

import app.k9mail.feature.navigation.drawer.NavigationDrawerExternalContract
import app.k9mail.legacy.preferences.DrawerConfigManager
import app.k9mail.feature.navigation.drawer.NavigationDrawerExternalContract.DrawerConfig
import com.fsck.k9.preferences.DrawerConfigManager

class NavigationDrawerConfigWriter(
    private val drawerConfigManager: DrawerConfigManager,
) : NavigationDrawerExternalContract.DrawerConfigWriter {
    override fun writeDrawerConfig(drawerConfig: NavigationDrawerExternalContract.DrawerConfig) {
    override fun writeDrawerConfig(drawerConfig: DrawerConfig) {
        drawerConfigManager.save(drawerConfig)
    }
}
+6 −0
Original line number Diff line number Diff line
package com.fsck.k9.preferences

import app.k9mail.feature.navigation.drawer.NavigationDrawerExternalContract.DrawerConfig
import app.k9mail.legacy.preferences.ConfigManager

interface DrawerConfigManager: ConfigManager<DrawerConfig>
+0 −1
Original line number Diff line number Diff line
package com.fsck.k9.preferences

import app.k9mail.legacy.account.AccountManager
import app.k9mail.legacy.preferences.DrawerConfigManager
import app.k9mail.legacy.preferences.GeneralSettingsManager
import com.fsck.k9.Preferences
import org.koin.core.qualifier.named
Loading