Loading app/core/src/main/java/com/fsck/k9/Account.java +1 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ import android.text.TextUtils; import com.fsck.k9.backend.api.SyncConfig.ExpungePolicy; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.store.StoreConfig; import com.fsck.k9.mailstore.StorageManager; import com.fsck.k9.mailstore.StorageManager.StorageProvider; import org.jetbrains.annotations.NotNull; Loading @@ -27,7 +26,7 @@ import org.jetbrains.annotations.Nullable; /** * Account stores all of the settings for a single account defined by the user. Each account is defined by a UUID. */ public class Account implements BaseAccount, StoreConfig { public class Account implements BaseAccount { /** * This local folder is used to store messages to be sent. */ Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +7 −3 Original line number Diff line number Diff line Loading @@ -476,7 +476,9 @@ public class MessagingController { Backend backend = getBackend(acct); List<String> messageServerIds = backend.search(folderServerId, query, requiredFlags, forbiddenFlags); boolean performFullTextSearch = acct.isRemoteSearchFullText(); List<String> messageServerIds = backend.search(folderServerId, query, requiredFlags, forbiddenFlags, performFullTextSearch); Timber.i("Remote search got %d results", messageServerIds.size()); Loading Loading @@ -560,7 +562,8 @@ public class MessagingController { LocalMessage localMessage = localFolder.getMessage(messageServerId); if (localMessage == null) { Message message = backend.fetchMessage(folderServerId, messageServerId, fetchProfile); int maxDownloadSize = account.getMaximumAutoDownloadMessageSize(); Message message = backend.fetchMessage(folderServerId, messageServerId, fetchProfile, maxDownloadSize); localFolder.appendMessages(Collections.singletonList(message)); } } Loading Loading @@ -1257,7 +1260,8 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.BODY); fp.add(FetchProfile.Item.FLAGS); Message remoteMessage = backend.fetchMessage(folder, uid, fp); int maxDownloadSize = account.getMaximumAutoDownloadMessageSize(); Message remoteMessage = backend.fetchMessage(folder, uid, fp, maxDownloadSize); localFolder.appendMessages(Collections.singletonList(remoteMessage)); } Loading app/core/src/test/java/com/fsck/k9/controller/MessagingControllerTest.java +10 −7 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public class MessagingControllerTest extends K9RobolectricTest { when(localNewMessage1.getUid()).thenReturn("newMessageUid1"); when(localNewMessage2.getUid()).thenReturn("newMessageUid2"); when(backend.search(eq(FOLDER_NAME), anyString(), nullable(Set.class), nullable(Set.class))) when(backend.search(eq(FOLDER_NAME), anyString(), nullable(Set.class), nullable(Set.class), eq(false))) .thenReturn(remoteMessages); when(localFolder.extractNewMessages(ArgumentMatchers.<String>anyList())).thenReturn(newRemoteMessages); when(localFolder.getMessage("newMessageUid1")).thenReturn(localNewMessage1); Loading @@ -269,7 +269,8 @@ public class MessagingControllerTest extends K9RobolectricTest { }).when(backend).fetchMessage( eq(FOLDER_NAME), eq("newMessageUid2"), any(FetchProfile.class)); any(FetchProfile.class), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); reqFlags = Collections.singleton(Flag.ANSWERED); forbiddenFlags = Collections.singleton(Flag.DELETED); Loading @@ -291,7 +292,7 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend).search(FOLDER_NAME, "query", reqFlags, forbiddenFlags); verify(backend).search(FOLDER_NAME, "query", reqFlags, forbiddenFlags, false); } @Test Loading Loading @@ -327,7 +328,8 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid2"), fetchProfileCaptor.capture()); verify(backend).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid2"), fetchProfileCaptor.capture(), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); } @Test Loading @@ -336,13 +338,14 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend, never()).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid1"), fetchProfileCaptor.capture()); verify(backend, never()).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid1"), fetchProfileCaptor.capture(), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); } @Test public void searchRemoteMessagesSynchronous_shouldNotifyOnFailure() throws Exception { setupRemoteSearch(); when(backend.search(anyString(), anyString(), nullable(Set.class), nullable(Set.class))) when(backend.search(anyString(), anyString(), nullable(Set.class), nullable(Set.class), eq(false))) .thenThrow(new MessagingException("Test")); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); Loading @@ -353,7 +356,7 @@ public class MessagingControllerTest extends K9RobolectricTest { @Test public void searchRemoteMessagesSynchronous_shouldNotifyOnFinish() throws Exception { setupRemoteSearch(); when(backend.search(anyString(), nullable(String.class), nullable(Set.class), nullable(Set.class))) when(backend.search(anyString(), nullable(String.class), nullable(Set.class), nullable(Set.class), eq(false))) .thenThrow(new MessagingException("Test")); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); Loading app/k9mail-jmap/src/main/java/com/fsck/k9/backends/ImapBackendFactory.kt +15 −1 Original line number Diff line number Diff line Loading @@ -8,11 +8,13 @@ import com.fsck.k9.backend.api.Backend import com.fsck.k9.backend.imap.ImapBackend import com.fsck.k9.backend.imap.ImapStoreUriCreator import com.fsck.k9.backend.imap.ImapStoreUriDecoder import com.fsck.k9.mail.NetworkType import com.fsck.k9.mail.ServerSettings import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.power.PowerManager import com.fsck.k9.mail.ssl.TrustedSocketFactory import com.fsck.k9.mail.store.imap.ImapStore import com.fsck.k9.mail.store.imap.ImapStoreConfig import com.fsck.k9.mail.transport.smtp.SmtpTransport import com.fsck.k9.mail.transport.smtp.SmtpTransportUriCreator import com.fsck.k9.mail.transport.smtp.SmtpTransportUriDecoder Loading @@ -37,15 +39,27 @@ class ImapBackendFactory( private fun createImapStore(account: Account): ImapStore { val oAuth2TokenProvider: OAuth2TokenProvider? = null val serverSettings = ImapStoreUriDecoder.decode(account.storeUri) val config = createImapStoreConfig(account) return ImapStore( serverSettings, account, config, trustedSocketFactory, context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager, oAuth2TokenProvider ) } private fun createImapStoreConfig(account: Account): ImapStoreConfig { return object : ImapStoreConfig { override val logLabel get() = account.description override fun isSubscribedFoldersOnly() = account.isSubscribedFoldersOnly override fun useCompression(type: NetworkType) = account.useCompression(type) } } private fun createSmtpTransport(account: Account): SmtpTransport { val serverSettings = decodeTransportUri(account.transportUri) val oauth2TokenProvider: OAuth2TokenProvider? = null Loading app/k9mail-jmap/src/main/java/com/fsck/k9/backends/Pop3BackendFactory.kt +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class Pop3BackendFactory( private fun createPop3Store(account: Account): Pop3Store { val serverSettings = decodeStoreUri(account.storeUri) return Pop3Store(serverSettings, account, trustedSocketFactory) return Pop3Store(serverSettings, trustedSocketFactory) } private fun createSmtpTransport(account: Account): SmtpTransport { Loading Loading
app/core/src/main/java/com/fsck/k9/Account.java +1 −2 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ import android.text.TextUtils; import com.fsck.k9.backend.api.SyncConfig.ExpungePolicy; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.NetworkType; import com.fsck.k9.mail.store.StoreConfig; import com.fsck.k9.mailstore.StorageManager; import com.fsck.k9.mailstore.StorageManager.StorageProvider; import org.jetbrains.annotations.NotNull; Loading @@ -27,7 +26,7 @@ import org.jetbrains.annotations.Nullable; /** * Account stores all of the settings for a single account defined by the user. Each account is defined by a UUID. */ public class Account implements BaseAccount, StoreConfig { public class Account implements BaseAccount { /** * This local folder is used to store messages to be sent. */ Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +7 −3 Original line number Diff line number Diff line Loading @@ -476,7 +476,9 @@ public class MessagingController { Backend backend = getBackend(acct); List<String> messageServerIds = backend.search(folderServerId, query, requiredFlags, forbiddenFlags); boolean performFullTextSearch = acct.isRemoteSearchFullText(); List<String> messageServerIds = backend.search(folderServerId, query, requiredFlags, forbiddenFlags, performFullTextSearch); Timber.i("Remote search got %d results", messageServerIds.size()); Loading Loading @@ -560,7 +562,8 @@ public class MessagingController { LocalMessage localMessage = localFolder.getMessage(messageServerId); if (localMessage == null) { Message message = backend.fetchMessage(folderServerId, messageServerId, fetchProfile); int maxDownloadSize = account.getMaximumAutoDownloadMessageSize(); Message message = backend.fetchMessage(folderServerId, messageServerId, fetchProfile, maxDownloadSize); localFolder.appendMessages(Collections.singletonList(message)); } } Loading Loading @@ -1257,7 +1260,8 @@ public class MessagingController { FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.BODY); fp.add(FetchProfile.Item.FLAGS); Message remoteMessage = backend.fetchMessage(folder, uid, fp); int maxDownloadSize = account.getMaximumAutoDownloadMessageSize(); Message remoteMessage = backend.fetchMessage(folder, uid, fp, maxDownloadSize); localFolder.appendMessages(Collections.singletonList(remoteMessage)); } Loading
app/core/src/test/java/com/fsck/k9/controller/MessagingControllerTest.java +10 −7 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public class MessagingControllerTest extends K9RobolectricTest { when(localNewMessage1.getUid()).thenReturn("newMessageUid1"); when(localNewMessage2.getUid()).thenReturn("newMessageUid2"); when(backend.search(eq(FOLDER_NAME), anyString(), nullable(Set.class), nullable(Set.class))) when(backend.search(eq(FOLDER_NAME), anyString(), nullable(Set.class), nullable(Set.class), eq(false))) .thenReturn(remoteMessages); when(localFolder.extractNewMessages(ArgumentMatchers.<String>anyList())).thenReturn(newRemoteMessages); when(localFolder.getMessage("newMessageUid1")).thenReturn(localNewMessage1); Loading @@ -269,7 +269,8 @@ public class MessagingControllerTest extends K9RobolectricTest { }).when(backend).fetchMessage( eq(FOLDER_NAME), eq("newMessageUid2"), any(FetchProfile.class)); any(FetchProfile.class), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); reqFlags = Collections.singleton(Flag.ANSWERED); forbiddenFlags = Collections.singleton(Flag.DELETED); Loading @@ -291,7 +292,7 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend).search(FOLDER_NAME, "query", reqFlags, forbiddenFlags); verify(backend).search(FOLDER_NAME, "query", reqFlags, forbiddenFlags, false); } @Test Loading Loading @@ -327,7 +328,8 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid2"), fetchProfileCaptor.capture()); verify(backend).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid2"), fetchProfileCaptor.capture(), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); } @Test Loading @@ -336,13 +338,14 @@ public class MessagingControllerTest extends K9RobolectricTest { controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend, never()).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid1"), fetchProfileCaptor.capture()); verify(backend, never()).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid1"), fetchProfileCaptor.capture(), eq(MAXIMUM_SMALL_MESSAGE_SIZE)); } @Test public void searchRemoteMessagesSynchronous_shouldNotifyOnFailure() throws Exception { setupRemoteSearch(); when(backend.search(anyString(), anyString(), nullable(Set.class), nullable(Set.class))) when(backend.search(anyString(), anyString(), nullable(Set.class), nullable(Set.class), eq(false))) .thenThrow(new MessagingException("Test")); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); Loading @@ -353,7 +356,7 @@ public class MessagingControllerTest extends K9RobolectricTest { @Test public void searchRemoteMessagesSynchronous_shouldNotifyOnFinish() throws Exception { setupRemoteSearch(); when(backend.search(anyString(), nullable(String.class), nullable(Set.class), nullable(Set.class))) when(backend.search(anyString(), nullable(String.class), nullable(Set.class), nullable(Set.class), eq(false))) .thenThrow(new MessagingException("Test")); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); Loading
app/k9mail-jmap/src/main/java/com/fsck/k9/backends/ImapBackendFactory.kt +15 −1 Original line number Diff line number Diff line Loading @@ -8,11 +8,13 @@ import com.fsck.k9.backend.api.Backend import com.fsck.k9.backend.imap.ImapBackend import com.fsck.k9.backend.imap.ImapStoreUriCreator import com.fsck.k9.backend.imap.ImapStoreUriDecoder import com.fsck.k9.mail.NetworkType import com.fsck.k9.mail.ServerSettings import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.power.PowerManager import com.fsck.k9.mail.ssl.TrustedSocketFactory import com.fsck.k9.mail.store.imap.ImapStore import com.fsck.k9.mail.store.imap.ImapStoreConfig import com.fsck.k9.mail.transport.smtp.SmtpTransport import com.fsck.k9.mail.transport.smtp.SmtpTransportUriCreator import com.fsck.k9.mail.transport.smtp.SmtpTransportUriDecoder Loading @@ -37,15 +39,27 @@ class ImapBackendFactory( private fun createImapStore(account: Account): ImapStore { val oAuth2TokenProvider: OAuth2TokenProvider? = null val serverSettings = ImapStoreUriDecoder.decode(account.storeUri) val config = createImapStoreConfig(account) return ImapStore( serverSettings, account, config, trustedSocketFactory, context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager, oAuth2TokenProvider ) } private fun createImapStoreConfig(account: Account): ImapStoreConfig { return object : ImapStoreConfig { override val logLabel get() = account.description override fun isSubscribedFoldersOnly() = account.isSubscribedFoldersOnly override fun useCompression(type: NetworkType) = account.useCompression(type) } } private fun createSmtpTransport(account: Account): SmtpTransport { val serverSettings = decodeTransportUri(account.transportUri) val oauth2TokenProvider: OAuth2TokenProvider? = null Loading
app/k9mail-jmap/src/main/java/com/fsck/k9/backends/Pop3BackendFactory.kt +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ class Pop3BackendFactory( private fun createPop3Store(account: Account): Pop3Store { val serverSettings = decodeStoreUri(account.storeUri) return Pop3Store(serverSettings, account, trustedSocketFactory) return Pop3Store(serverSettings, trustedSocketFactory) } private fun createSmtpTransport(account: Account): SmtpTransport { Loading