Commit graph

96 commits

Author SHA1 Message Date
cketti
e9c45b4aa8 Disable Push if not supported by the server 2021-08-02 18:49:06 +02:00
cketti
95ecac8893 Close all Push connections when Android connects to another network
When the default network changes Android usually kills connections established over the old network after a little while. K-9 Mail treats this as a regular network error and sleeps for 5 minutes before trying to re-establish the Push connection(s). Closing old connections and opening new ones when a network change is detected avoids this error.
2021-07-04 21:27:38 +02:00
cketti
ebbe02c057 Add ImapPushConfigProvider 2021-06-23 15:34:31 +02:00
cketti
aa9f6eaefa Add IdleRefreshTimeoutProvider 2021-06-23 14:02:07 +02:00
cketti
8fea80f14c Add PushController implementation 2021-06-22 15:30:23 +02:00
cketti
a74c206a0c Add implementation for BackendIdleRefreshManager 2021-06-16 15:04:01 +02:00
cketti
c8808ae447 Add ImapBackendPusher that manages multiple ImapFolderPusher instances 2021-06-13 00:51:23 +02:00
cketti
d62aa030c9 Add BackendPusher interface 2021-06-13 00:36:34 +02:00
cketti
ca13a32fec Add ImapFolderPusher to listen for changes to an IMAP folder 2021-06-12 21:09:30 +02:00
cketti
94f630cf88 Introduce ImapStore interface 2021-06-10 21:00:58 +02:00
cketti
ededa33ff2 Use enum class for ImapFolder.open() argument 2021-06-09 16:15:12 +02:00
cketti
769d658e5a Correctly persist message download state
Add the flag X_DOWNLOADED_FULL when the message has been downloaded completely, the flag X_DOWNLOADED_PARTIAL when only the text of a message has been downloaded, and set no additional flag when only the envelope and structure of the message has been downloaded. The latter happens when we fetch remote search results.
2021-05-10 00:47:27 +02:00
cketti
5444d8be3a Remove explicit dependency on Kotlin's standard library 2021-04-22 03:54:15 +02:00
cketti
428ae60a58 Split Backend.fetchMessage() into two methods
The two new methods now also save the downloaded message data instead of returning a Message instance.
MessageStore.saveRemoteMessage() will now replace a message if it already exists.
2021-04-17 00:04:58 +02:00
cketti
1f2404557b Migrate storeUri/transportUri to new server settings format 2021-02-01 17:30:21 +01:00
cketti
08d6d9bebc Delete remaining store/transport URI functionality 2021-02-01 17:30:21 +01:00
cketti
69ed32ff8a Convert 'ServerSettings' to Kotlin 2021-02-01 10:39:19 +01:00
cketti
42e180d6fa Make ImapStore use ServerSettings directly
Instead of using ImapStoreSettings as a ServerSettings subclass make it a helper to extract IMAP-specific settings.
2021-01-31 18:50:14 +01:00
cketti
1873593dc5 Format Kotlin code 2020-10-16 16:41:19 +02:00
cketti
ed8009d9fa Update ktlint-gradle to 9.4.1, ktlint to 0.39.0
Apply ktlint-gradle plugin to all Gradle subprojects.
2020-10-16 14:27:23 +02:00
cketti
9234b16c13 Convert 'ImapSync' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
4dbb1ffaa0 Rename 'ImapSync' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
f640d32a98 Convert 'UidReverseComparator' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
86e51650c3 Rename 'UidReverseComparator' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
996328e7cf Convert 'CommandSetFlag' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
43398b5f5e Rename 'CommandSetFlag' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
52156fc5c8 Convert 'CommandMoveOrCopyMessages' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
c90b440a69 Rename 'CommandMoveOrCopyMessages' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
03a1854068 Convert 'CommandMarkAllAsRead' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
df2279e3e7 Rename 'CommandMarkAllAsRead' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
621f3ab23b Convert 'CommandExpunge' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
9331667733 Rename 'CommandExpunge' prior to conversion to Kotlin 2020-08-27 22:35:36 +02:00
cketti
dec364f062 Convert 'ImapBackend' to Kotlin 2020-08-27 22:35:36 +02:00
cketti
66347ff77e Rename 'ImapBackend' prior to conversion to Kotlin 2020-08-26 14:29:28 +02:00
cketti
976590e190
Merge pull request #4840 from k9mail/convert_to_kotlin
Convert ImapFolder(Test) to Kotlin
2020-06-19 17:35:36 +02:00
cketti
dc119f9068 Convert 'ImapFolder' to Kotlin 2020-06-18 14:44:26 +02:00
cketti
14bf32cea4 Rename Backend.supportsSeenFlag to supportsFlags 2020-06-17 14:45:41 +02:00
cketti
4914ac589f Fix IMAP folder refresh
We were using the old format server ID (UTF-7 decoded, with prefix removed)
to create and update folders. But we used the proper server ID to figure out
which folders to remove locally. This could lead to too many folders being
removed. They'd be added back the next time the folder list was refreshed
and then be removed again the next refresh after that.
2020-05-12 12:05:14 +02:00
cketti
a6f75dc587 Remove StoreConfig.getMaximumAutoDownloadMessageSize() 2020-05-01 05:15:51 +02:00
cketti
d7d1fe0c0e Remove StoreConfig.isRemoteSearchFullText() 2020-05-01 04:18:16 +02:00
cketti
d3bdebccf3 Change List<? extends Message> to List<ImapMessage> where appropriate 2020-04-27 18:37:10 +02:00
cketti
e86f294a0f Change the BackendStorage API to add/update/remove folders
This way the code to update special folders only runs once, and not on
every change.
2020-04-27 06:44:26 +02:00
cketti
8abac750af Make ImapStore.getFolders() return the proper server ID 2020-04-24 22:00:10 +02:00
cketti
37eea88f82 Refactor ImapStore.getPersonalNamespaces() 2020-04-24 20:33:22 +02:00
cketti
2a78418911 Remove old Push code 2020-04-05 20:08:29 +02:00
cketti
0554dfcd04 Clear local message cache when UIDVALIDITY value changes 2020-03-31 22:20:46 +02:00
cketti
611a57fb0e Remove now unused folder name from SyncListener callbacks 2020-02-05 01:27:06 +01:00
cketti
2a760ef4bb Remove local folder handling from Backend implementations 2020-02-04 19:58:24 +01:00
cketti
76bc52beef Make ImapFolder no longer extend Folder 2020-01-26 23:35:25 +01:00
cketti
b99d445736 Remove unused message counts from MessagingListener.synchronizeMailboxFinished() 2020-01-22 17:16:06 +01:00