Loading app/core/src/main/java/com/fsck/k9/Account.java +0 −7 Original line number Diff line number Diff line Loading @@ -17,10 +17,8 @@ import android.text.TextUtils; import com.fsck.k9.backend.api.SyncConfig.ExpungePolicy; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.store.StoreConfig; import com.fsck.k9.mailstore.LocalStore; import com.fsck.k9.mailstore.StorageManager; import com.fsck.k9.mailstore.StorageManager.StorageProvider; import org.jetbrains.annotations.NotNull; Loading Loading @@ -667,11 +665,6 @@ public class Account implements BaseAccount, StoreConfig { return oldMaxPushFolders != maxPushFolders; } public LocalStore getLocalStore() throws MessagingException { Context context = DI.get(Context.class); return LocalStore.getInstance(this, context); } @Override public synchronized String toString() { return description; Loading app/core/src/main/java/com/fsck/k9/KoinModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package com.fsck.k9 import android.content.Context import com.fsck.k9.helper.Contacts import com.fsck.k9.mail.power.PowerManager import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.mailstore.StorageManager import com.fsck.k9.power.TracingPowerManager import org.koin.dsl.module.applicationContext Loading @@ -11,6 +12,7 @@ val mainModule = applicationContext { bean { Preferences.getPreferences(get()) } bean { get<Context>().resources } bean { StorageManager.getInstance(get()) } bean { LocalStoreProvider() } bean { TracingPowerManager.getPowerManager(get()) as PowerManager } bean { Contacts.getInstance(get()) } } app/core/src/main/java/com/fsck/k9/Preferences.java +8 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import android.support.annotation.RestrictTo.Scope; import com.fsck.k9.backend.BackendManager; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mailstore.LocalStore; import com.fsck.k9.mailstore.LocalStoreProvider; import com.fsck.k9.preferences.Storage; import com.fsck.k9.preferences.StorageEditor; import timber.log.Timber; Loading @@ -33,8 +34,9 @@ public class Preferences { CoreResourceProvider resourceProvider = DI.get(CoreResourceProvider.class); LocalKeyStoreManager localKeyStoreManager = DI.get(LocalKeyStoreManager.class); AccountPreferenceSerializer accountPreferenceSerializer = DI.get(AccountPreferenceSerializer.class); LocalStoreProvider localStoreProvider = DI.get(LocalStoreProvider.class); if (preferences == null) { preferences = new Preferences(appContext, resourceProvider, localKeyStoreManager, accountPreferenceSerializer); preferences = new Preferences(appContext, resourceProvider, localStoreProvider, localKeyStoreManager, accountPreferenceSerializer); } return preferences; } Loading @@ -44,15 +46,17 @@ public class Preferences { private List<Account> accountsInOrder = null; private Account newAccount; private Context context; private final LocalStoreProvider localStoreProvider; private final CoreResourceProvider resourceProvider; private final LocalKeyStoreManager localKeyStoreManager; private Preferences(Context context, CoreResourceProvider resourceProvider, LocalKeyStoreManager localKeyStoreManager, LocalStoreProvider localStoreProvider, LocalKeyStoreManager localKeyStoreManager, AccountPreferenceSerializer accountPreferenceSerializer) { storage = Storage.getStorage(context); this.context = context; this.resourceProvider = resourceProvider; this.localStoreProvider = localStoreProvider; this.localKeyStoreManager = localKeyStoreManager; this.accountPreferenceSerializer = accountPreferenceSerializer; if (storage.isEmpty()) { Loading Loading @@ -212,7 +216,7 @@ public class Preferences { private void processChangedValues(Account account) { if (account.isChangedVisibleLimits()) { try { account.getLocalStore().resetVisibleLimits(account.getDisplayCount()); localStoreProvider.getInstance(account).resetVisibleLimits(account.getDisplayCount()); } catch (MessagingException e) { Timber.e(e, "Failed to load LocalStore!"); } Loading @@ -220,7 +224,7 @@ public class Preferences { if (account.isChangedLocalStorageProviderId()) { try { account.getLocalStore().switchLocalStorage(account.getLocalStorageProviderId()); localStoreProvider.getInstance(account).switchLocalStorage(account.getLocalStorageProviderId()); } catch (MessagingException e) { Timber.e(e, "Failed to load LocalStore!"); } Loading app/core/src/main/java/com/fsck/k9/controller/AccountStatsCollector.kt +5 −3 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.AccountStats import com.fsck.k9.K9 import com.fsck.k9.Preferences import com.fsck.k9.mail.MessagingException import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.search.AccountSearchConditions import com.fsck.k9.search.LocalSearch import com.fsck.k9.search.SearchAccount Loading @@ -19,7 +20,8 @@ interface AccountStatsCollector { internal class DefaultAccountStatsCollector( private val context: Context, private val accountSearchConditions: AccountSearchConditions private val accountSearchConditions: AccountSearchConditions, private val localStoreProvider: LocalStoreProvider ) : AccountStatsCollector { private val preferences = Preferences.getPreferences(context) Loading @@ -29,7 +31,7 @@ internal class DefaultAccountStatsCollector( return null } val localStore = account.localStore val localStore = localStoreProvider.getInstance(account) val search = LocalSearch() accountSearchConditions.excludeSpecialFolders(account, search) Loading @@ -49,7 +51,7 @@ internal class DefaultAccountStatsCollector( val aggregatedAccountStats = AccountStats() for (account in accounts) { val accountStats = account.localStore.getAccountStats(search) val accountStats = localStoreProvider.getInstance(account).getAccountStats(search) aggregatedAccountStats.unreadMessageCount += accountStats.unreadMessageCount aggregatedAccountStats.flaggedMessageCount += accountStats.flaggedMessageCount } Loading app/core/src/main/java/com/fsck/k9/controller/KoinModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,6 @@ package com.fsck.k9.controller import org.koin.dsl.module.applicationContext val controllerModule = applicationContext { bean { MessagingController(get(), get(), get(), get(), get(), get(), get("controllerExtensions")) } bean { DefaultAccountStatsCollector(get(), get()) as AccountStatsCollector } bean { MessagingController(get(), get(), get(), get(), get(), get(), get(), get("controllerExtensions")) } bean { DefaultAccountStatsCollector(get(), get(), get()) as AccountStatsCollector } } Loading
app/core/src/main/java/com/fsck/k9/Account.java +0 −7 Original line number Diff line number Diff line Loading @@ -17,10 +17,8 @@ import android.text.TextUtils; import com.fsck.k9.backend.api.SyncConfig.ExpungePolicy; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.store.StoreConfig; import com.fsck.k9.mailstore.LocalStore; import com.fsck.k9.mailstore.StorageManager; import com.fsck.k9.mailstore.StorageManager.StorageProvider; import org.jetbrains.annotations.NotNull; Loading Loading @@ -667,11 +665,6 @@ public class Account implements BaseAccount, StoreConfig { return oldMaxPushFolders != maxPushFolders; } public LocalStore getLocalStore() throws MessagingException { Context context = DI.get(Context.class); return LocalStore.getInstance(this, context); } @Override public synchronized String toString() { return description; Loading
app/core/src/main/java/com/fsck/k9/KoinModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package com.fsck.k9 import android.content.Context import com.fsck.k9.helper.Contacts import com.fsck.k9.mail.power.PowerManager import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.mailstore.StorageManager import com.fsck.k9.power.TracingPowerManager import org.koin.dsl.module.applicationContext Loading @@ -11,6 +12,7 @@ val mainModule = applicationContext { bean { Preferences.getPreferences(get()) } bean { get<Context>().resources } bean { StorageManager.getInstance(get()) } bean { LocalStoreProvider() } bean { TracingPowerManager.getPowerManager(get()) as PowerManager } bean { Contacts.getInstance(get()) } }
app/core/src/main/java/com/fsck/k9/Preferences.java +8 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import android.support.annotation.RestrictTo.Scope; import com.fsck.k9.backend.BackendManager; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mailstore.LocalStore; import com.fsck.k9.mailstore.LocalStoreProvider; import com.fsck.k9.preferences.Storage; import com.fsck.k9.preferences.StorageEditor; import timber.log.Timber; Loading @@ -33,8 +34,9 @@ public class Preferences { CoreResourceProvider resourceProvider = DI.get(CoreResourceProvider.class); LocalKeyStoreManager localKeyStoreManager = DI.get(LocalKeyStoreManager.class); AccountPreferenceSerializer accountPreferenceSerializer = DI.get(AccountPreferenceSerializer.class); LocalStoreProvider localStoreProvider = DI.get(LocalStoreProvider.class); if (preferences == null) { preferences = new Preferences(appContext, resourceProvider, localKeyStoreManager, accountPreferenceSerializer); preferences = new Preferences(appContext, resourceProvider, localStoreProvider, localKeyStoreManager, accountPreferenceSerializer); } return preferences; } Loading @@ -44,15 +46,17 @@ public class Preferences { private List<Account> accountsInOrder = null; private Account newAccount; private Context context; private final LocalStoreProvider localStoreProvider; private final CoreResourceProvider resourceProvider; private final LocalKeyStoreManager localKeyStoreManager; private Preferences(Context context, CoreResourceProvider resourceProvider, LocalKeyStoreManager localKeyStoreManager, LocalStoreProvider localStoreProvider, LocalKeyStoreManager localKeyStoreManager, AccountPreferenceSerializer accountPreferenceSerializer) { storage = Storage.getStorage(context); this.context = context; this.resourceProvider = resourceProvider; this.localStoreProvider = localStoreProvider; this.localKeyStoreManager = localKeyStoreManager; this.accountPreferenceSerializer = accountPreferenceSerializer; if (storage.isEmpty()) { Loading Loading @@ -212,7 +216,7 @@ public class Preferences { private void processChangedValues(Account account) { if (account.isChangedVisibleLimits()) { try { account.getLocalStore().resetVisibleLimits(account.getDisplayCount()); localStoreProvider.getInstance(account).resetVisibleLimits(account.getDisplayCount()); } catch (MessagingException e) { Timber.e(e, "Failed to load LocalStore!"); } Loading @@ -220,7 +224,7 @@ public class Preferences { if (account.isChangedLocalStorageProviderId()) { try { account.getLocalStore().switchLocalStorage(account.getLocalStorageProviderId()); localStoreProvider.getInstance(account).switchLocalStorage(account.getLocalStorageProviderId()); } catch (MessagingException e) { Timber.e(e, "Failed to load LocalStore!"); } Loading
app/core/src/main/java/com/fsck/k9/controller/AccountStatsCollector.kt +5 −3 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.AccountStats import com.fsck.k9.K9 import com.fsck.k9.Preferences import com.fsck.k9.mail.MessagingException import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.search.AccountSearchConditions import com.fsck.k9.search.LocalSearch import com.fsck.k9.search.SearchAccount Loading @@ -19,7 +20,8 @@ interface AccountStatsCollector { internal class DefaultAccountStatsCollector( private val context: Context, private val accountSearchConditions: AccountSearchConditions private val accountSearchConditions: AccountSearchConditions, private val localStoreProvider: LocalStoreProvider ) : AccountStatsCollector { private val preferences = Preferences.getPreferences(context) Loading @@ -29,7 +31,7 @@ internal class DefaultAccountStatsCollector( return null } val localStore = account.localStore val localStore = localStoreProvider.getInstance(account) val search = LocalSearch() accountSearchConditions.excludeSpecialFolders(account, search) Loading @@ -49,7 +51,7 @@ internal class DefaultAccountStatsCollector( val aggregatedAccountStats = AccountStats() for (account in accounts) { val accountStats = account.localStore.getAccountStats(search) val accountStats = localStoreProvider.getInstance(account).getAccountStats(search) aggregatedAccountStats.unreadMessageCount += accountStats.unreadMessageCount aggregatedAccountStats.flaggedMessageCount += accountStats.flaggedMessageCount } Loading
app/core/src/main/java/com/fsck/k9/controller/KoinModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,6 @@ package com.fsck.k9.controller import org.koin.dsl.module.applicationContext val controllerModule = applicationContext { bean { MessagingController(get(), get(), get(), get(), get(), get(), get("controllerExtensions")) } bean { DefaultAccountStatsCollector(get(), get()) as AccountStatsCollector } bean { MessagingController(get(), get(), get(), get(), get(), get(), get(), get("controllerExtensions")) } bean { DefaultAccountStatsCollector(get(), get(), get()) as AccountStatsCollector } }