Commit graph

195 commits

Author SHA1 Message Date
cketti
8436b07153 IMAP: Add support for the \NonExistent LIST response attribute 2024-03-28 15:19:16 +01:00
cketti
1414dde598
Merge pull request #7729 from thunderbird/missing_alarm_permission
Notify user if permission to schedule exact alarms is missing
2024-03-27 13:29:05 +01:00
cketti
423f7553a7 Remove now unnecessary code to check if exact alarms can be scheduled 2024-03-27 12:54:44 +01:00
cketti
e59839c21e Change EXPUNGE behavior after moving a message 2024-03-15 17:00:12 +01:00
cketti
3439662446 Add ImapStoreConfig.isExpungeImmediately() 2024-03-15 16:37:56 +01:00
cketti
32f847622c Don't wrap IOException in RealImapStore.checkSettings()
Also adds logging for exceptions being thrown while checking server settings.
2024-02-12 13:57:16 +01:00
cketti
4486988c9d Remove unnecessary test server operation 2024-01-26 12:57:49 +01:00
Wolf-Martell Montwé
69010f478f
Rename isSameAs/isNotSameAs to isSameInstanceAs/isNotSameInstanceAs 2024-01-03 15:02:15 +01:00
cketti
928b18422e Add more errors to ServerSettingsValidationResult 2023-12-08 15:18:29 +01:00
cketti
07c97cd039 Simplify CertificateValidationException to only be used when there's a certificate chain 2023-12-06 15:53:10 +01:00
cketti
891294f926
Merge pull request #7403 from thunderbird/move_copyuid_response
IMAP: Add support for untagged COPYUID responses
2023-12-04 14:28:11 +01:00
cketti
462736e0d6 IMAP: Add support for untagged COPYUID responses 2023-12-02 18:31:53 +01:00
cketti
4e344b13b9 Convert UidCopyResponseTest to Kotlin 2023-12-02 00:51:25 +01:00
cketti
68c1180e77 Rename .java to .kt 2023-12-02 00:51:25 +01:00
cketti
fdbfb06d07 Convert UidCopyResponse to Kotlin 2023-12-02 00:51:22 +01:00
cketti
2516846945 Rename .java to .kt 2023-12-02 00:15:48 +01:00
cketti
2160a759e4 Don't start ImapBackendPusher when the app doesn't have permission to schedule exact alarms 2023-12-01 15:23:14 +01:00
cketti
6500e16fd9 Remove unused import 2023-11-28 14:02:35 +01:00
cketti
68eec72c7b
Merge pull request #7381 from thunderbird/add_MissingCapabilityException
Add `MissingCapabilityException`
2023-11-28 12:21:09 +01:00
cketti
f79db8e28d Add MissingCapabilityException 2023-11-27 18:49:52 +01:00
cketti
122eac0b57 Use AuthenticationFailedException when appropriate 2023-11-27 15:29:37 +01:00
cketti
b4ef2fb15b IMAP: Use MOVE command if available 2023-11-20 17:39:46 +01:00
cketti
8b66b04692 IMAP move operation should ignore expunge policy
Because the original IMAP specification doesn't include a move operation, we implement it as copy, followed by deleting the source message. Deleting messages in IMAP is a two stage process. First a message is marked as deleted, then the EXPUNGE command is issued. However, the EXPUNGE command will remove all messages in a folder marked as deleted. For a move operation, we don't want to remove other messages, and therefore won't issue the EXPUNGE command. However, if the server supports the UIDPLUS extension, we can specify which messages exactly should be expunged. So if that extension is available, we will use the UID EXPUNGE command on the source message of a move operation.

Since the EXPUNGE command removes all messages marked as deleted, K-9 Mail has a setting that controls when the command is issued (when deleting a message, when polling, manually via a menu option). Previously this setting was also used for move operations. However, that probably should have never been the case.
2023-11-18 18:09:08 +01:00
cketti
1de41d9177 Add FolderFetcher 2023-11-10 22:24:15 +01:00
Wolf-Martell Montwé
7565bb8e66
Fix max-line-length issues manually as auto format does fail 2023-11-07 10:40:08 +01:00
cketti
77ff16bcf7 IMAP: Add app version to ID command 2023-11-02 17:56:55 -04:00
Wolf-Martell Montwé
e9535ecdaa
Bump Spotless 6.14.0 -> 6.21.0 and KtLint 0.48.2 -> 0.50.0, and reformat/fix code 2023-09-06 18:13:23 +02:00
cketti
8e7a5f3541 Add an AuthStateStorage parameter to ServerSettingsValidator
Typically we use `Account` to hold the (OAuth 2.0) authorization state. But during account setup we don't have an `Account` instance yet. So we allow a `ServerSettingsValidator` caller to pass an `AuthStateStorage` that we then use with `OAuth2TokenProviderFactory` to create an `OAuth2TokenProvider` instance. When setting up an account we can use an `AuthStateStorage` implementation that will simply hold the state in memory.
2023-07-29 23:36:02 +02:00
cketti
2706107519 Add ImapServerSettingsValidator 2023-06-23 17:20:06 +02:00
cketti
1e42e92b1b Include more information in IMAP-specific ServerSettings
The additional properties are necessary to validate server settings.
2023-06-23 17:13:22 +02:00
cketti
8143ae53ec Add responseText property to NegativeImapResponseException 2023-06-23 14:11:30 +02:00
cketti
3abe666bd3 Convert NegativeImapResponseException to Kotlin 2023-06-23 14:11:30 +02:00
cketti
289eadd575 Rename .java to .kt 2023-06-23 14:11:30 +02:00
cketti
ff31f79dc2 Fetch List-Post header when downloading partial message 2023-06-20 15:04:43 +02:00
cketti
ef498c60e4 Update assertk to version 0.26 2023-05-16 17:20:25 +02:00
cketti
5498567bf2 Switch assertions to assertk 2023-05-14 13:00:28 +02:00
cketti
07d2a42a4d Add tests for sending the IMAP ID command 2023-04-26 14:58:44 +02:00
Self Not Found
f2ce1fe344 IMAP: Add support for sending ID command with app name 2023-04-26 14:58:44 +02:00
Wolf Montwé
71079908aa
Bump Gradle 8.0.2 -> 8.1.1 and remove suppress dsl scope violation 2023-04-25 17:21:58 +02:00
cketti
98b59f1709 Fix bugs in ImapResponseParser 2023-04-19 19:36:31 +02:00
cketti
7ba404dd21 Clean up ImapResponseParserTest 2023-04-11 14:37:23 +02:00
cketti
5d030c0ccd Convert ImapResponseParserTest to Kotlin 2023-04-05 21:00:55 +02:00
cketti
aeedd17e1c Rename .java to .kt 2023-04-05 21:00:55 +02:00
Wolf Montwé
cbf1a8fa78
Change imap module to assertk 2023-03-21 14:00:23 +01:00
Wolf Montwé
b4b6b841a0
Convert ImapCommandSplitterTest to Kotlin 2023-03-21 13:57:58 +01:00
Wolf Montwé
6059ca9c54
Rename ImapCommandSplitterTest.java to ImapCommandSplitterTest.kt 2023-03-21 13:57:58 +01:00
cketti
76b52d17ac IMAP: Ignore errors during LOGIN fallback and throw original exception 2023-03-17 14:37:53 +01:00
cketti
7e5022ef36 IMAP: Put server response text in AuthenticationFailedException 2023-03-15 19:04:50 +01:00
Wolf Montwé
00b7bf45d7
Change truth testing library to legacy and only allow usage in old modules 2023-03-14 12:20:55 +01:00
Wolf Montwé
22d8e4b924
Change build files from Groovy to Kotlin 2023-02-23 14:52:16 +01:00