cketti
152424b20c
Add a way to close all open IMAP connections
...
Use a "connection generation" value to mark all connections that have been created since the last closeAllConnections() call. Using that value we can recognize "old" connections that have not been in the connection pool at the time closeAllConnections() was called. We close them as soon as they are passed to releaseConnection().
2021-07-03 20:04:05 +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
ca13a32fec
Add ImapFolderPusher to listen for changes to an IMAP folder
2021-06-12 21:09:30 +02:00
cketti
db2b9c746f
Add ImapFolderIdler that uses IMAP's IDLE command to listen for changes
2021-06-10 21:40:36 +02:00
cketti
63d9872755
Introduce additional interfaces so RealImapFolder is decoupled from RealImapStore
2021-06-10 21:00:58 +02:00
cketti
94f630cf88
Introduce ImapStore interface
2021-06-10 21:00:58 +02:00
cketti
55c54555ff
Introduce ImapFolder interface
2021-06-09 16:15:12 +02:00
cketti
d0fa865e1f
Rename ImapFolder.kt to RealImapFolder.kt
2021-06-09 16:15:12 +02:00
cketti
ededa33ff2
Use enum class for ImapFolder.open() argument
2021-06-09 16:15:12 +02:00
cketti
3041a787d6
Introduce ImapConnection interface
...
The implementation is now called RealImapConnection.
2021-06-09 16:15:12 +02:00
cketti
d5c8c35fec
Remove ImapFolder caching
...
The cache was causing problems when a folder was accessed in two threads at the same time. There was also no invalidation mechanism that removed folders that had been removed from the server.
The easy fix is to get rid of this cache. There's no state in ImapFolder that survives closing the folder anyway.
2021-05-10 17:47:54 +02:00
cketti
d25d451201
Remove unused ImapFolder properties
2021-05-10 01:32:04 +02:00
cketti
5444d8be3a
Remove explicit dependency on Kotlin's standard library
2021-04-22 03:54:15 +02:00
cketti
632d8f3cb7
Upgrade Mockito-Kotlin to 3.1.0
2021-04-22 03:54:15 +02: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
7ae88bb61d
Treat FolderNotFoundException as permanent error
2020-12-23 01:23:24 +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
Tobias Preuss
f8e6e59fd6
Use io extension functions to make code more concise.
...
+ This change replaces a few usages of BufferedWriter, ByteArrayInputStream,
OutputStreamWriter with their equivalent Kotlin extension functions.
2020-08-24 19:22:29 +02:00
cketti
e42e0fa8b9
IMAP: Support negative responses to APPEND command
2020-06-19 18:55:04 +02:00
cketti
dc119f9068
Convert 'ImapFolder' to Kotlin
2020-06-18 14:44:26 +02:00
cketti
be7849eb5d
Rename 'ImapFolder' prior to conversion to Kotlin
2020-06-18 14:44:22 +02:00
cketti
84ffe7b3cd
Convert 'ImapFolderTest' to Kotlin
2020-06-18 14:44:20 +02:00
cketti
3d97acde5c
Rename 'ImapFolderTest' prior to conversion to Kotlin
2020-06-18 14:44:18 +02:00
cketti
789769ef39
Replace Account.getOutboxFolder() with Account.getOutboxFolderId()
2020-05-04 16:31:00 +02:00
cketti
82db38bd08
Create ImapStoreConfig
2020-05-01 05:30:34 +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
1858986fc4
Remove StoreConfig.isAllowRemoteSearch()
2020-05-01 04:03:02 +02:00
cketti
88bcea1552
Remove StoreConfig.getOutboxFolder()
2020-05-01 03:36:42 +02:00
cketti
fcfc7e6a22
Remove unused method StoreConfig.getInboxFolder()
2020-05-01 03:31:11 +02:00
cketti
94489bf55a
Change List<? extends Message> to List<Message> 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
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
5791253122
Add support for UIDVALIDITY to ImapFolder
2020-03-31 16:42:38 +02:00
cketti
76bc52beef
Make ImapFolder no longer extend Folder
2020-01-26 23:35:25 +01:00
cketti
9335080545
Get rid of common base class RemoteStore
...
This also allows removing some unnecessary methods in former subclasses.
2020-01-26 05:16:01 +01:00
cketti
2d470c73a0
Move FolderType and FolderClass out of Folder
2020-01-09 14:08:41 +01:00
cketti
13bc16caf8
Remove Message.getFolder()
2020-01-08 23:30:03 +01:00
cketti
aa13a46e3e
Don't pass Folder instance to PushReceiver
2019-12-18 01:05:28 +01:00
cketti
88d863c4c2
Add ktlint and Kotlin code style settings for Android Studio
2019-11-29 13:39:16 +01:00
cketti
d4def08551
Filter duplicate folder names in IMAP LIST response
2019-11-19 23:15:31 +01:00
cketti
57ff989edd
Add kotlinOptions.jvmTarget to Gradle projects using Kotlin
2019-11-17 14:45:05 +01:00
cketti
b241201e88
Fix check for invalid IMAP capability response
2019-11-15 14:37:47 +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
3ccabbf95f
Remove unused code
2019-03-09 19:31:54 +01:00
cketti
47deb4e5ba
Switch to androidx artifacts
2019-02-09 22:08:25 +01:00
cketti
eeb820b958
Remove Folder.delete(boolean)
2019-01-10 00:15:35 +01:00
cketti
e4d7482bef
Add test to make sure hasCapability() opens a connection if necessary
2019-01-09 19:06:47 +01:00
cketti
2a4f1c4314
Don't only list special folders when SPECIAL-USE capability is present
2019-01-07 02:02:46 +01:00
cketti
0422268efc
Make sure connection has been opened before checking capability
2019-01-06 23:32:17 +01:00
cketti
2861d93a7f
Check for LIST-EXTENDED capability before issuing LIST with SPECIAL-USE
2018-12-21 18:57:16 +01:00
Vincent Breitmoser
268ccfc0ff
Stop ImapFolderPusher on CertificateValidationException
...
This is a permanent error, but apparently not treated as one. I got
a certificate error notification every two seconds just now (because
LocalKeyStore is broken, see #3772 ). This PR simply stops the pusher on
a certificate error.
2018-12-01 14:15:42 +01:00
Vincent Breitmoser
7819045e1b
Extract deletion and saving of accounts into AccountManager
2018-11-29 18:19:07 +01:00
cketti
72a664458e
Remove StoreConfig.set*Folder()
2018-11-13 20:38:46 +01:00
cketti
cea3c41269
Add FolderType support to ImapStore + ImapBackend
2018-11-13 16:57:32 +01:00
cketti
9711b42412
Remove unused Folder.FolderType
2018-11-09 14:19:36 +01:00
BO41
c043eb0df4
Replace explicit type arguments with <>
2018-09-02 23:35:09 +02:00
cketti
ffd57c4e86
Merge pull request #3589 from k9mail/BO41_code_cleanup
...
[Cleanup] Improve accessibility, correctness and performance
2018-09-02 23:04:02 +02:00
BO41
f24cb76d9e
Improve accessibility, correctness and performance
2018-09-02 22:49:48 +02:00
BO41
dbea2cafa6
Simplify if statements
2018-09-02 22:27:28 +02:00
cketti
5c50f367e4
Change AuthenticationFailedException to expose alert text from server
2018-08-14 16:08:30 +02:00
cketti
87132562f8
Remove unused parameter
2018-07-22 18:31:41 +02:00
cketti
0af83029cc
Change ServerSettings#type to a String
2018-07-19 12:40:57 +02:00
cketti
f046313d98
Remove knowledge of store URI from :mail:protocols:imap module
2018-07-17 20:39:18 +02:00
cketti
4e22b1c509
Remove ImapStore.createUri/decodeUri
2018-07-17 20:39:18 +02:00
cketti
f6713ea55a
Clean up modules' dependencies
2018-07-08 16:06:19 +02:00
cketti
689d3d9308
Fix tests
2018-06-19 12:51:00 +02:00
cketti
782f3cc4c5
Move code to create Pusher to Backend implementations
2018-06-18 15:36:47 +02:00
cketti
455315f62e
Move code to upload messages to Backend implementations
2018-06-17 17:43:32 +02:00
cketti
80c76e6fb9
Move code to search/fetch messages to Backend implementations
2018-06-17 16:57:18 +02:00
cketti
297352858d
Use per account instances of RemoteMessageStore
2018-05-29 15:54:04 +02:00
cketti
47520d7ae1
Clean up
2018-05-24 13:57:36 +02:00
cketti
6961295de4
Create :mail:protocols:imap Gradle module
2018-05-24 13:57:35 +02:00