cketti
238a5cd181
Handle authentication failure when refreshing the folder list
2022-07-05 12:40:43 +02:00
cketti
00e0d8b35a
Change server settings to use OAuth after an authentication failure
2022-07-05 12:40:43 +02:00
cketti
bbd104f38a
Add support for the OAUTHBEARER SASL method (SMTP)
2022-06-05 22:49:30 +02:00
cketti
d3be6e249b
Add support for the OAUTHBEARER SASL method (IMAP)
2022-06-05 22:49:30 +02:00
cketti
5065afef88
Merge pull request #6082 from k9mail/oauth_setup_flow
...
Add support for OAuth 2.0 (Gmail)
2022-05-28 15:44:22 +02:00
cketti
7e5c6b05c4
Merge pull request #6051 from TheLastProject/feature/2943
...
Add support for List-Unsubscribe
2022-05-28 14:28:35 +02:00
Sylvia van Os
6081b58212
Add Unsubscribe toolbar option
2022-05-28 14:07:08 +02:00
cketti
14a7f1b0d3
Add support for OAuth 2.0 (Gmail)
2022-05-23 22:26:49 +02:00
cketti
60bf78d3f0
Ignore invalid SMTP EHLO response lines
2022-05-22 21:52:18 +02:00
cketti
553cbbb87f
Only use XOAuth2ChallengeParser
on continuation requests
2022-05-11 01:43:57 +02:00
cketti
35ced0f3ef
Add Logger
implementation for tests
2022-05-11 01:43:57 +02:00
cketti
bf6ae48658
Convert RealImapConnectionTest
to Kotlin
2022-05-11 01:43:57 +02:00
cketti
f26d0410ba
Rename .java to .kt
2022-05-11 00:41:02 +02:00
cketti
e7032255c6
JVM-ify mail libraries
2022-05-02 20:05:00 +02:00
cketti
171c0eca43
Use DefaultHostnameVerifier
from Apache's httpclient5
2022-05-02 20:05:00 +02:00
cketti
fdb8655f3a
Remove Robolectric from a lot of tests
2022-05-02 17:08:22 +02:00
cketti
ad337c0395
Move mime type utility functions to :k9mail:app:core
2022-05-02 14:41:55 +02:00
cketti
d69c1f4c46
Add simple logging abstraction
...
Once there's a JVM artifact for Timber, hopefully all we have to do is replace the imports again.
2022-05-02 02:44:35 +02:00
cketti
ff48609b6f
Remove CertificateValidationException
's dependency on the Android SDK
2022-05-02 02:44:34 +02:00
cketti
c61dc117d2
Replace usage of android.text.util.Rfc822Token[izer]
in Address
...
At some point we need to clean up our email address parser mess. But for now we just copy Android's implementation of `Rfc822Token` and `Rfc822Tokenizer`.
2022-05-01 23:54:29 +02:00
cketti
2abe7d2b9f
Replace usage of android.text.TextUtils
in Address
2022-05-01 23:22:00 +02:00
cketti
1280f43cba
Fix STARTTLS bug in SmtpTransport
2022-05-01 01:31:46 +02:00
cketti
0a05802843
Use our standard read/connect timeouts in SmtpTransport
2022-05-01 01:25:05 +02:00
cketti
906cc19b6e
Replace usage of JSONObject
with Moshi
2022-04-28 23:23:44 +02:00
cketti
6ea0bab0cf
Remove SuppressLint
annotations
2022-04-28 22:42:44 +02:00
cketti
4b1dc23ebb
Remove unused code from OAuth2TokenProvider
2022-04-28 22:39:39 +02:00
cketti
7f343e4fd1
Move DefaultTrustedSocketFactory
2022-04-28 22:18:14 +02:00
cketti
4ad2e04cff
Decouple WebDavSocketFactory
from DefaultTrustedSocketFactory
2022-04-28 22:02:48 +02:00
cketti
e2609f3a46
Move MailTo
and ListHeaders
classes
2022-04-28 18:56:53 +02:00
Bastian Wilhelm
d71e5b40ac
Replace AndroidX annotations with the ones from JetBrains
2022-04-28 14:52:48 +02:00
cketti
ef8d9abed3
Rewrite FlowedMessageUtils.deflow()
...
This new version should use a lot less allocations.
2022-04-22 16:28:47 +02:00
cketti
f7b6b8371f
Rename .java to .kt
2022-04-22 16:28:44 +02:00
cketti
77227b3290
Merge pull request #6030 from k9mail/fix_format_flowed
...
Fix bug in `FlowedMessageUtils.deflow()`
2022-04-22 16:27:28 +02:00
cketti
2f78315cb4
Fix bug in FlowedMessageUtils.deflow()
...
Properly handle the case when a quoted flowed line is followed by an empty line.
2022-04-21 02:56:00 +02:00
cketti
60baf4bd5b
Reformat FlowedMessageUtils.deflow
2022-04-21 00:50:44 +02:00
cketti
9b00bccb2c
Add tests for FlowedMessageUtils
2022-04-21 00:50:42 +02:00
cketti
0934f274b7
Get rid of EnhancedNegativeSmtpReplyException
2022-04-20 18:01:36 +02:00
cketti
e9369e1b04
Convert NegativeSmtpReplyException
to Kotlin
2022-04-20 18:01:36 +02:00
cketti
0aaa0a9a82
Rename .java to .kt
2022-04-20 18:01:36 +02:00
cketti
0c5a9a678a
Convert StatusCodeClass
to Kotlin
2022-04-20 18:01:36 +02:00
cketti
198f04359c
Rename .java to .kt
2022-04-20 18:01:36 +02:00
cketti
56da545493
Convert SmtpTransport
to Kotlin
2022-04-20 18:01:36 +02:00
cketti
2f258d6886
Rename .java to .kt
2022-04-20 17:08:40 +02:00
cketti
cf2979e9fb
Convert SmtpTransportTest
to Kotlin
2022-04-20 17:08:40 +02:00
cketti
c25884314f
Rename .java to .kt
2022-04-20 17:08:40 +02:00
cketti
7be4ea62fe
Remove ImapStore
's dependency on ConnectivityManager
2022-04-12 21:58:15 +02:00
cketti
a796b1d941
Change IMAP code to use single compression setting
2022-04-12 21:58:15 +02:00
cketti
d13352a4cd
Use new SmtpResponseParser
in SmtpTransport
2022-04-11 17:24:55 +02:00
cketti
a7562fe3f3
Add a new parser for SMTP responses
2022-04-11 17:24:55 +02:00
cketti
a11c993491
Add support for duplicate "charset" parameters with matching values
2022-03-11 01:54:17 +01:00
cketti
556188efcc
Properly report progress when receiving multiple FETCH responses per message
2022-03-05 02:04:14 +01:00
cketti
9dd076686b
Remove unnecessary/unused method parameters
2022-03-05 01:20:23 +01:00
cketti
4bed7a595b
Remove unused method parameters
2022-02-24 19:56:50 +01:00
cketti
e59f57f602
Remove unused callbacks from MessageRetrievalListener
2022-02-24 19:42:01 +01:00
cketti
a4e1a77892
Switch to mockito-inline
2022-02-03 01:10:52 +01:00
cketti
251a221b3b
Stop using AUTH without arguments (POP3)
...
At least one server software closes the connection right away after receiving the AUTH command without arguments. Since using the AUTH command without arguments never made it into a standard, I decided to completely remove this functionality.
2022-01-25 17:41:48 +01:00
parkerfath
722e6b923f
Change delimiter in address fields from ASCII 0 to 1 ( #5863 )
...
Fixes search by sender name.
Co-authored-by: Fath <fath@147dda1a2773.ant.amazon.com>
2022-01-14 19:40:28 +01:00
cketti
878400c15f
Explicitly specify locale in case conversion or string formatting
2021-11-26 15:43:28 +01:00
Tobias Preuss
f0d3f371f0
Avoid leaking CountingOutputStream.
...
+ Affects com.fsck.k9.mail.filter.CountingOutputStream.
2021-11-23 09:45:05 +01:00
cketti
9861fc4d5a
Take special care when decoding encoded words with charset ISO-2022-JP
2021-11-03 14:00:29 +01:00
cketti
94548c11a8
Convert DecoderUtil to Kotlin
2021-11-03 11:56:23 +01:00
cketti
abc2f263da
Rename .java to .kt
2021-11-03 11:56:23 +01:00
cketti
61046ef0fd
Update Mockito (Kotlin) to version 4.0.0
2021-10-30 05:32:51 +02:00
cketti
f564d0247c
Merge branch '5.8-MAINT' into main
2021-08-30 21:13:42 +02:00
cketti
32aefc2795
Fix ServerSettings.isMissingCredentials
...
We support SMTP without authentication and in that case set the username to the empty string :(
2021-08-28 03:13:21 +02:00
cketti
6084321bde
Update Kotlin to 1.5.30
...
Replace calls to deprecated stdlib functions
2021-08-26 17:44:49 +02:00
cketti
c2ae85e2ec
Convert FormatFlowedHelper to Kotlin and change API
2021-08-22 17:04:16 +02:00
cketti
108cdfb327
Rename .java to .kt
2021-08-22 16:53:44 +02:00
cketti
9ee3a76ef1
Move format=flowed decoding to MessageExtractor
2021-08-22 16:20:15 +02:00
cketti
6c2f4b6354
Rename FlowedMessageUtils to FormatFlowedHelper
2021-08-22 15:46:26 +02:00
cketti
766cf838e0
Merge pull request #5578 from k9mail/ignore_chat_messages
...
Add setting to suppress notifications for chat messages
2021-08-21 21:26:45 +02:00
cketti
0ad8ce2c0d
Fix check for missing incoming/outgoing server credentials
2021-08-19 23:09:39 +02:00
cketti
652d52b6a6
Add setting to suppress notifications for chat messages
...
Messages containing a 'Chat-Version' header field will not generate notifications when this setting is enabled.
2021-08-18 11:17:06 +02:00
cketti
7874fe7e11
Properly handle responses to the IDLE command
...
When waiting for the command continuation request response ignore irrelevant responses and keep track of relevant untagged responses.
2021-08-13 16:32:30 +02:00
cketti
03caacc1a7
Make RealImapConnection (somewhat) thread-safe
2021-07-13 16:01:24 +02:00
cketti
5232a1a962
Ignore IOExceptions when sending DONE (Push)
...
Errors with the connection are dealt with in the receiver thread.
2021-07-13 15:09:09 +02:00
cketti
d96641d7a0
Remove optimization to reduce the number of times a wakelock is acquired
...
ImapConnection.isDataAvailable() didn't reliably work on all devices (returned true when no complete IMAP response was available). This lead to situations where a wakelock was being held the whole time the IDLE command was active. At the same time no alarm was set to refresh the IDLE connection. So most of the time the blocking read would time out.
2021-07-09 18:06:13 +02:00
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
4a65c5b4a0
Improve logging in MessageExtractor.getTextFromPart()
2021-06-02 00:49:23 +02:00
cketti
45a7942202
Merge pull request #5294 from k9mail/ImapFolder_fixes
2021-05-11 19:58:31 +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
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
632d8f3cb7
Upgrade Mockito-Kotlin to 3.1.0
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
4e4babeea6
Change K9BackendFolder.saveMessage() to use MessageStore
2021-04-15 01:19:18 +02:00
cketti
24f55ee03e
Add test for RetrieveMessageOperations.getHeaders()
2021-04-01 01:32:46 +02:00
cketti
0e1ff7d6b1
Remove LocalKeyStore's dependency on Android's Context
...
And lazily initialize the KeyStore so we're not doing any work when the instance is created.
2021-03-30 22:08:06 +02:00
cketti
bb1c9c32be
Convert 'LocalKeyStore' to Kotlin
2021-03-30 22:06:12 +02:00