Commit graph

181 commits

Author SHA1 Message Date
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
f0bb82e1a9 Remove unused code related to "latest old message seen time" 2021-03-31 18:09:25 +02:00
cketti
4b4a0373a6 Change the way Pop3Sync stores "latest old message seen time" 2021-03-31 17:59:12 +02:00
cketti
d3b0e1a0c6 Remove unused code from WebDavSync 2021-03-31 17:47:57 +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
97051f3f7c Make WebDavStore use ServerSettings directly
Instead of using WebDavStoreSettings as a ServerSettings subclass make it a helper to extract WebDav-specific settings.
2021-01-31 18:50:14 +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
83956aa502 Update OkHttp to 4.8.0 2020-07-15 17:51:31 +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
767f7e0efe Remove StoreConfig 2020-05-01 05:42:50 +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
7ac210956a Change List<? extends Message> to List<WebDavMessage> where appropriate 2020-04-27 18:37:10 +02:00
cketti
db7760a9e2 Change List<? extends Message> to List<Pop3Message> where appropriate 2020-04-27 18:37:10 +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
d70564e423 Remove unused code 2020-04-18 19:51:48 +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
2a8d094343 JMAP: Add support for uploading messages 2020-02-25 19:00:18 +01:00
cketti
3bde957b0c JMAP: Add support for copying/moving emails 2020-02-22 19:36:00 +01:00
cketti
72335a2c2d
Merge pull request #4548 from k9mail/jmap_delete
JMAP: Add support for deleting messages
2020-02-19 10:34:31 +01:00
cketti
d44bdfdb73 JMAP: Don't delete message only to download it again right away 2020-02-18 17:43:15 +01:00
cketti
a2f1487ba5 JMAP: Add support for deleting messages 2020-02-18 16:47:33 +01:00
cketti
94ce631f7d
Merge pull request #4545 from k9mail/jmap_set_flag
JMAP: Add support for setting flags/keywords
2020-02-18 16:46:40 +01:00
cketti
5b4376e90f JMAP: Implement Backend.markAllAsRead() 2020-02-18 03:06:00 +01:00
cketti
1deed00f45 JMAP: Implement Backend.setFlag() 2020-02-18 03:04:11 +01:00
cketti
d9abc13a1e Don't limit Mailbox/get call to changed properties
BackendStorage currently doesn't support partial updates.
2020-02-18 01:04:01 +01:00
cketti
6a0a5c8f88 Update jmap-client library to version 0.3.0 2020-02-17 18:44:52 +01:00
cketti
5693c898f6 Add JMAP message flags/keywords sync 2020-02-17 01:30:12 +01:00
cketti
b78c2e295e Add JMAP message sync (part 2) - delta sync 2020-02-14 00:16:34 +01:00
cketti
ab7feffa68 Add JMAP message sync (part 1)
This only supports doing a full sync and downloading complete messages.
2020-02-12 19:12:11 +01: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
77ff9ea9ba Remove unused method BackendFolder.getUnreadMessageCount() 2020-02-04 18:17:22 +01:00
cketti
35da218170 Make WebDavFolder no longer extend Folder
This highlighted that a bunch of code in backend-webdav was unused.
2020-01-28 16:22:09 +01:00
cketti
579027e66c Make Pop3Folder no longer extend Folder
This highlighted that a bunch of code in backend-pop3 was unused.
2020-01-26 23:35:25 +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
cketti
aeef338efd Remove unread count from MessagingListener.folderStatusChanged() 2020-01-22 17:02:16 +01:00
cketti
320cc8b40b Add UI to add a JMAP account to the app 2020-01-18 21:14:57 +01:00
cketti
0b21a7521d Add JMAP folder sync 2020-01-15 16:14:16 +01:00
cketti
65201633e8 Add JMAP backend module 2020-01-15 16:14:16 +01:00
cketti
2d470c73a0 Move FolderType and FolderClass out of Folder 2020-01-09 14:08:41 +01:00
ByteHamster
7b9f44ca1e Added function to move to trash and read to backend 2020-01-08 18:48:28 +01:00
cketti
5494e106c8 Use ImapMessage/ImapFolder instead of Message/Folder in ImapSync 2019-12-18 01:53:12 +01:00
cketti
84327e085d Don't pass Folder instance to Backend 2019-12-18 01:21:12 +01:00
cketti
b8b6b0497d Remove age checks when downloading messages
We already filter by age when deciding which messages to download.
2019-12-17 02:59:14 +01:00
cketti
876cabad70 Open connection before attempting to download message via POP3 2019-12-12 01:13:13 +01:00
cketti
b04ea348fc Remove now unused method parameters 2019-12-01 15:06:28 +01:00
cketti
b1faba725f Remove LocalFolder.purgeToVisibleLimit()
The method was only called at the end of a mailbox sync. But during sync
another mechanism already destroyed messages outside of the sync window.
2019-12-01 15:06:27 +01:00
cketti
93d0e14b68 Fix code style issues found by ktlint 2019-11-29 13:44:00 +01:00
cketti
88d863c4c2 Add ktlint and Kotlin code style settings for Android Studio 2019-11-29 13:39:16 +01:00
cketti
57ff989edd Add kotlinOptions.jvmTarget to Gradle projects using Kotlin 2019-11-17 14:45:05 +01:00
cketti
e3973096d3 Remove Checkstyle 2019-11-13 16:51:52 +01:00
cketti
56a37d9e14 Remove FindBugs
It's not maintained anymore and we're not currently using it.
2019-11-13 16:41:51 +01:00
cketti
105622a999 Use variable for 'sourceCompatibility' and 'targetCompatibility' values 2019-11-13 16:26:29 +01:00
cketti
91e5f629fd Add deleteMessages() method to Backend interface 2019-03-10 23:56:42 +01:00
cketti
932f5f2ddc Add 'isDeleteMoveToTrash' flag to Backend 2019-01-22 18:52:06 +01:00
cketti
aecdbf5a6a Add FolderType support to WebDavStore + WebDavBackend 2018-11-13 16:57:32 +01:00
cketti
cea3c41269 Add FolderType support to ImapStore + ImapBackend 2018-11-13 16:57:32 +01:00
cketti
4847c0fa31 Add FolderType support to (K9)BackendStorage 2018-11-13 16:57:32 +01:00
cketti
0351dc8694 Hide 'upload sent messages' setting when Backend doesn't support uploads 2018-09-04 18:05:03 +02:00
cketti
56882dc6c3 Fix unresolved references in Javadoc comments 2018-09-03 00:13:58 +02:00
BO41
c043eb0df4 Replace explicit type arguments with <> 2018-09-02 23:35:09 +02:00
BO41
f24cb76d9e Improve accessibility, correctness and performance 2018-09-02 22:49:48 +02:00
cketti
9514086513 Open remote folder before fetching message 2018-08-20 18:18:44 +02:00
cketti
de49c9d6c2 Move folder list sync logic into Backend implementations 2018-07-22 18:34:16 +02:00
cketti
87132562f8 Remove unused parameter 2018-07-22 18:31:41 +02:00
cketti
b35074315c
Merge pull request #3519 from k9mail/add_folder_extra_values
Allow backend code to store additional per-account and per-folder data
2018-07-22 18:21:51 +02:00