8000 Replace Direct Calls to K9.isMessageListSenderAboveSubject with PreferenceDataStore integration by shamim-emon · Pull Request #9322 · thunderbird/thunderbird-android · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Replace Direct Calls to K9.isMessageListSenderAboveSubject with PreferenceDataStore integration #9322

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ data class GeneralSettings(
val isShowAnimations: Boolean,
val isShowCorrespondentNames: Boolean,
val shouldShowSetupArchiveFolderDialog: Boolean,
val isMessageListSenderAboveSubject: Boolean,
)

enum class BackgroundSync {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ interface GeneralSettingsManager {
fun setIsShowAnimations(isShowAnimations: Boolean)
fun setIsShowCorrespondentNames(isShowCorrespondentNames: Boolean)
fun setSetupArchiveShouldNotShowAgain(shouldShowSetupArchiveFolderDialog: Boolean)
fun setIsMessageListSenderAboveSubject(isMessageListSenderAboveSubject: Boolean)
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ class BuildSwipeActionsTest {
isShowAnimations = false,
isShowCorrespondentNames = false,
shouldShowSetupArchiveFolderDialog = false,
isMessageListSenderAboveSubject = false,
)

@Test
Expand Down Expand Up @@ -389,6 +390,8 @@ private class FakeGeneralSettingsManager(
override fun setSetupArchiveShouldNotShowAgain(shouldShowSetupArchiveFolderDialog: Boolean) {
generalSettings.update { it.copy(shouldShowSetupArchiveFolderDialog = shouldShowSetupArchiveFolderDialog) }
}

override fun setIsMessageListSenderAboveSubject(isMessageListSenderAboveSubject: Boolean) = error("not implemented")
}

private class FakeStorage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.fsck.k9.CoreResourceProvider
import com.fsck.k9.K9
import com.fsck.k9.activity.MessageList
import net.thunderbird.core.android.account.SortType
import net.thunderbird.core.preference.GeneralSettingsManager
import net.thunderbird.feature.search.LocalSearch
import net.thunderbird.feature.search.SearchAccount
import org.koin.core.component.KoinComponent
Expand All @@ -21,6 +22,7 @@ import org.koin.core.component.inject
internal class MessageListRemoteViewFactory(private val context: Context) : RemoteViewsFactory, KoinComponent {
private val messageListLoader: MessageListLoader by inject()
private val coreResourceProvider: CoreResourceProvider by inject()
private val generalSettingsManager: GeneralSettingsManager by inject()

private lateinit var unifiedInboxSearch: LocalSearch

Expand All @@ -35,7 +37,7 @@ internal class MessageListRemoteViewFactory(private val context: Context) : Remo
unifiedInboxDetail = coreResourceProvider.searchUnifiedInboxDetail(),
).relatedSearch

senderAboveSubject = K9.isMessageListSenderAboveSubject
senderAboveSubject = generalSettingsManager.getSettings().isMessageListSenderAboveSubject
readTextColor = ContextCompat.getColor(context, R.color.message_list_widget_text_read)
unreadTextColor = ContextCompat.getColor(context, R.color.message_list_widget_text_unread)
}
Expand Down
5 changes: 0 additions & 5 deletions legacy/core/src/main/java/com/fsck/k9/K9.kt
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,6 @@ object K9 : KoinComponent {
@JvmStatic
var messageListPreviewLines = 2

@JvmStatic
var isMessageListSenderAboveSubject = false

@JvmStatic
var isShowContactName = false

Expand Down Expand Up @@ -334,7 +331,6 @@ object K9 : KoinComponent {
isSensitiveDebugLoggingEnabled = storage.getBoolean("enableSensitiveLogging", false)
isUseVolumeKeysForNavigation = storage.getBoolean("useVolumeKeysForNavigation", false)
isShowAccountSelector = storage.getBoolean("showAccountSelector", true)
isMessageListSenderAboveSubject = storage.getBoolean("messageListSenderAboveSubject", false)
messageListPreviewLines = storage.getInt("messageListPreviewLines", 2)

isAutoFitWidth = storage.getBoolean("autofitWidth", true)
Expand Down Expand Up @@ -434,7 +430,6 @@ object K9 : KoinComponent {
editor.putString("quietTimeEnds", quietTimeEnds)

6D40 editor.putEnum("messageListDensity", messageListDensity)
editor.putBoolean("messageListSenderAboveSubject", isMessageListSenderAboveSubject)
editor.putBoolean("showAccountSelector", isShowAccountSelector)
editor.putInt("messageListPreviewLines", messageListPreviewLines)
editor.putBoolean("showContactName", isShowContactName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ internal class RealGeneralSettingsManager(
getSettings().copy(shouldShowSetupArchiveFolderDialog = shouldShowSetupArchiveFolderDialog).persist()
}

override fun setIsMessageListSenderAboveSubject(isMessageListSenderAboveSubject: Boolean) {
getSettings().copy(isMessageListSenderAboveSubject = isMessageListSenderAboveSubject).persist()
}

private fun writeSettings(editor: StorageEditor, settings: GeneralSettings) {
editor.putBoolean("showRecentChanges", settings.showRecentChanges)
editor.putEnum("theme", settings.appTheme)
Expand All @@ -175,6 +179,7 @@ internal class RealGeneralSettingsManager(
editor.putBoolean("animations", settings.isShowAnimations)
editor.putBoolean("showCorrespondentNames", settings.isShowCorrespondentNames)
editor.putBoolean(KEY_SHOULD_SHOW_SETUP_ARCHIVE_FOLDER_DIALOG, settings.shouldShowSetupArchiveFolderDialog)
editor.putBoolean("messageListSenderAboveSubject", settings.isMessageListSenderAboveSubject)
}

private fun loadGeneralSettings(): GeneralSettings {
Expand Down Expand Up @@ -202,6 +207,7 @@ internal class RealGeneralSettingsManager(
key = KEY_SHOULD_SHOW_SETUP_ARCHIVE_FOLDER_DIALOG,
defValue = true,
),
isMessageListSenderAboveSubject = storage.getBoolean("messageListSenderAboveSubject", false),
)

updateSettingsFlow(settings)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class MessageHelperTest : RobolectricTest() {
isShowMessageListStars = false,
isShowAnimations = false,
shouldShowSetupArchiveFolderDialog = false,
isMessageListSenderAboveSubject = false,
),
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ class NotificationContentCreatorTest : RobolectricTest() {
isShowMessageListStars = false,
isShowAnimations = false,
shouldShowSetupArchiveFolderDialog = false,
isMessageListSenderAboveSubject = false,
)
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ data class MessageListActivityConfig(
isShowUnifiedInbox = generalSettingsManager.getSettings().isShowUnifiedInbox,
isShowMessageListStars = generalSettingsManager.getSettings().isShowMessageListStars,
isShowCorrespondentNames = generalSettingsManager.getSettings().isShowCorrespondentNames,
isMessageListSenderAboveSubject = K9.isMessageListSenderAboveSubject,
isMessageListSenderAboveSubject = generalSettingsManager.getSettings().isMessageListSenderAboveSubject,
isShowContactName = K9.isShowContactName,
isChangeContactNameColor = K9.isChangeContactNameColor,
isShowContactPicture = K9.isShowContactPicture,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,7 @@ class MessageListFragment :
fontSizes = K9.fontSizes,
previewLines = K9.messageListPreviewLines,
stars = !isOutbox && generalSettingsManager.getSettings().isShowMessageListStars,
senderAboveSubject = K9.isMessageListSenderAboveSubject,
senderAboveSubject = generalSettingsManager.getSettings().isMessageListSenderAboveSubject,
showContactPicture = K9.isShowContactPicture,
showingThreadedList = showingThreadedList,
backGroundAsReadIndicator = K9.isUseBackgroundAsUnreadIndicator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class GeneralSettingsDataStore(
"show_starred_count" -> generalSettingsManager.getSettings().isShowStarredCount
"messagelist_stars" -> generalSettingsManager.getSettings().isShowMessageListStars
"messagelist_show_correspondent_names" -> generalSettingsManager.getSettings().isShowCorrespondentNames
"messagelist_sender_above_subject" -> K9.isMessageListSenderAboveSubject
"messagelist_sender_above_subject" -> generalSettingsManager.getSettings().isMessageListSenderAboveSubject
"messagelist_show_contact_name" -> K9.isShowContactName
"messagelist_change_contact_name_color" -> K9.isChangeContactNameColor
"messagelist_show_contact_picture" -> K9.isShowContactPicture
Expand Down Expand Up @@ -61,7 +61,9 @@ class GeneralSettingsDataStore(
"show_starred_count" -> setIsShowStarredCount(isShowStarredCount = value)
"messagelist_stars" -> setIsShowMessageListStars(isShowMessageListStars = value)
"messagelist_show_correspondent_names" -> setIsShowCorrespondentNames(isShowCorrespondentNames = value)
"messagelist_sender_above_subject" -> K9.isMessageListSenderAboveSubject = value
"messagelist_sender_above_subject" -> setIsMessageListSenderAboveSubject(
isMessageListSenderAboveSubject = value,
)
"messagelist_show_contact_name" -> K9.isShowContactName = value
"messagelist_change_contact_name_color" -> K9.isChangeContactNameColor = value
"messagelist_show_contact_picture" -> K9.isShowContactPicture = value
Expand Down Expand Up @@ -287,6 +289,11 @@ class GeneralSettingsDataStore(
generalSettingsManager.setIsShowCorrespondentNames(isShowCorrespondentNames)
}

private fun setIsMessageListSenderAboveSubject(isMessageListSenderAboveSubject: Boolean) {
skipSaveSettings = true
generalSettingsManager.setIsMessageListSenderAboveSubject(isMessageListSenderAboveSubject)
}

private fun appThemeToString(theme: AppTheme) = when (theme) {
AppTheme.LIGHT -> "light"
AppTheme.DARK -> "dark"
Expand Down
0