Skip to content

Commit 673e4cb

Browse files
committed
refactor: migrate K9.isMessageViewSpamActionVisible to PreferenceDataStore
1 parent 313517f commit 673e4cb

File tree

6 files changed

+20
-12
lines changed

6 files changed

+20
-12
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
@@ -12,6 +12,7 @@ const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_ARCHIVE_ACTION_VISIBLE = false
1212
const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_DELETE_ACTION_VISIBLE = true
1313
const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_MOVE_ACTION_VISIBLE = false
1414
const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_COPY_ACTION_VISIBLE = false
15+
const val DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_SPAM_ACTION_VISIBLE = false
1516

1617
data class DisplayVisualSettings(
1718
val isShowAnimations: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_ANIMATION,
@@ -24,4 +25,5 @@ data class DisplayVisualSettings(
2425
val isMessageViewDeleteActionVisible: Boolean = DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_DELETE_ACTION_VISIBLE,
2526
val isMessageViewMoveActionVisible: Boolean = DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_MOVE_ACTION_VISIBLE,
2627
val isMessageViewCopyActionVisible: Boolean = DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_COPY_ACTION_VISIBLE,
28+
val isMessageViewSpamActionVisible: Boolean = DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_SPAM_ACTION_VISIBLE,
2729
)

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_MESSAGE_VIEW_ARCHIVE_ACTION_VISIBLE = "messageViewArchiveActionVis
1111
const val KEY_MESSAGE_VIEW_DELETE_ACTION_VISIBLE = "messageViewDeleteActionVisible"
1212
const val KEY_MESSAGE_VIEW_MOVE_ACTION_VISIBLE = "messageViewMoveActionVisible"
1313
const val KEY_MESSAGE_VIEW_COPY_ACTION_VISIBLE = "messageViewCopyActionVisible"
14+
const val KEY_MESSAGE_VIEW_SPAM_ACTION_VISIBLE = "messageViewSpamActionVisible"
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
@@ -93,6 +93,10 @@ class DefaultDisplayVisualSettingsPreferenceManager(
9393
KEY_MESSAGE_VIEW_COPY_ACTION_VISIBLE,
9494
DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_COPY_ACTION_VISIBLE,
9595
),
96+
isMessageViewSpamActionVisible = storage.getBoolean(
97+
KEY_MESSAGE_VIEW_SPAM_ACTION_VISIBLE,
98+
DISPLAY_SETTINGS_DEFAULT_MESSAGE_VIEW_SPAM_ACTION_VISIBLE,
99+
),
96100
)
97101

98102
private fun writeConfig(config: DisplayVisualSettings) {
@@ -124,6 +128,10 @@ class DefaultDisplayVisualSettingsPreferenceManager(
124128
KEY_MESSAGE_VIEW_COPY_ACTION_VISIBLE,
125129
config.isMessageViewCopyActionVisible,
126130
)
131+
storageEditor.putBoolean(
132+
KEY_MESSAGE_VIEW_SPAM_ACTION_VISIBLE,
133+
config.isMessageViewSpamActionVisible,
134+
)
127135
storageEditor.commit().also { commited ->
128136
logger.verbose(TAG) { "writeConfig: storageEditor.commit() resulted in: $commited" }
129137
}

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@ object K9 : KoinComponent {
125125
var sortType: SortType = AccountDefaultsProvider.DEFAULT_SORT_TYPE
126126
private val sortAscending = mutableMapOf<SortType, Boolean>()
127127

128-
129-
@JvmStatic
130-
var isMessageViewSpamActionVisible = false
131-
132128
@JvmStatic
133129
var pgpInlineDialogCounter: Int = 0
134130

@@ -196,7 +192,6 @@ object K9 : KoinComponent {
196192
.onDisabledOrUnavailable {
197193
fontSizes.load(storage)
198194
}
199-
isMessageViewSpamActionVisible = storage.getBoolean("messageViewSpamActionVisible", false)
200195

201196
pgpInlineDialogCounter = storage.getInt("pgpInlineDialogCounter", 0)
202197
pgpSignOnlyDialogCounter = storage.getInt("pgpSignOnlyDialogCounter", 0)
@@ -217,7 +212,6 @@ object K9 : KoinComponent {
217212
editor.putEnum("sortTypeEnum", sortType)
218213
editor.putBoolean("sortAscending", sortAscending[sortType] ?: false)
219214
editor.putString("lockScreenNotificationVisibility", lockScreenNotificationVisibility.toString())
220-
editor.putBoolean("messageViewSpamActionVisible", isMessageViewSpamActionVisible)
221215

222216
editor.putInt("pgpInlineDialogCounter", pgpInlineDialogCounter)
223217
editor.putInt("pgpSignOnlyDialogCounter", pgpSignOnlyDialogCounter)

legacy/ui/legacy/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import app.k9mail.core.android.common.activity.CreateDocumentResultContract
3636
import app.k9mail.core.ui.legacy.designsystem.atom.icon.Icons
3737
import app.k9mail.legacy.message.controller.MessageReference
3838
import com.eygraber.uri.toKmpUri
39-
import com.fsck.k9.K9
4039
import com.fsck.k9.activity.MessageCompose
4140
import com.fsck.k9.activity.MessageLoaderHelper
4241
import com.fsck.k9.activity.MessageLoaderHelper.MessageLoaderCallbacks
@@ -327,12 +326,14 @@ class MessageViewFragment :
327326
val canMessageBeArchived = canMessageBeArchived()
328327
val canMessageBeMovedToSpam = canMessageBeMovedToSpam()
329328

330-
menu.findItem(R.id.move).isVisible = generalSettingsManager.getConfig().display
331-
.visualSettings.isMessageViewMoveActionVisible
329+
menu.findItem(R.id.move).isVisible =
330+
generalSettingsManager.getConfig().display.visualSettings.isMessageViewMoveActionVisible
332331
menu.findItem(R.id.archive).isVisible =
333332
canMessageBeArchived &&
334333
generalSettingsManager.getConfig().display.visualSettings.isMessageViewArchiveActionVisible
335-
menu.findItem(R.id.spam).isVisible = canMessageBeMovedToSpam && K9.isMessageViewSpamActionVisible
334+
menu.findItem(R.id.spam).isVisible =
335+
canMessageBeMovedToSpam && generalSettingsManager
336+
.getConfig().display.visualSettings.isMessageViewSpamActionVisible
336337

337338
menu.findItem(R.id.refile_move).isVisible = true
338339
menu.findItem(R.id.refile_archive).isVisible = canMessageBeArchived
@@ -406,13 +407,15 @@ class MessageViewFragment :
406407
printMessage()
407408
return true
408409
}
410+
409411
R.id.export_eml -> if (
410412
featureFlagProvider.provide(MessageViewFeatureFlags.ActionExportEml).isEnabled()
411413
) {
412414
onExportEml()
413415
} else {
414416
return true
415417
}
418+
416419
R.id.set_format_plain -> onDisplayPlainText()
417420
R.id.set_format_html -> onDisplayHTML()
418421
else -> return false

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class GeneralSettingsDataStore(
250250
if (visualSettings.isMessageViewArchiveActionVisible) add("archive")
251251
if (visualSettings.isMessageViewMoveActionVisible) add("move")
252252
if (visualSettings.isMessageViewCopyActionVisible) add("copy")
253-
if (K9.isMessageViewSpamActionVisible) add("spam")
253+
if (visualSettings.isMessageViewSpamActionVisible) add("spam")
254254
}
255255
}
256256

@@ -287,11 +287,11 @@ class GeneralSettingsDataStore(
287287
isMessageViewDeleteActionVisible = "delete" in checkedValues,
288288
isMessageViewMoveActionVisible = "move" in checkedValues,
289289
isMessageViewCopyActionVisible = "copy" in checkedValues,
290+
isMessageViewSpamActionVisible = "spam" in checkedValues,
290291
),
291292
),
292293
)
293294
}
294-
K9.isMessageViewSpamActionVisible = "spam" in checkedValues
295295
}
296296

297297
else -> return

0 commit comments

Comments
 (0)