diff --git a/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettings.kt b/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettings.kt index fd9060108de..53ca8770b70 100644 --- a/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettings.kt +++ b/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettings.kt @@ -9,6 +9,7 @@ const val DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT = false const val DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH = true const val DISPLAY_SETTINGS_DEFAULT_IS_SHOW_ANIMATION = true const val DISPLAY_SETTINGS_DEFAULT_IS_SHOW_CORRESPONDENT_NAMES = true +const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES = 2 data class DisplayVisualSettings( val isShowAnimations: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_ANIMATION, @@ -20,4 +21,5 @@ data class DisplayVisualSettings( val isUseBackgroundAsUnreadIndicator: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_BACKGROUND_AS_INDICATOR, val isUseMessageViewFixedWidthFont: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT, val isAutoFitWidth: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH, + val messageListPreviewLines: Int = DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES, ) diff --git a/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettingsPreferenceManager.kt b/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettingsPreferenceManager.kt index 01396769bd8..22535fe0b30 100644 --- a/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettingsPreferenceManager.kt +++ b/core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettingsPreferenceManager.kt @@ -11,5 +11,6 @@ const val KEY_USE_BACKGROUND_AS_UNREAD_INDICATOR = "isUseBackgroundAsUnreadIndic const val KEY_MESSAGE_VIEW_FIXED_WIDTH_FONT = "messageViewFixedWidthFont" const val KEY_AUTO_FIT_WIDTH = "autofitWidth" const val KEY_SHOW_CONTACT_PICTURE = "showContactPicture" +const val KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES = "messageListPreviewLines" interface DisplayVisualSettingsPreferenceManager : PreferenceManager diff --git a/core/preference/impl/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DefaultDisplayVisualSettingsPreferenceManager.kt b/core/preference/impl/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DefaultDisplayVisualSettingsPreferenceManager.kt index 4f12c149822..836c70036d2 100644 --- a/core/preference/impl/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DefaultDisplayVisualSettingsPreferenceManager.kt +++ b/core/preference/impl/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DefaultDisplayVisualSettingsPreferenceManager.kt @@ -70,6 +70,10 @@ class DefaultDisplayVisualSettingsPreferenceManager( KEY_SHOW_CONTACT_PICTURE, DISPLAY_SETTINGS_DEFAULT_IS_SHOW_CONTACT_PICTURE, ), + messageListPreviewLines = storage.getInt( + KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES, + DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES, + ), ) private fun writeConfig(config: DisplayVisualSettings) { @@ -103,6 +107,10 @@ class DefaultDisplayVisualSettingsPreferenceManager( KEY_SHOW_CORRESPONDENT_NAMES, config.isShowCorrespondentNames, ) + storageEditor.putInt( + KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES, + config.messageListPreviewLines, + ) storageEditor.commit().also { commited -> logger.verbose(TAG) { "writeConfig: storageEditor.commit() resulted in: $commited" } } diff --git a/legacy/core/src/main/java/com/fsck/k9/K9.kt b/legacy/core/src/main/java/com/fsck/k9/K9.kt index a265fe3025f..7e22532d61e 100644 --- a/legacy/core/src/main/java/com/fsck/k9/K9.kt +++ b/legacy/core/src/main/java/com/fsck/k9/K9.kt @@ -143,9 +143,6 @@ object K9 : KoinComponent { @JvmStatic var messageListDensity: UiDensity = UiDensity.Default - @JvmStatic - var messageListPreviewLines = 2 - @JvmStatic var contactNameColor = 0xFF1093F5.toInt() @@ -233,7 +230,6 @@ object K9 : KoinComponent { @Suppress("LongMethod") fun loadPrefs(storage: Storage) { isShowAccountSelector = storage.getBoolean("showAccountSelector", true) - messageListPreviewLines = storage.getInt("messageListPreviewLines", 2) messageListDensity = storage.getEnum("messageListDensity", UiDensity.Default) contactNameColor = storage.getInt("registeredNameColor", 0xFF1093F5.toInt()) @@ -294,7 +290,6 @@ object K9 : KoinComponent { internal fun save(editor: StorageEditor) { editor.putEnum("messageListDensity", messageListDensity) editor.putBoolean("showAccountSelector", isShowAccountSelector) - editor.putInt("messageListPreviewLines", messageListPreviewLines) editor.putInt("registeredNameColor", contactNameColor) editor.putEnum("messageViewPostMarkAsUnreadAction", messageViewPostMarkAsUnreadNavigation) diff --git a/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageListActivityConfig.kt b/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageListActivityConfig.kt index 47e515240c3..ee8afbaa00d 100644 --- a/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageListActivityConfig.kt +++ b/legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageListActivityConfig.kt @@ -58,7 +58,7 @@ data class MessageListActivityConfig( isShowComposeButton = settings.display.inboxSettings.isShowComposeButtonOnMessageList, contactNameColor = K9.contactNameColor, messageViewTheme = settings.display.coreSettings.messageViewTheme, - messageListPreviewLines = K9.messageListPreviewLines, + messageListPreviewLines = settings.display.visualSettings.messageListPreviewLines, messageListDensity = K9.messageListDensity, splitViewMode = settings.display.coreSettings.splitViewMode, fontSizeMessageListSubject = K9.fontSizes.messageListSubject, diff --git a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt index 6e929dd9939..7d63457296d 100644 --- a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt +++ b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt @@ -795,7 +795,7 @@ class MessageListFragment : private val messageListAppearance: MessageListAppearance get() = MessageListAppearance( fontSizes = K9.fontSizes, - previewLines = K9.messageListPreviewLines, + previewLines = generalSettingsManager.getConfig().display.visualSettings.messageListPreviewLines, stars = !isOutbox && generalSettingsManager.getConfig().display.inboxSettings.isShowMessageListStars, senderAboveSubject = generalSettingsManager .getConfig() diff --git a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/general/GeneralSettingsDataStore.kt b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/general/GeneralSettingsDataStore.kt index 13be46d406d..4ab201be89a 100644 --- a/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/general/GeneralSettingsDataStore.kt +++ b/legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/general/GeneralSettingsDataStore.kt @@ -70,6 +70,7 @@ class GeneralSettingsDataStore( "disable_notifications_during_quiet_time" -> !generalSettingsManager.getConfig() .notification.isNotificationDuringQuietTimeEnabled + "privacy_hide_useragent" -> generalSettingsManager.getConfig().privacy.isHideUserAgent "privacy_hide_timezone" -> generalSettingsManager.getConfig().privacy.isHideTimeZone "debug_logging" -> generalSettingsManager.getConfig().debugging.isDebugLoggingEnabled @@ -153,7 +154,9 @@ class GeneralSettingsDataStore( generalSettingsManager.getConfig().display.coreSettings.messageViewTheme, ) - "messagelist_preview_lines" -> K9.messageListPreviewLines.toString() + "messagelist_preview_lines" -> generalSettingsManager.getConfig() + .display.visualSettings.messageListPreviewLines.toString() + "splitview_mode" -> generalSettingsManager.getConfig().display.coreSettings.splitViewMode.name "notification_quick_delete" -> K9.notificationQuickDeleteBehaviour.name "lock_screen_notification_visibility" -> K9.lockScreenNotificationVisibility.name @@ -191,7 +194,7 @@ class GeneralSettingsDataStore( "theme" -> setTheme(value) "message_compose_theme" -> setMessageComposeTheme(value) "messageViewTheme" -> setMessageViewTheme(value) - "messagelist_preview_lines" -> K9.messageListPreviewLines = value.toInt() + "messagelist_preview_lines" -> setMessageListPreviewLines(value.toInt()) "splitview_mode" -> setSplitViewModel(SplitViewMode.valueOf(value.uppercase())) "notification_quick_delete" -> { K9.notificationQuickDeleteBehaviour = K9.NotificationQuickDelete.valueOf(value) @@ -332,6 +335,19 @@ class GeneralSettingsDataStore( } } + private fun setMessageListPreviewLines(previewLines: Int) { + skipSaveSettings = true + generalSettingsManager.update { settings -> + settings.copy( + display = settings.display.copy( + visualSettings = settings.display.visualSettings.copy( + messageListPreviewLines = previewLines, + ), + ), + ) + } + } + private fun setSplitViewModel(mode: SplitViewMode) { skipSaveSettings = true generalSettingsManager.update { settings ->