-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
K9BackendStorageFactory.kt
31 lines (29 loc) · 1.26 KB
/
K9BackendStorageFactory.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.fsck.k9.mailstore
import com.fsck.k9.Account
import com.fsck.k9.Preferences
class K9BackendStorageFactory(
private val preferences: Preferences,
private val folderRepository: FolderRepository,
private val messageStoreManager: MessageStoreManager,
private val specialFolderSelectionStrategy: SpecialFolderSelectionStrategy,
private val saveMessageDataCreator: SaveMessageDataCreator,
) {
fun createBackendStorage(account: Account): K9BackendStorage {
val messageStore = messageStoreManager.getMessageStore(account)
val folderSettingsProvider = FolderSettingsProvider(preferences, account)
val specialFolderUpdater = SpecialFolderUpdater(
preferences,
folderRepository,
specialFolderSelectionStrategy,
account,
)
val specialFolderListener = SpecialFolderBackendFoldersRefreshListener(specialFolderUpdater)
val autoExpandFolderListener = AutoExpandFolderBackendFoldersRefreshListener(
preferences,
account,
folderRepository,
)
val listeners = listOf(specialFolderListener, autoExpandFolderListener)
return K9BackendStorage(messageStore, folderSettingsProvider, saveMessageDataCreator, listeners)
}
}