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
ae2fbfe72d
Add ClientCertificateException
2023-11-28 15:14:06 +01:00
cketti
8a3da93314
Remove check for open connection in Pop3ConnectionTest
...
Right now the behavior of `Pop3Connection.open()` isn't very predictable when it comes to the state of the socket connection in the case of an error. Fixing this would require more changes to the POP3 code than we want to do right now. So this change relaxes the test to not check whether the connection is open or closed.
2023-11-28 14:51:18 +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é
1236d7114c
Change repository links from thundernest/k-9
to thunderbird/thunderbird-android
2023-11-02 14:35:06 +01:00
Wolf-Martell Montwé
b970e2f90f
Enable AlsoCouldBeApply
rule
2023-10-10 13:34:45 +02: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
4efbf3d0d9
Add OAuth to auto discovery flow
2023-07-31 15:16:09 +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
84f132c148
Add abstraction for storing and retrieving the OAuth state
2023-07-26 15:28:34 +02:00
Wolf-Martell Montwé
ea8c0beb5c
Add server config validation use cases and change check interface to SAM
2023-06-27 11:33:46 +02:00
cketti
ed49b34412
Merge pull request #7024 from thundernest/check_imap_server_settings
...
Add `ImapServerSettingsValidator`
2023-06-26 13:39:37 +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
04d0c762a9
Add Pop3ServerSettingsValidator
2023-06-23 13:36:25 +02:00
cketti
f404dabf08
Merge pull request #7017 from thundernest/refactor_pop3_exception_handling
...
Change exception handling in POP3 code
2023-06-23 13:35:30 +02:00
cketti
f2d096c6e3
Change exception handling in POP3 code
...
Defer wrapping an IOException in a MessagingException for as long as possible.
2023-06-22 14:36:11 +02:00
cketti
0bdb03d50c
Add SmtpServerSettingsValidator
2023-06-22 13:22:11 +02:00
cketti
d99067a9a7
Add ServerSettingsValidator
interface
2023-06-21 19:41:35 +02:00
cketti
a574c39be0
Create better AuthenticationFailedException
instances
...
Provide a value for `messageFromServer` whenever possible. We're showing this to the user when checking server settings has failed, so they get a better idea of what went wrong.
2023-06-21 18:31:52 +02:00
cketti
774d95d4f5
Merge pull request #7008 from thundernest/consistent_reply_behavior
...
Fetch `List-Post` header when downloading partial message
2023-06-20 16:42:14 +02:00
cketti
ff31f79dc2
Fetch List-Post
header when downloading partial message
2023-06-20 15:04:43 +02:00
cketti
07985f7066
Use IOUtils.skipFully()
in FixedLengthInputStream
...
There was a bug in the `skip()` implementation of `PeekableInputStream` which have could lead to an endless loop in `skipRemaining()`. Using `IOUtils.skipFully()` should avoid such a problem in the future.
2023-06-17 17:21:48 +02:00
cketti
7b7ffe4b88
Fix PeekableInputStream
to adhere to the InputStream
contract
2023-06-17 17:21:48 +02:00
cketti
fde82fe7b4
Convert PeekableInputStream
to Kotlin
2023-06-17 17:21:45 +02:00
cketti
ff9bec87e1
Rename .java to .kt
2023-06-17 13:13:34 +02:00
cketti
cde85b97a2
Add tests for PeekableInputStream
2023-06-17 13:13:34 +02:00
cketti
3bf19ca3f6
Add UserInputEmailAddressParser
...
Used to parse name and email address pairs entered by the user when composing a message.
2023-06-07 18:40:49 +02:00
cketti
2dbecb667c
Move HostNameUtils
to :core:common
2023-05-22 18:03:56 +02:00
cketti
ef498c60e4
Update assertk to version 0.26
2023-05-16 17:20:25 +02:00
cketti
8376909043
Merge pull request #6897 from thundernest/rewrite_to_assertk
...
Switch assertions to assertk
2023-05-16 16:27:13 +02:00
cketti
5498567bf2
Switch assertions to assertk
2023-05-14 13:00:28 +02:00
cketti
a266e0a6fc
Convert FixedLengthInputStream
to Kotlin
2023-05-13 23:10:16 +02:00
cketti
64050584b5
Rename .java to .kt
2023-05-13 23:10:16 +02:00
cketti
9c4a0d40be
Convert FixedLengthInputStreamTest
to Kotlin
2023-05-13 22:55:54 +02:00
cketti
1e629952bc
Rename .java to .kt
2023-05-13 22:52:15 +02:00
cketti
ec7c282ffd
Merge pull request #6883 from thundernest/hostname_validation
...
Add `HostNameUtils` to check the validity of host names and IP addresses
2023-05-10 18:45:30 +02:00
cketti
182e2c217c
Fix escaping commas in buildOAuthBearerInitialClientResponse()
2023-05-08 15:46:04 +02:00
cketti
21be092394
Add HostNameUtils
to check the validity of host names and IP addresses
2023-05-08 12:58:51 +02:00
cketti
626a9c318c
Merge pull request #6877 from thundernest/secure_random
...
Switch from `Random` to `SecureRandom`
2023-05-05 17:55:37 +02:00
cketti
79078344c2
Switch from using Random
to SecureRandom
2023-05-05 16:35:30 +02:00
cketti
ff188cdfb5
Remove WebDAV code
2023-05-04 22:14:00 +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
4695bd0460
Don't parse Content-Transfer-Encoding
as header containing named parameters
2023-04-20 18:57:57 +02:00
cketti
0d24dcd28a
Merge pull request #6836 from thundernest/fix_ImapResponseParser
...
Fix bugs in `ImapResponseParser`
2023-04-20 16:04:59 +02:00
cketti
98b59f1709
Fix bugs in ImapResponseParser
2023-04-19 19:36:31 +02:00
cketti
989c04f6cb
Fix SmtpLogger call to not include input in format string
2023-04-18 19:26:47 +02:00
cketti
87ff2338ba
Merge pull request #6805 from thundernest/convert_to_kotlin
...
Convert `ImapResponseParserTest` to Kotlin
2023-04-11 14:58:00 +02:00
cketti
7ba404dd21
Clean up ImapResponseParserTest
2023-04-11 14:37:23 +02:00
cketti
fe2c5494ae
Fix bug in CharsetSupport.readToString()
...
`charset` arguments containing a newline character didn't match the regular expression meant to always match.
2023-04-08 12:25:58 +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é
a670406eac
Change common module to assertk
2023-03-21 14:03:32 +01: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
Wolf Montwé
00bfb04388
Change pop3 module to assertk
2023-03-21 13:57:57 +01:00
Wolf Montwé
3c9ca12776
Change smtp module to assertk
2023-03-21 13:57:51 +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
Wolf Montwé
96e2784b22
Rename build.gradle files to build.gradle.kts
2023-02-23 14:52:15 +01:00
Wolf Montwé
29d5220995
Add trailing comma allowance to code style
2023-02-17 16:14:13 +01:00
Wolf Montwé
45da12646b
Change to jvm build plugin
2023-02-15 17:40:57 +01:00
Wolf Montwe
1854a2c911
Change Kotlin code format
2023-02-03 17:23:57 +01:00
cketti
2618664c4f
Fetch BCC header when only partially downloading a message
2023-02-01 22:37:39 +01:00
cketti
e826ed8db7
Merge pull request #6618 from thundernest/message-view-redesign
...
Add the redesigned message view screen
2023-02-01 18:51:05 +01:00
cketti
3e90f8b85e
Remove unused methods
2023-01-27 19:50:46 +01:00
cketti
2df7c3301d
Remove unused classes
2023-01-27 19:20:29 +01:00
cketti
6762b2c488
IMAP: Add Sender
to list of headers to fetch by default
2023-01-24 18:21:51 +01:00
cketti
ddd464cffb
Update Apache James Mime4J to version 0.8.8
2023-01-17 14:55:25 +01:00
cketti
a8432dd6d8
SMTP: Log "sensitive" responses when "Log sensitive information" is enabled
2023-01-17 14:12:25 +01:00
cketti
1052bd07c7
Rename some Gradle version catalog entries
2023-01-16 14:49:14 +01:00
Bastian Wilhelm
a3f6995a2e
Migrate to Gradle's version catalog
2023-01-16 14:49:14 +01:00
Goooler
4b0567744d
Cleanup
2022-12-07 19:21:12 +01:00
Goooler
d4055ea252
Configure java extensions in allprojects
2022-12-07 19:04:23 +01:00
cketti
77756e56da
Add support for search in recipient addresses
2022-11-28 18:16:45 +01:00
cketti
1570c2389f
SMTP: Don't treat all TLS errors as certificate error
2022-11-01 11:47:05 +01:00
cketti
05d0038a67
Don't wrap exceptions when trying to connect to IMAP/SMTP servers
2022-11-01 11:47:05 +01:00
cketti
4908bcad47
Try all IP addresses when connecting to a POP3 server
2022-10-31 11:41:49 +01:00
cketti
15b7d8ee06
Move test from Pop3StoreTest
to Pop3FolderTest
2022-10-29 01:10:28 +02:00
cketti
1e13d9c324
Convert Pop3FolderTest
to Kotlin
2022-10-29 01:04:30 +02:00
cketti
7ffb3495c0
Rename .java to .kt
2022-10-29 01:04:30 +02:00