Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 26b78233 authored by cketti's avatar cketti Committed by GitHub
Browse files

Merge pull request #4716 from k9mail/remove_StoreConfig

Remove StoreConfig
parents 5abb0dc7 767f7e0e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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.
     */
+7 −3
Original line number Diff line number Diff line
@@ -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());

@@ -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));
            }
        }
@@ -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));
                }

+10 −7
Original line number Diff line number Diff line
@@ -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);
@@ -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);

@@ -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
@@ -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
@@ -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);
@@ -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);
+15 −1
Original line number Diff line number Diff line
@@ -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
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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