Skip to content

Commit d716fb1

Browse files
authored
Merge pull request #10039 from shamim-emon/fix-issue-10038
Use PreferenceDataStore for messageListPreviewLines handling
2 parents 196e9a7 + cbffe62 commit d716fb1

File tree

7 files changed

+31
-9
lines changed

7 files changed

+31
-9
lines changed

core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettings.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const val DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT = false
99
const val DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH = true
1010
const val DISPLAY_SETTINGS_DEFAULT_IS_SHOW_ANIMATION = true
1111
const val DISPLAY_SETTINGS_DEFAULT_IS_SHOW_CORRESPONDENT_NAMES = true
12+
const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES = 2
1213

1314
data class DisplayVisualSettings(
1415
val isShowAnimations: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_ANIMATION,
@@ -20,4 +21,5 @@ data class DisplayVisualSettings(
2021
val isUseBackgroundAsUnreadIndicator: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_BACKGROUND_AS_INDICATOR,
2122
val isUseMessageViewFixedWidthFont: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT,
2223
val isAutoFitWidth: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH,
24+
val messageListPreviewLines: Int = DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES,
2325
)

core/preference/api/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DisplayVisualSettingsPreferenceManager.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ const val KEY_USE_BACKGROUND_AS_UNREAD_INDICATOR = "isUseBackgroundAsUnreadIndic
1111
const val KEY_MESSAGE_VIEW_FIXED_WIDTH_FONT = "messageViewFixedWidthFont"
1212
const val KEY_AUTO_FIT_WIDTH = "autofitWidth"
1313
const val KEY_SHOW_CONTACT_PICTURE = "showContactPicture"
14+
const val KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES = "messageListPreviewLines"
1415

1516
interface DisplayVisualSettingsPreferenceManager : PreferenceManager<DisplayVisualSettings>

core/preference/impl/src/commonMain/kotlin/net/thunderbird/core/preference/display/visualSettings/DefaultDisplayVisualSettingsPreferenceManager.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ class DefaultDisplayVisualSettingsPreferenceManager(
7070
KEY_SHOW_CONTACT_PICTURE,
7171
DISPLAY_SETTINGS_DEFAULT_IS_SHOW_CONTACT_PICTURE,
7272
),
73+
messageListPreviewLines = storage.getInt(
74+
KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES,
75+
DISPLAY_SETTINGS_DEFAULT_MESSAGE_LIST_PREVIEW_LINES,
76+
),
7377
)
7478

7579
private fun writeConfig(config: DisplayVisualSettings) {
@@ -103,6 +107,10 @@ class DefaultDisplayVisualSettingsPreferenceManager(
103107
KEY_SHOW_CORRESPONDENT_NAMES,
104108
config.isShowCorrespondentNames,
105109
)
110+
storageEditor.putInt(
111+
KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES,
112+
config.messageListPreviewLines,
113+
)
106114
storageEditor.commit().also { commited ->
107115
logger.verbose(TAG) { "writeConfig: storageEditor.commit() resulted in: $commited" }
108116
}

legacy/core/src/main/java/com/fsck/k9/K9.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,6 @@ object K9 : KoinComponent {
143143
@JvmStatic
144144
var messageListDensity: UiDensity = UiDensity.Default
145145

146-
@JvmStatic
147-
var messageListPreviewLines = 2
148-
149146
@JvmStatic
150147
var contactNameColor = 0xFF1093F5.toInt()
151148

@@ -233,7 +230,6 @@ object K9 : KoinComponent {
233230
@Suppress("LongMethod")
234231
fun loadPrefs(storage: Storage) {
235232
isShowAccountSelector = storage.getBoolean("showAccountSelector", true)
236-
messageListPreviewLines = storage.getInt("messageListPreviewLines", 2)
237233

238234
messageListDensity = storage.getEnum("messageListDensity", UiDensity.Default)
239235
contactNameColor = storage.getInt("registeredNameColor", 0xFF1093F5.toInt())
@@ -294,7 +290,6 @@ object K9 : KoinComponent {
294290
internal fun save(editor: StorageEditor) {
295291
editor.putEnum("messageListDensity", messageListDensity)
296292
editor.putBoolean("showAccountSelector", isShowAccountSelector)
297-
editor.putInt("messageListPreviewLines", messageListPreviewLines)
298293
editor.putInt("registeredNameColor", contactNameColor)
299294
editor.putEnum("messageViewPostMarkAsUnreadAction", messageViewPostMarkAsUnreadNavigation)
300295

legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageListActivityConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ data class MessageListActivityConfig(
5858
isShowComposeButton = settings.display.inboxSettings.isShowComposeButtonOnMessageList,
5959
contactNameColor = K9.contactNameColor,
6060
messageViewTheme = settings.display.coreSettings.messageViewTheme,
61-
messageListPreviewLines = K9.messageListPreviewLines,
61+
messageListPreviewLines = settings.display.visualSettings.messageListPreviewLines,
6262
messageListDensity = K9.messageListDensity,
6363
splitViewMode = settings.display.coreSettings.splitViewMode,
6464
fontSizeMessageListSubject = K9.fontSizes.messageListSubject,

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,7 @@ class MessageListFragment :
795795
private val messageListAppearance: MessageListAppearance
796796
get() = MessageListAppearance(
797797
fontSizes = K9.fontSizes,
798-
previewLines = K9.messageListPreviewLines,
798+
previewLines = generalSettingsManager.getConfig().display.visualSettings.messageListPreviewLines,
799799
stars = !isOutbox && generalSettingsManager.getConfig().display.inboxSettings.isShowMessageListStars,
800800
senderAboveSubject = generalSettingsManager
801801
.getConfig()

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/settings/general/GeneralSettingsDataStore.kt

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class GeneralSettingsDataStore(
7070

7171
"disable_notifications_during_quiet_time" -> !generalSettingsManager.getConfig()
7272
.notification.isNotificationDuringQuietTimeEnabled
73+
7374
"privacy_hide_useragent" -> generalSettingsManager.getConfig().privacy.isHideUserAgent
7475
"privacy_hide_timezone" -> generalSettingsManager.getConfig().privacy.isHideTimeZone
7576
"debug_logging" -> generalSettingsManager.getConfig().debugging.isDebugLoggingEnabled
@@ -153,7 +154,9 @@ class GeneralSettingsDataStore(
153154
generalSettingsManager.getConfig().display.coreSettings.messageViewTheme,
154155
)
155156

156-
"messagelist_preview_lines" -> K9.messageListPreviewLines.toString()
157+
"messagelist_preview_lines" -> generalSettingsManager.getConfig()
158+
.display.visualSettings.messageListPreviewLines.toString()
159+
157160
"splitview_mode" -> generalSettingsManager.getConfig().display.coreSettings.splitViewMode.name
158161
"notification_quick_delete" -> K9.notificationQuickDeleteBehaviour.name
159162
"lock_screen_notification_visibility" -> K9.lockScreenNotificationVisibility.name
@@ -191,7 +194,7 @@ class GeneralSettingsDataStore(
191194
"theme" -> setTheme(value)
192195
"message_compose_theme" -> setMessageComposeTheme(value)
193196
"messageViewTheme" -> setMessageViewTheme(value)
194-
"messagelist_preview_lines" -> K9.messageListPreviewLines = value.toInt()
197+
"messagelist_preview_lines" -> setMessageListPreviewLines(value.toInt())
195198
"splitview_mode" -> setSplitViewModel(SplitViewMode.valueOf(value.uppercase()))
196199
"notification_quick_delete" -> {
197200
K9.notificationQuickDeleteBehaviour = K9.NotificationQuickDelete.valueOf(value)
@@ -332,6 +335,19 @@ class GeneralSettingsDataStore(
332335
}
333336
}
334337

338+
private fun setMessageListPreviewLines(previewLines: Int) {
339+
skipSaveSettings = true
340+
generalSettingsManager.update { settings ->
341+
settings.copy(
342+
display = settings.display.copy(
343+
visualSettings = settings.display.visualSettings.copy(
344+
messageListPreviewLines = previewLines,
345+
),
346+
),
347+
)
348+
}
349+
}
350+
335351
private fun setSplitViewModel(mode: SplitViewMode) {
336352
skipSaveSettings = true
337353
generalSettingsManager.update { settings ->

0 commit comments

Comments
 (0)