Loading app/core/src/main/java/com/fsck/k9/K9.kt +5 −18 Original line number Diff line number Diff line Loading @@ -6,17 +6,15 @@ import com.fsck.k9.Account.SortType import com.fsck.k9.core.BuildConfig import com.fsck.k9.mail.K9MailLib import com.fsck.k9.mailstore.LocalStore import com.fsck.k9.preferences.RealGeneralSettingsManager import com.fsck.k9.preferences.Storage import com.fsck.k9.preferences.StorageEditor import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import timber.log.Timber import timber.log.Timber.DebugTree @Deprecated("Use GeneralSettingsManager and GeneralSettings instead") object K9 : EarlyInit { private val preferences: Preferences by inject() private val generalSettingsManager: RealGeneralSettingsManager by inject() /** * If this is `true`, various development settings will be enabled. Loading Loading @@ -298,20 +296,11 @@ object K9 : EarlyInit { checkCachedDatabaseVersion(context) loadPrefs(preferences) loadPrefs(generalSettingsManager.storage) } /** * Load preferences into our statics. * * If you're adding a preference here, odds are you'll need to add it to * [com.fsck.k9.preferences.GeneralSettingsDescriptions], too. * * @param prefs Preferences to load */ @JvmStatic fun loadPrefs(prefs: Preferences) { val storage = prefs.storage fun loadPrefs(storage: Storage) { isDebugLoggingEnabled = storage.getBoolean("enableDebugLogging", DEVELOPER_MODE) isSensitiveDebugLoggingEnabled = storage.getBoolean("enableSensitiveLogging", false) isShowAnimations = storage.getBoolean("animations", true) Loading Loading @@ -462,9 +451,7 @@ object K9 : EarlyInit { @JvmStatic fun saveSettingsAsync() { GlobalScope.launch(Dispatchers.IO) { preferences.saveSettings() } generalSettingsManager.saveSettingsAsync() } private inline fun <reified T : Enum<T>> Storage.getEnum(key: String, defaultValue: T): T { Loading app/core/src/main/java/com/fsck/k9/KoinModule.kt +4 −0 Original line number Diff line number Diff line Loading @@ -10,9 +10,13 @@ import com.fsck.k9.mail.ssl.TrustedSocketFactory import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.power.TracingPowerManager import com.fsck.k9.setup.ServerNameSuggester import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.GlobalScope import org.koin.core.qualifier.named import org.koin.dsl.module val mainModule = module { single<CoroutineScope>(named("AppCoroutineScope")) { GlobalScope } single { Preferences( context = get(), Loading app/core/src/main/java/com/fsck/k9/Preferences.kt +0 −23 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ class Preferences internal constructor( @GuardedBy("accountLock") private var newAccount: Account? = null private val accountsChangeListeners = CopyOnWriteArraySet<AccountsChangeListener>() private val settingsChangeListeners = CopyOnWriteArraySet<SettingsChangeListener>() private val accountRemovedListeners = CopyOnWriteArraySet<AccountRemovedListener>() val storage = Storage() Loading Loading @@ -210,14 +209,6 @@ class Preferences internal constructor( notifyAccountsChangeListeners() } fun saveSettings() { val editor = createStorageEditor() K9.save(editor) editor.commit() notifySettingsChangeListeners() } private fun ensureAssignedAccountNumber(account: Account) { if (account.accountNumber != Account.UNASSIGNED_ACCOUNT_NUMBER) return Loading Loading @@ -279,20 +270,6 @@ class Preferences internal constructor( accountsChangeListeners.remove(accountsChangeListener) } private fun notifySettingsChangeListeners() { for (listener in settingsChangeListeners) { listener.onSettingsChanged() } } fun addSettingsChangeListener(settingsChangeListener: SettingsChangeListener) { settingsChangeListeners.add(settingsChangeListener) } fun removeSettingsChangeListener(settingsChangeListener: SettingsChangeListener) { settingsChangeListeners.remove(settingsChangeListener) } private fun notifyAccountRemovedListeners(account: Account) { for (listener in accountRemovedListeners) { listener.onAccountRemoved(account) Loading app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt +8 −2 Original line number Diff line number Diff line Loading @@ -3,10 +3,16 @@ package com.fsck.k9.preferences /** * Stores a snapshot of the app's general settings. * * TODO: Add more settings as needed. * When adding a setting here, make sure to also add it in these places: * - [GeneralSettingsManager] (write function) * - [RealGeneralSettingsManager.loadGeneralSettings] * - [RealGeneralSettingsManager.writeSettings] * - [GeneralSettingsDescriptions] */ // TODO: Move over settings from K9 data class GeneralSettings( val backgroundSync: BackgroundSync val backgroundSync: BackgroundSync, val showRecentChanges: Boolean ) enum class BackgroundSync { Loading app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java +3 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,9 @@ public class GeneralSettingsDescriptions { new V(49, new BooleanSetting(false)), new V(56, null) )); s.put("showRecentChanges", Settings.versions( new V(73, new BooleanSetting(true)) )); SETTINGS = Collections.unmodifiableMap(s); Loading Loading
app/core/src/main/java/com/fsck/k9/K9.kt +5 −18 Original line number Diff line number Diff line Loading @@ -6,17 +6,15 @@ import com.fsck.k9.Account.SortType import com.fsck.k9.core.BuildConfig import com.fsck.k9.mail.K9MailLib import com.fsck.k9.mailstore.LocalStore import com.fsck.k9.preferences.RealGeneralSettingsManager import com.fsck.k9.preferences.Storage import com.fsck.k9.preferences.StorageEditor import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import timber.log.Timber import timber.log.Timber.DebugTree @Deprecated("Use GeneralSettingsManager and GeneralSettings instead") object K9 : EarlyInit { private val preferences: Preferences by inject() private val generalSettingsManager: RealGeneralSettingsManager by inject() /** * If this is `true`, various development settings will be enabled. Loading Loading @@ -298,20 +296,11 @@ object K9 : EarlyInit { checkCachedDatabaseVersion(context) loadPrefs(preferences) loadPrefs(generalSettingsManager.storage) } /** * Load preferences into our statics. * * If you're adding a preference here, odds are you'll need to add it to * [com.fsck.k9.preferences.GeneralSettingsDescriptions], too. * * @param prefs Preferences to load */ @JvmStatic fun loadPrefs(prefs: Preferences) { val storage = prefs.storage fun loadPrefs(storage: Storage) { isDebugLoggingEnabled = storage.getBoolean("enableDebugLogging", DEVELOPER_MODE) isSensitiveDebugLoggingEnabled = storage.getBoolean("enableSensitiveLogging", false) isShowAnimations = storage.getBoolean("animations", true) Loading Loading @@ -462,9 +451,7 @@ object K9 : EarlyInit { @JvmStatic fun saveSettingsAsync() { GlobalScope.launch(Dispatchers.IO) { preferences.saveSettings() } generalSettingsManager.saveSettingsAsync() } private inline fun <reified T : Enum<T>> Storage.getEnum(key: String, defaultValue: T): T { Loading
app/core/src/main/java/com/fsck/k9/KoinModule.kt +4 −0 Original line number Diff line number Diff line Loading @@ -10,9 +10,13 @@ import com.fsck.k9.mail.ssl.TrustedSocketFactory import com.fsck.k9.mailstore.LocalStoreProvider import com.fsck.k9.power.TracingPowerManager import com.fsck.k9.setup.ServerNameSuggester import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.GlobalScope import org.koin.core.qualifier.named import org.koin.dsl.module val mainModule = module { single<CoroutineScope>(named("AppCoroutineScope")) { GlobalScope } single { Preferences( context = get(), Loading
app/core/src/main/java/com/fsck/k9/Preferences.kt +0 −23 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ class Preferences internal constructor( @GuardedBy("accountLock") private var newAccount: Account? = null private val accountsChangeListeners = CopyOnWriteArraySet<AccountsChangeListener>() private val settingsChangeListeners = CopyOnWriteArraySet<SettingsChangeListener>() private val accountRemovedListeners = CopyOnWriteArraySet<AccountRemovedListener>() val storage = Storage() Loading Loading @@ -210,14 +209,6 @@ class Preferences internal constructor( notifyAccountsChangeListeners() } fun saveSettings() { val editor = createStorageEditor() K9.save(editor) editor.commit() notifySettingsChangeListeners() } private fun ensureAssignedAccountNumber(account: Account) { if (account.accountNumber != Account.UNASSIGNED_ACCOUNT_NUMBER) return Loading Loading @@ -279,20 +270,6 @@ class Preferences internal constructor( accountsChangeListeners.remove(accountsChangeListener) } private fun notifySettingsChangeListeners() { for (listener in settingsChangeListeners) { listener.onSettingsChanged() } } fun addSettingsChangeListener(settingsChangeListener: SettingsChangeListener) { settingsChangeListeners.add(settingsChangeListener) } fun removeSettingsChangeListener(settingsChangeListener: SettingsChangeListener) { settingsChangeListeners.remove(settingsChangeListener) } private fun notifyAccountRemovedListeners(account: Account) { for (listener in accountRemovedListeners) { listener.onAccountRemoved(account) Loading
app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt +8 −2 Original line number Diff line number Diff line Loading @@ -3,10 +3,16 @@ package com.fsck.k9.preferences /** * Stores a snapshot of the app's general settings. * * TODO: Add more settings as needed. * When adding a setting here, make sure to also add it in these places: * - [GeneralSettingsManager] (write function) * - [RealGeneralSettingsManager.loadGeneralSettings] * - [RealGeneralSettingsManager.writeSettings] * - [GeneralSettingsDescriptions] */ // TODO: Move over settings from K9 data class GeneralSettings( val backgroundSync: BackgroundSync val backgroundSync: BackgroundSync, val showRecentChanges: Boolean ) enum class BackgroundSync { Loading
app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java +3 −0 Original line number Diff line number Diff line Loading @@ -280,6 +280,9 @@ public class GeneralSettingsDescriptions { new V(49, new BooleanSetting(false)), new V(56, null) )); s.put("showRecentChanges", Settings.versions( new V(73, new BooleanSetting(true)) )); SETTINGS = Collections.unmodifiableMap(s); Loading