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 @@ -2,4 +2,5 @@ package net.thunderbird.core.preference.privacy

data class PrivacySettings(
val isHideTimeZone: Boolean,
val isHideUserAgent: Boolean,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ interface PrivacySettingsManager {
val privacySettings: PrivacySettings

fun setIsHideTimeZone(isHideTimeZone: Boolean)
fun setIsHideUserAgent(isHideUserAgent: Boolean)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,9 @@ class DefaultPrivacySettingsManager(
val privacySettings = preferenceManager.getConfig()
preferenceManager.save(privacySettings.copy(isHideTimeZone = isHideTimeZone))
}

override fun setIsHideUserAgent(isHideUserAgent: Boolean) {
val privacySettings = preferenceManager.getConfig()
preferenceManager.save(privacySettings.copy(isHideUserAgent = isHideUserAgent))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,21 @@ class DefaultPrivacySettingsPreferenceManager(

private fun loadConfig(): PrivacySettings = PrivacySettings(
isHideTimeZone = storage.getBoolean(KEY_HIDE_TIME_ZONE, false),
isHideUserAgent = storage.getBoolean(KEY_HIDE_USER_AGENT, false),
)

private fun writeConfig(config: PrivacySettings) {
scope.launch(ioDispatcher) {
mutex.withLock {
storageEditor.putBoolean(KEY_HIDE_TIME_ZONE, config.isHideTimeZone)
storageEditor.putBoolean(KEY_HIDE_USER_AGENT, config.isHideUserAgent)
storageEditor.commit()
}
}
}

companion object {
private const val KEY_HIDE_TIME_ZONE = "hideTimeZone"
private const val KEY_HIDE_USER_AGENT = "hideUserAgent"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,10 @@ class BuildSwipeActionsTest {
quietTimeEnds = "7:00",
isQuietTime = false,
isQuietTimeEnabled = false,
privacy = PrivacySettings(isHideTimeZone = false),

privacy = PrivacySettings(
isHideTimeZone = false,
isHideUserAgent = false,
),
)

@Test
Expand Down Expand Up @@ -457,6 +459,10 @@ private class FakeGeneralSettingsManager(
override fun setIsHideTimeZone(isHideTimeZone: Boolean) = error(
"not implemented",
)

override fun setIsHideUserAgent(isHideUserAgent: Boolean) = error(
"not implemented",
)
}

private class FakeStorage(
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 @@ -197,9 +197,6 @@ object K9 : KoinComponent {

var isNotificationDuringQuietTimeEnabled = true

@JvmStatic
var isHideUserAgent = false

@get:Synchronized
@set:Synchronized
@JvmStatic
Expand Down Expand Up @@ -296,7 +293,6 @@ object K9 : KoinComponent {
storage.getEnum("messageViewPostDeleteAction", PostRemoveNavigation.ReturnToMessageList)
messageViewPostMarkAsUnreadNavigation =
storage.getEnum("messageViewPostMarkAsUnreadAction", PostMarkAsUnreadNavigation.ReturnToMessageList)
isHideUserAgent = storage.getBoolean("hideUserAgent", false)

isConfirmDelete = storage.getBoolean("confirmDelete", false)
isConfirmDiscardMessage = storage.getBoolean("confirmDiscardMessage", true)
Expand Down Expand Up @@ -369,7 +365,6 @@ object K9 : KoinComponent {
editor.putInt("registeredNameColor", contactNameColor)
editor.putEnum("messageViewPostDeleteAction", messageViewPostRemoveNavigation)
editor.putEnum("messageViewPostMarkAsUnreadAction", messageViewPostMarkAsUnreadNavigation)
editor.putBoolean("hideUserAgent", isHideUserAgent)

editor.putString("language", k9Language)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import com.fsck.k9.mail.internet.TextBody;
import com.fsck.k9.mailstore.TempFileBody;
import com.fsck.k9.message.quote.InsertableHtmlContent;
import net.thunderbird.core.preference.GeneralSettingsManager;
import org.apache.james.mime4j.util.MimeUtil;


Expand Down Expand Up @@ -72,11 +73,17 @@ public abstract class MessageBuilder {
private boolean isDraft;
private boolean isPgpInlineEnabled;

private GeneralSettingsManager settingsManager;

protected MessageBuilder(MessageIdGenerator messageIdGenerator,
BoundaryGenerator boundaryGenerator, CoreResourceProvider resourceProvider) {
BoundaryGenerator boundaryGenerator,
CoreResourceProvider resourceProvider,
GeneralSettingsManager settingsManager
) {
this.messageIdGenerator = messageIdGenerator;
this.boundaryGenerator = boundaryGenerator;
this.resourceProvider = resourceProvider;
this.settingsManager = settingsManager;
}

/**
Expand Down Expand Up @@ -110,7 +117,7 @@ private void buildHeader(MimeMessage message) throws MessagingException {
message.setHeader("Return-Receipt-To", from.toEncodedString());
}

if (!K9.isHideUserAgent()) {
if (!settingsManager.getSettings().getPrivacy().isHideUserAgent()) {
String encodedUserAgent = MimeHeaderEncoder.encode("User-Agent", resourceProvider.userAgent());
message.setHeader("User-Agent", encodedUserAgent);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import com.fsck.k9.mail.internet.MimeUtility;
import com.fsck.k9.mail.internet.TextBody;
import com.fsck.k9.mailstore.BinaryMemoryBody;
import net.thunderbird.core.preference.GeneralSettingsManager;
import org.apache.commons.io.IOUtils;
import org.apache.james.mime4j.util.MimeUtil;
import org.openintents.openpgp.OpenPgpError;
Expand Down Expand Up @@ -67,15 +68,16 @@ public static PgpMessageBuilder newInstance() {
AutocryptOperations autocryptOperations = AutocryptOperations.getInstance();
AutocryptOpenPgpApiInteractor autocryptOpenPgpApiInteractor = AutocryptOpenPgpApiInteractor.getInstance();
CoreResourceProvider resourceProvider = DI.get(CoreResourceProvider.class);
GeneralSettingsManager settingsManager = DI.get(GeneralSettingsManager.class);
return new PgpMessageBuilder(messageIdGenerator, boundaryGenerator, autocryptOperations,
autocryptOpenPgpApiInteractor, resourceProvider);
autocryptOpenPgpApiInteractor, resourceProvider, settingsManager);
}

@VisibleForTesting
PgpMessageBuilder(MessageIdGenerator messageIdGenerator, BoundaryGenerator boundaryGenerator,
AutocryptOperations autocryptOperations, AutocryptOpenPgpApiInteractor autocryptOpenPgpApiInteractor,
CoreResourceProvider resourceProvider) {
super(messageIdGenerator, boundaryGenerator, resourceProvider);
CoreResourceProvider resourceProvider, GeneralSettingsManager settingsManager) {
super(messageIdGenerator, boundaryGenerator, resourceProvider, settingsManager);

this.autocryptOperations = autocryptOperations;
this.autocryptOpenPgpApiInteractor = autocryptOpenPgpApiInteractor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.fsck.k9.mail.MessagingException;
import com.fsck.k9.mail.internet.MessageIdGenerator;
import com.fsck.k9.mail.internet.MimeMessage;
import net.thunderbird.core.preference.GeneralSettingsManager;


public class SimpleMessageBuilder extends MessageBuilder {
Expand All @@ -18,13 +19,18 @@ public static SimpleMessageBuilder newInstance() {
MessageIdGenerator messageIdGenerator = MessageIdGenerator.getInstance();
BoundaryGenerator boundaryGenerator = BoundaryGenerator.getInstance();
CoreResourceProvider resourceProvider = DI.get(CoreResourceProvider.class);
return new SimpleMessageBuilder(messageIdGenerator, boundaryGenerator, resourceProvider);
GeneralSettingsManager settingsManager = DI.get(GeneralSettingsManager.class);
return new SimpleMessageBuilder(messageIdGenerator, boundaryGenerator, resourceProvider, settingsManager);
}

@VisibleForTesting
SimpleMessageBuilder(MessageIdGenerator messageIdGenerator, BoundaryGenerator boundaryGenerator,
CoreResourceProvider resourceProvider) {
super(messageIdGenerator, boundaryGenerator, resourceProvider);
SimpleMessageBuilder(
MessageIdGenerator messageIdGenerator,
BoundaryGenerator boundaryGenerator,
CoreResourceProvider resourceProvider,
GeneralSettingsManager settingsManager
) {
super(messageIdGenerator, boundaryGenerator, resourceProvider, settingsManager);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,13 @@ internal class RealGeneralSettingsManager(
.persist()
}

override fun setIsHideUserAgent(isHideUserAgent: Boolean) {
privacySettingsManager.setIsHideUserAgent(isHideUserAgent)
getSettings()
.copy(privacy = privacySettings)
.persist()
}

private fun writeSettings(editor: StorageEditor, settings: GeneralSettings) {
editor.putBoolean("showRecentChanges", settings.showRecentChanges)
editor.putEnum("theme", settings.appTheme)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ class MessageHelperTest : RobolectricTest() {
isQuietTimeEnabled = false,
quietTimeEnds = "7:00",
quietTimeStarts = "7:00",
privacy = PrivacySettings(isHideTimeZone = false),
privacy = PrivacySettings(
isHideTimeZone = false,
isHideUserAgent = false,
),
),
)
}
Expand Down
Loading