diff --git a/k9mail-library/src/main/java/com/fsck/k9/mail/NetworkType.java b/k9mail-library/src/main/java/com/fsck/k9/mail/NetworkType.java new file mode 100644 index 000000000..769858213 --- /dev/null +++ b/k9mail-library/src/main/java/com/fsck/k9/mail/NetworkType.java @@ -0,0 +1,25 @@ +package com.fsck.k9.mail; + +import android.net.ConnectivityManager; + +/** + * Enum for some of + * https://developer.android.com/reference/android/net/ConnectivityManager.html#TYPE_MOBILE etc. + */ +public enum NetworkType { + + WIFI, + MOBILE, + OTHER; + + public static NetworkType fromConnectivityManagerType(int type){ + switch (type) { + case ConnectivityManager.TYPE_MOBILE: + return MOBILE; + case ConnectivityManager.TYPE_WIFI: + return WIFI; + default: + return OTHER; + } + } +} diff --git a/k9mail-library/src/main/java/com/fsck/k9/mail/store/StoreConfig.java b/k9mail-library/src/main/java/com/fsck/k9/mail/store/StoreConfig.java index 4c0a68d80..81256d5c9 100644 --- a/k9mail-library/src/main/java/com/fsck/k9/mail/store/StoreConfig.java +++ b/k9mail-library/src/main/java/com/fsck/k9/mail/store/StoreConfig.java @@ -1,12 +1,14 @@ package com.fsck.k9.mail.store; +import com.fsck.k9.mail.NetworkType; + public interface StoreConfig { String getStoreUri(); String getTransportUri(); boolean subscribedFoldersOnly(); - boolean useCompression(int type); + boolean useCompression(NetworkType type); String getInboxFolderName(); String getOutboxFolderName(); diff --git a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapConnection.java b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapConnection.java index 9278f8708..a81408755 100644 --- a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapConnection.java +++ b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapConnection.java @@ -11,6 +11,7 @@ import com.fsck.k9.mail.CertificateValidationException; import com.fsck.k9.mail.ConnectionSecurity; import com.fsck.k9.mail.K9MailLib; import com.fsck.k9.mail.MessagingException; +import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.filter.Base64; import com.fsck.k9.mail.filter.PeekableInputStream; import com.fsck.k9.mail.ssl.TrustedSocketFactory; @@ -471,7 +472,8 @@ class ImapConnection { if (K9MailLib.isDebug()) { Log.d(LOG_TAG, "On network type " + type); } - useCompression = mSettings.useCompression(type); + useCompression = mSettings.useCompression( + NetworkType.fromConnectivityManagerType(type)); } if (K9MailLib.isDebug()) { Log.d(LOG_TAG, "useCompression " + useCompression); diff --git a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapSettings.java b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapSettings.java index 0475a823f..f822ccf4b 100644 --- a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapSettings.java +++ b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapSettings.java @@ -2,6 +2,7 @@ package com.fsck.k9.mail.store.imap; import com.fsck.k9.mail.AuthType; import com.fsck.k9.mail.ConnectionSecurity; +import com.fsck.k9.mail.NetworkType; /** * Settings source for IMAP. Implemented in order to remove coupling between {@link ImapStore} and {@link ImapConnection}. @@ -21,7 +22,7 @@ interface ImapSettings { String getClientCertificateAlias(); - boolean useCompression(int type); + boolean useCompression(NetworkType type); String getPathPrefix(); diff --git a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapStore.java b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapStore.java index 8f159f8f6..c42139367 100644 --- a/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapStore.java +++ b/k9mail-library/src/main/java/com/fsck/k9/mail/store/imap/ImapStore.java @@ -37,6 +37,7 @@ import android.os.PowerManager; import android.text.TextUtils; import android.util.Log; +import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.internet.MimeMessageHelper; import com.fsck.k9.mail.power.TracingPowerManager; import com.fsck.k9.mail.power.TracingPowerManager.TracingWakeLock; @@ -2933,7 +2934,7 @@ public class ImapStore extends RemoteStore { } @Override - public boolean useCompression(final int type) { + public boolean useCompression(final NetworkType type) { return mStoreConfig.useCompression(type); } diff --git a/k9mail/src/androidTest/java/com/fsck/k9/mail/store/imap/ImapConnectionTest.java b/k9mail/src/androidTest/java/com/fsck/k9/mail/store/imap/ImapConnectionTest.java index 6465cb7cb..09f2ca95f 100644 --- a/k9mail/src/androidTest/java/com/fsck/k9/mail/store/imap/ImapConnectionTest.java +++ b/k9mail/src/androidTest/java/com/fsck/k9/mail/store/imap/ImapConnectionTest.java @@ -13,6 +13,8 @@ import com.fsck.k9.mail.AuthType; import com.fsck.k9.mail.AuthenticationFailedException; import com.fsck.k9.mail.ConnectionSecurity; import com.fsck.k9.mail.MessagingException; +import com.fsck.k9.mail.NetworkType; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -167,7 +169,7 @@ public class ImapConnectionTest { } @Override - public boolean useCompression(int type) { + public boolean useCompression(NetworkType type) { return false; } diff --git a/k9mail/src/main/java/com/fsck/k9/Account.java b/k9mail/src/main/java/com/fsck/k9/Account.java index 62232d1b5..3ea0d1fcd 100644 --- a/k9mail/src/main/java/com/fsck/k9/Account.java +++ b/k9mail/src/main/java/com/fsck/k9/Account.java @@ -27,6 +27,7 @@ import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection; import com.fsck.k9.helper.Utility; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.MessagingException; +import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.Store; import com.fsck.k9.mail.Folder.FolderClass; import com.fsck.k9.mail.filter.Base64; @@ -96,12 +97,6 @@ public class Account implements BaseAccount, StoreConfig { } } - public enum NetworkType { - WIFI, - MOBILE, - OTHER - } - public static final MessageFormat DEFAULT_MESSAGE_FORMAT = MessageFormat.HTML; public static final boolean DEFAULT_MESSAGE_FORMAT_AUTO = false; public static final boolean DEFAULT_MESSAGE_READ_RECEIPT = false; @@ -1303,19 +1298,6 @@ public class Account implements BaseAccount, StoreConfig { return useCompression; } - public boolean useCompression(int type) { - NetworkType networkType = NetworkType.OTHER; - switch (type) { - case ConnectivityManager.TYPE_MOBILE: - networkType = NetworkType.MOBILE; - break; - case ConnectivityManager.TYPE_WIFI: - networkType = NetworkType.WIFI; - break; - } - return useCompression(networkType); - } - @Override public boolean equals(Object o) { if (o instanceof Account) { diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java index 9b7933bd5..dfca997fb 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java @@ -17,7 +17,7 @@ import android.widget.CompoundButton.OnCheckedChangeListener; import com.fsck.k9.*; import com.fsck.k9.Account.FolderMode; -import com.fsck.k9.Account.NetworkType; +import com.fsck.k9.mail.NetworkType; import com.fsck.k9.activity.K9Activity; import com.fsck.k9.activity.setup.AccountSetupCheckSettings.CheckDirection; import com.fsck.k9.helper.Utility;