Skip to content
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 @@ -14,4 +14,5 @@ data class DisplayInboxSettings(
val isMessageListSenderAboveSubject: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_MESSAGE_LIST_SENDER_ABOVE_SUBJECT,
val isShowComposeButtonOnMessageList: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_SHOW_COMPOSE_BUTTON_ON_MESSAGE_LIST,
val isThreadedViewEnabled: Boolean = DISPLAY_SETTINGS_DEFAULT_IS_THREAD_VIEW_ENABLED,

)
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const val MESSAGE_LIST_SETTINGS_DEFAULT_IS_COLORIZE_MISSING_CONTACT_PICTURE = tr
const val MESSAGE_LIST_SETTINGS_DEFAULT_IS_USE_BACKGROUND_AS_INDICATOR = false
const val MESSAGE_LIST_SETTINGS_DEFAULT_PREVIEW_LINES = 2
val MESSAGE_LIST_SETTINGS_DEFAULT_UI_DENSITY = UiDensity.Default
const val DISPLAY_SETTINGS_DEFAULT_CONTACT_NAME_COLOR = 0xFF1093F5.toInt()

data class DisplayMessageListSettings(
val isShowCorrespondentNames: Boolean = MESSAGE_LIST_SETTINGS_DEFAULT_IS_SHOW_CORRESPONDENT_NAMES,
Expand All @@ -18,4 +19,5 @@ data class DisplayMessageListSettings(
val isUseBackgroundAsUnreadIndicator: Boolean = MESSAGE_LIST_SETTINGS_DEFAULT_IS_USE_BACKGROUND_AS_INDICATOR,
val previewLines: Int = MESSAGE_LIST_SETTINGS_DEFAULT_PREVIEW_LINES,
val uiDensity: UiDensity = MESSAGE_LIST_SETTINGS_DEFAULT_UI_DENSITY,
val contactNameColor: Int = DISPLAY_SETTINGS_DEFAULT_CONTACT_NAME_COLOR,
)
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ const val KEY_SHOW_CONTACT_NAME = "showContactName"
const val KEY_SHOW_CONTACT_PICTURE = "showContactPicture"
const val KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES = "messageListPreviewLines"
const val KEY_MESSAGE_LIST_VIEW_DENSITY = "messageListDensity"
const val KEY_REGISTERED_NAME_COLOR = "registeredNameColor"

interface MessageListPreferencesManager : PreferenceManager<DisplayMessageListSettings>
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ class DefaultDisplayVisualSettingsPreferenceManager(
KEY_DRAWER_EXPAND_ALL_FOLDER,
DISPLAY_SETTINGS_DEFAULT_DRAWER_EXPAND_ALL_FOLDER,
),

)

private fun writeConfig(config: DisplayVisualSettings) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ class DefaultMessageListPreferencesManager(
KEY_MESSAGE_LIST_VIEW_DENSITY,
MESSAGE_LIST_SETTINGS_DEFAULT_UI_DENSITY,
),
contactNameColor = storage.getInt(
KEY_REGISTERED_NAME_COLOR,
DISPLAY_SETTINGS_DEFAULT_CONTACT_NAME_COLOR,
),
)

private fun write(preferences: DisplayMessageListSettings) {
Expand All @@ -66,6 +70,7 @@ class DefaultMessageListPreferencesManager(
storageEditor.putBoolean(KEY_SHOW_CONTACT_NAME, preferences.isShowContactName)
storageEditor.putBoolean(KEY_SHOW_CORRESPONDENT_NAMES, preferences.isShowCorrespondentNames)
storageEditor.putInt(KEY_MESSAGE_LIST_VIEW_PREVIEW_LINES, preferences.previewLines)
storageEditor.putInt(KEY_REGISTERED_NAME_COLOR, preferences.contactNameColor)
storageEditor.putEnum(KEY_MESSAGE_LIST_VIEW_DENSITY, preferences.uiDensity)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ internal class MessageListItemMapper(
addresses = toAddresses.toTypedArray(),
isShowCorrespondentNames = settings.isShowCorrespondentNames,
isChangeContactNameColor = settings.isChangeContactNameColor,
contactNameColor = settings.contactNameColor,
).toString()
} else {
messageHelper.getSenderDisplayName(displayAddress).toString()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ internal class MessageListItemMapper(
addresses = toAddresses.toTypedArray(),
isShowCorrespondentNames = messageListSettings.isShowCorrespondentNames,
isChangeContactNameColor = messageListSettings.isChangeContactNameColor,
contactNameColor = messageListSettings.contactNameColor,
).toString()
} else {
messageHelper.getSenderDisplayName(displayAddress).toString()
Expand Down
6 changes: 0 additions & 6 deletions legacy/core/src/main/java/com/fsck/k9/K9.kt
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,6 @@ object K9 : KoinComponent {
@JvmStatic
var lockScreenNotificationVisibility = LockScreenNotificationVisibility.MESSAGE_COUNT

@JvmStatic
var contactNameColor = 0xFF1093F5.toInt()

var messageViewPostMarkAsUnreadNavigation: PostMarkAsUnreadNavigation =
PostMarkAsUnreadNavigation.ReturnToMessageList

Expand Down Expand Up @@ -201,8 +198,6 @@ object K9 : KoinComponent {
@Suppress("LongMethod")
fun loadPrefs(storage: Storage) {
isShowAccountSelector = storage.getBoolean("showAccountSelector", true)

contactNameColor = storage.getInt("registeredNameColor", 0xFF1093F5.toInt())
messageViewPostMarkAsUnreadNavigation =
storage.getEnum("messageViewPostMarkAsUnreadAction", PostMarkAsUnreadNavigation.ReturnToMessageList)

Expand Down Expand Up @@ -243,7 +238,6 @@ object K9 : KoinComponent {
@Suppress("LongMethod")
internal fun save(editor: StorageEditor) {
editor.putBoolean("showAccountSelector", isShowAccountSelector)
editor.putInt("registeredNameColor", contactNameColor)
editor.putEnum("messageViewPostMarkAsUnreadAction", messageViewPostMarkAsUnreadNavigation)

editor.putEnum("sortTypeEnum", sortType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import android.text.TextUtils
import android.text.style.ForegroundColorSpan
import app.k9mail.core.android.common.contact.ContactRepository
import com.fsck.k9.CoreResourceProvider
import com.fsck.k9.K9.contactNameColor
import com.fsck.k9.mail.Address
import java.util.regex.Pattern
import net.thunderbird.core.common.mail.toEmailAddressOrNull
Expand All @@ -33,6 +32,7 @@ class MessageHelper(
address,
messageListPreferences.isShowCorrespondentNames,
messageListPreferences.isChangeContactNameColor,
messageListPreferences.contactNameColor,
repository,
)
}
Expand All @@ -41,13 +41,15 @@ class MessageHelper(
addresses: Array<Address>?,
isShowCorrespondentNames: Boolean,
isChangeContactNameColor: Boolean,
contactNameColor: Int,
): CharSequence {
if (addresses == null || addresses.isEmpty()) {
return resourceProvider.contactUnknownRecipient()
}
val repository =
if (messageListPreferences.isShowContactName) contactRepository else null
val recipients = toFriendly(addresses, isShowCorrespondentNames, isChangeContactNameColor, repository)
val recipients =
toFriendly(addresses, isShowCorrespondentNames, isChangeContactNameColor, contactNameColor, repository)
return SpannableStringBuilder(resourceProvider.contactDisplayNamePrefix()).append(' ').append(recipients)
}

Expand Down Expand Up @@ -78,6 +80,7 @@ class MessageHelper(
address: Address,
isShowCorrespondentNames: Boolean,
isChangeContactNameColor: Boolean,
contactNameColor: Int,
contactRepository: ContactRepository?,
): CharSequence {
return toFriendly(
Expand All @@ -93,6 +96,7 @@ class MessageHelper(
addresses: Array<Address>?,
isShowCorrespondentNames: Boolean,
isChangeContactNameColor: Boolean,
contactNameColor: Int,
contactRepository: ContactRepository?,
): CharSequence? {
var repository = contactRepository
Expand All @@ -110,6 +114,7 @@ class MessageHelper(
addresses[i],
isShowCorrespondentNames,
isChangeContactNameColor,
contactNameColor,
repository,
),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ internal class NotificationContentCreator(
fromAddresses.first(),
messageListPreferences.isShowCorrespondentNames,
messageListPreferences.isChangeContactNameColor,
messageListPreferences.contactNameColor,
localContactRepository,
).toString()
}
Expand All @@ -98,6 +99,7 @@ internal class NotificationContentCreator(
.isShowCorrespondentNames,
isChangeContactNameColor = messageListPreferences
.isChangeContactNameColor,
contactNameColor = messageListPreferences.contactNameColor,
contactRepository = localContactRepository,
).toString()
return resourceProvider.recipientDisplayName(recipientDisplayName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
),
).isEqualTo("Tim Testor")
Expand All @@ -62,6 +63,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
),
).isEqualTo("test@testor.com")
Expand All @@ -77,6 +79,7 @@ class MessageHelperTest : RobolectricTest() {
addresses,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
).toString(),
).isEqualTo("Tim Testor,Foo Bar")
Expand All @@ -92,6 +95,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
),
).isEqualTo("Tim Testor")
Expand Down Expand Up @@ -136,6 +140,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
)
assertThat(friendly).isEqualTo("test@testor.com")
Expand All @@ -149,6 +154,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
)
assertThat(friendly).isEqualTo("username (@username)")
Expand All @@ -162,6 +168,7 @@ class MessageHelperTest : RobolectricTest() {
address,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
contactRepository,
)
assertThat(friendly).isEqualTo("@username")
Expand Down Expand Up @@ -192,6 +199,7 @@ class MessageHelperTest : RobolectricTest() {
addresses,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
)
assertThat(displayName.toString()).isEqualTo("To: Tim Testor,Foo Bar")
}
Expand All @@ -206,6 +214,7 @@ class MessageHelperTest : RobolectricTest() {
addresses,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
)
assertThat(displayName.toString()).isEqualTo("To: test@testor.com,foo@bar.com")
}
Expand All @@ -217,6 +226,7 @@ class MessageHelperTest : RobolectricTest() {
null,
messageListPreferencesManager.getConfig().isShowCorrespondentNames,
messageListPreferencesManager.getConfig().isChangeContactNameColor,
messageListPreferencesManager.getConfig().contactNameColor,
)
assertThat(displayName.toString()).isEqualTo(resourceProvider.contactUnknownRecipient())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ data class MessageListActivityConfig(
isColorizeMissingContactPictures = messageListPreferences.isColorizeMissingContactPictures,
isUseBackgroundAsUnreadIndicator = messageListPreferences.isUseBackgroundAsUnreadIndicator,
isShowComposeButton = settings.display.inboxSettings.isShowComposeButtonOnMessageList,
contactNameColor = K9.contactNameColor,
contactNameColor = settings.display.visualSettings.messageListSettings.contactNameColor,
messageViewTheme = settings.display.coreSettings.messageViewTheme,
messageListPreviewLines = messageListPreferences.previewLines,
messageListDensity = messageListPreferences.uiDensity,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.content.res.Resources
import android.text.Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import com.fsck.k9.K9
import com.fsck.k9.helper.ContactNameProvider
import com.fsck.k9.mail.Address
import com.fsck.k9.ui.R
Expand Down Expand Up @@ -71,7 +70,7 @@ internal fun createMessageDetailsParticipantFormatter(
contactNameColor = if (
messageListPreferences.isChangeContactNameColor
) {
K9.contactNameColor
messageListPreferences.contactNameColor
} else {
null
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class MessageListItemMapper(
addresses = toAddresses.toTypedArray(),
isShowCorrespondentNames = messageListSettings.isShowCorrespondentNames,
isChangeContactNameColor = messageListSettings.isChangeContactNameColor,
contactNameColor = messageListSettings.contactNameColor,
)
} else {
messageHelper.getSenderDisplayName(displayAddress)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import android.content.res.Resources
import android.text.Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import com.fsck.k9.K9
import com.fsck.k9.helper.ContactNameProvider
import com.fsck.k9.mail.Address
import com.fsck.k9.ui.R
Expand Down Expand Up @@ -87,7 +86,11 @@ internal fun createMessageViewRecipientFormatter(
contactNameProvider = contactNameProvider,
showCorrespondentNames = messageListSettings.isShowCorrespondentNames,
showContactNames = messageListSettings.isShowContactName,
contactNameColor = if (messageListSettings.isChangeContactNameColor) K9.contactNameColor else null,
contactNameColor = if (messageListSettings.isChangeContactNameColor) {
messageListSettings.contactNameColor
} else {
null
},
meText = resources.getString(R.string.message_view_me_text),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,17 @@ class GeneralSettingsDataStore(

override fun getInt(key: String?, defValue: Int): Int {
return when (key) {
"messagelist_contact_name_color" -> K9.contactNameColor
"messagelist_contact_name_color" ->
generalSettingsManager
.getConfig().display.visualSettings.messageListSettings.contactNameColor
"message_view_content_font_slider" -> K9.fontSizes.messageViewContentAsPercent
else -> defValue
}
}

override fun putInt(key: String?, value: Int) {
when (key) {
"messagelist_contact_name_color" -> K9.contactNameColor = value
"messagelist_contact_name_color" -> setContactNameColor(value)
"message_view_content_font_slider" -> K9.fontSizes.messageViewContentAsPercent = value
else -> return
}
Expand Down Expand Up @@ -794,6 +796,21 @@ class GeneralSettingsDataStore(
}
}

private fun setContactNameColor(contactNameColor: Int) {
skipSaveSettings = true
generalSettingsManager.update { settings ->
settings.copy(
display = settings.display.copy(
visualSettings = settings.display.visualSettings.copy(
messageListSettings = settings.display.visualSettings.messageListSettings.copy(
contactNameColor = contactNameColor,
),
),
),
)
}
}

private fun setTelemetryEnabled(enable: Boolean) {
K9.isTelemetryEnabled = enable
telemetryManager.setEnabled(enable)
Expand Down
Loading