Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 3879caef authored by Rafael Tonholo's avatar Rafael Tonholo Committed by GitHub
Browse files

Merge pull request #9623 from shamim-emon/fix-issue-9476

Persist K9.splitViewMode via PreferenceDataStore
parents f952209a 9db2c227
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -45,3 +45,12 @@ enum class BackgroundOps {
    NEVER,
    NEVER,
    WHEN_CHECKED_AUTO_SYNC,
    WHEN_CHECKED_AUTO_SYNC,
}
}

/**
 * Controls when to use the message list split view.
 */
enum class SplitViewMode {
    ALWAYS,
    NEVER,
    WHEN_IN_LANDSCAPE,
}
+4 −0
Original line number Original line Diff line number Diff line
package net.thunderbird.core.preference.display
package net.thunderbird.core.preference.display


import net.thunderbird.core.preference.AppTheme
import net.thunderbird.core.preference.AppTheme
import net.thunderbird.core.preference.SplitViewMode
import net.thunderbird.core.preference.SubTheme
import net.thunderbird.core.preference.SubTheme


const val DISPLAY_SETTINGS_DEFAULT_FIXED_MESSAGE_VIEW_THEME = true
const val DISPLAY_SETTINGS_DEFAULT_FIXED_MESSAGE_VIEW_THEME = true
@@ -26,6 +27,8 @@ 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_AUTO_FIT_WIDTH = true
const val DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE = ""
const val DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE = ""


val DISPLAY_SETTINGS_DEFAULT_SPLIT_VIEW_MODE = SplitViewMode.NEVER

data class DisplaySettings(
data class DisplaySettings(
    val fixedMessageViewTheme: Boolean = DISPLAY_SETTINGS_DEFAULT_FIXED_MESSAGE_VIEW_THEME,
    val fixedMessageViewTheme: Boolean = DISPLAY_SETTINGS_DEFAULT_FIXED_MESSAGE_VIEW_THEME,
    val isShowUnifiedInbox: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_UNIFIED_INBOX,
    val isShowUnifiedInbox: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_UNIFIED_INBOX,
@@ -49,4 +52,5 @@ data class DisplaySettings(
    val isUseMessageViewFixedWidthFont: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT,
    val isUseMessageViewFixedWidthFont: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_USE_MESSAGE_VIEW_FIXED_WIDTH_FONT,
    val isAutoFitWidth: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH,
    val isAutoFitWidth: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_AUTO_FIT_WIDTH,
    val appLanguage: String = DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE,
    val appLanguage: String = DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE,
    val splitViewMode: SplitViewMode = DISPLAY_SETTINGS_DEFAULT_SPLIT_VIEW_MODE,
)
)
+1 −0
Original line number Original line Diff line number Diff line
@@ -24,5 +24,6 @@ const val KEY_AUTO_FIT_WIDTH = "autofitWidth"
const val KEY_MESSAGE_LIST_SENDER_ABOVE_SUBJECT = "messageListSenderAboveSubject"
const val KEY_MESSAGE_LIST_SENDER_ABOVE_SUBJECT = "messageListSenderAboveSubject"
const val KEY_SHOW_CONTACT_PICTURE = "showContactPicture"
const val KEY_SHOW_CONTACT_PICTURE = "showContactPicture"
const val KEY_APP_LANGUAGE = "language"
const val KEY_APP_LANGUAGE = "language"
const val KEY_SPLIT_VIEW_MODE = "splitViewMode"


interface DisplaySettingsPreferenceManager : PreferenceManager<DisplaySettings>
interface DisplaySettingsPreferenceManager : PreferenceManager<DisplaySettings>
+5 −0
Original line number Original line Diff line number Diff line
@@ -123,6 +123,10 @@ class DefaultDisplaySettingsPreferenceManager(
            KEY_APP_LANGUAGE,
            KEY_APP_LANGUAGE,
            DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE,
            DISPLAY_SETTINGS_DEFAULT_APP_LANGUAGE,
        ),
        ),
        splitViewMode = storage.getEnumOrDefault(
            KEY_SPLIT_VIEW_MODE,
            DISPLAY_SETTINGS_DEFAULT_SPLIT_VIEW_MODE,
        ),
    )
    )


    private fun writeConfig(config: DisplaySettings) {
    private fun writeConfig(config: DisplaySettings) {
@@ -190,6 +194,7 @@ class DefaultDisplaySettingsPreferenceManager(
                )
                )
                storageEditor.putBoolean(KEY_AUTO_FIT_WIDTH, config.isAutoFitWidth)
                storageEditor.putBoolean(KEY_AUTO_FIT_WIDTH, config.isAutoFitWidth)
                storageEditor.putString(KEY_APP_LANGUAGE, config.appLanguage)
                storageEditor.putString(KEY_APP_LANGUAGE, config.appLanguage)
                storageEditor.putEnum(KEY_SPLIT_VIEW_MODE, config.splitViewMode)
                storageEditor.commit().also { commited ->
                storageEditor.commit().also { commited ->
                    logger.verbose(TAG) { "writeConfig: storageEditor.commit() resulted in: $commited" }
                    logger.verbose(TAG) { "writeConfig: storageEditor.commit() resulted in: $commited" }
                }
                }
+0 −18
Original line number Original line Diff line number Diff line
@@ -171,11 +171,6 @@ object K9 : KoinComponent {
    var sortType: SortType = AccountDefaultsProvider.DEFAULT_SORT_TYPE
    var sortType: SortType = AccountDefaultsProvider.DEFAULT_SORT_TYPE
    private val sortAscending = mutableMapOf<SortType, Boolean>()
    private val sortAscending = mutableMapOf<SortType, Boolean>()


    @get:Synchronized
    @set:Synchronized
    @JvmStatic
    var splitViewMode = SplitViewMode.NEVER

    @JvmStatic
    @JvmStatic
    var isMessageViewArchiveActionVisible = false
    var isMessageViewArchiveActionVisible = false


@@ -279,8 +274,6 @@ object K9 : KoinComponent {
            LockScreenNotificationVisibility.MESSAGE_COUNT,
            LockScreenNotificationVisibility.MESSAGE_COUNT,
        )
        )


        splitViewMode = storage.getEnum("splitViewMode", SplitViewMode.NEVER)

        featureFlagProvider.provide("disable_font_size_config".toFeatureFlagKey())
        featureFlagProvider.provide("disable_font_size_config".toFeatureFlagKey())
            .onDisabledOrUnavailable {
            .onDisabledOrUnavailable {
                fontSizes.load(storage)
                fontSizes.load(storage)
@@ -337,8 +330,6 @@ object K9 : KoinComponent {
        editor.putString("notificationQuickDelete", notificationQuickDeleteBehaviour.toString())
        editor.putString("notificationQuickDelete", notificationQuickDeleteBehaviour.toString())
        editor.putString("lockScreenNotificationVisibility", lockScreenNotificationVisibility.toString())
        editor.putString("lockScreenNotificationVisibility", lockScreenNotificationVisibility.toString())


        editor.putEnum("splitViewMode", splitViewMode)

        editor.putBoolean("messageViewArchiveActionVisible", isMessageViewArchiveActionVisible)
        editor.putBoolean("messageViewArchiveActionVisible", isMessageViewArchiveActionVisible)
        editor.putBoolean("messageViewDeleteActionVisible", isMessageViewDeleteActionVisible)
        editor.putBoolean("messageViewDeleteActionVisible", isMessageViewDeleteActionVisible)
        editor.putBoolean("messageViewMoveActionVisible", isMessageViewMoveActionVisible)
        editor.putBoolean("messageViewMoveActionVisible", isMessageViewMoveActionVisible)
@@ -416,15 +407,6 @@ object K9 : KoinComponent {
        NOTHING,
        NOTHING,
    }
    }


    /**
     * Controls when to use the message list split view.
     */
    enum class SplitViewMode {
        ALWAYS,
        NEVER,
        WHEN_IN_LANDSCAPE,
    }

    /**
    /**
     * The navigation actions that can be to performed after the user has deleted or moved a message from the message
     * The navigation actions that can be to performed after the user has deleted or moved a message from the message
     * view screen.
     * view screen.
Loading