Commit graph

449 commits

Author SHA1 Message Date
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
cketti
ac0a2525f7 Rename .java to .kt 2021-03-30 21:34:28 +02:00
cketti
f47862d789 Add tests for LocalKeyStore 2021-03-30 21:34:28 +02:00
cketti
00f13c0c8e Pass keystore directory as File instance to LocalKeyStore 2021-03-30 20:03:13 +02:00
mehdisadeghi
a0b160c7cd
Add support for In-Reply-To parameter in mailto: URIs (#5194) 2021-03-09 15:32:30 +01:00
cketti
a205920510 Add 'MessageIdParser'
Can be used to parse the value of 'Message-ID', 'In-Reply-To', and 'References' header fields.
2021-03-05 18:45:21 +01:00
cketti
06de64cd2c Make MessageHeaderParser more flexible 2021-02-20 13:28:15 +01:00
cketti
33d06a5ac9 Convert 'MessageHeaderParser' to Kotlin 2021-02-18 17:49:23 +01:00
cketti
224d56526e Rename .java to .kt 2021-02-18 17:49:22 +01:00
cketti
987325d226 SMTP: Read all responses before issuing DATA command 2021-02-16 13:34:46 +01: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
2338381de1 Rename .java to .kt 2021-01-31 18:50:14 +01:00
cketti
1ebc487b56 Don't use custom ServerSettings subclass in SettingsImporter 2021-01-31 18:50:14 +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
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
5bc7ac3901 When constructing new messages check header values 2020-10-13 03:29:20 +02:00
cketti
8663bbb5b9 Check (unstructured) header field syntax when adding them to MimeHeader 2020-10-13 03:29:20 +02:00
cketti
fac346009a Only pass encoded headers to MimeHeader
Remove code to encode header values from from MimeHeader.writeTo()
2020-10-11 02:28:36 +02:00
cketti
3b7c5ea10f Display message headers in the original order 2020-10-08 16:16:50 +02:00
cketti
3c0d9b99f9 Remove unused Message.setCharset() mechanism 2020-10-04 23:33:31 +02:00
cketti
2a3cc1d422 Don't pass charset to EncoderUtil.encodeEncodedWord() 2020-10-04 23:30:23 +02:00
cketti
267c658492 Only consider US-ASCII and UTF-8 in EncoderUtil.determineCharset() 2020-10-04 23:30:23 +02:00
cketti
357e197256 Remove remaining (non-working) 'androidTest' tests 2020-10-04 23:11:42 +02:00
cketti
0c97e2a4e0 Update Robolectric to 4.4
Replace usage of classes from transitive dependencies that are no longer available.
2020-09-18 03:14:46 +02:00
cketti
3211e3942c Show image previews even when wrong MIME type is used
More precisely, show image preview when the MIME type is application/octet-stream and the file extension maps to a supported image MIME type.
2020-09-09 12:16:03 +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
Tobias Preuss
9c6d08142a Infer type. 2020-07-08 13:58:23 +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
4b8d6bf50c Replace 'blacklisted' with 'disallowed' 2020-06-02 17:15:51 +02:00
cketti
4e2ae11238 Don't select charset depending on the recipient address
It's 2020. We now always use UTF-8 for outgoing emails.
2020-05-27 03:07:29 +02:00
cketti
789769ef39 Replace Account.getOutboxFolder() with Account.getOutboxFolderId() 2020-05-04 16:31:00 +02:00
cketti
767f7e0efe Remove StoreConfig 2020-05-01 05:42:50 +02:00
cketti
02049c5882 Create DraftsFolderProvider 2020-05-01 05:38:37 +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
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
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
a44732ee38 Remove FolderClass.NONE
Rewrite entries in the database to use FolderClass.NO_CLASS
2020-04-08 19:33:03 +02:00
cketti
61f3f06ba7
Merge pull request #4641 from k9mail/remove_old_push_code
Remove old push code
2020-04-06 19:21:53 +02:00
cketti
2a78418911 Remove old Push code 2020-04-05 20:08:29 +02:00
cketti
59630fb13b Change appearance of attachment boxes in message compose screen 2020-04-05 03:40:24 +02:00
cketti
68213ac717
Merge pull request #4634 from k9mail/uidvalidity
IMAP: Clear local message cache when UIDVALIDITY value changes
2020-04-02 21:45:03 +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
f1b73a11b9 Convert 'MessageIdGeneratorTest' to Kotlin 2020-03-29 22:24:11 +02:00
cketti
576696e87e Change fallback hostname for Message-ID to "fallback.k9mail.app" 2020-03-29 22:14:00 +02:00
cketti
ab0aae46c4 Extract interface for UUID generation 2020-03-29 22:10:20 +02:00
cketti
9ef845fda5 Convert 'MessageIdGenerator' to Kotlin 2020-03-29 22:00:03 +02:00
cketti
c71b1f0699 WIP: Renaming file 'MessageIdGenerator' with Kotlin extension 2020-03-29 21:49:11 +02:00
cketti
cfed7b0c08 Don't use android.net.MailTo in ListHeaders 2020-03-28 21:57:04 +01:00
cketti
b0aa07aef9 Move MailTo class to :mail:common module 2020-03-28 21:39:04 +01:00
cketti
982013ded4 Make sure Part.getMimeType() returns a valid MIME type 2020-03-24 02:29:01 +01:00
cketti
7918ffad85 Add MimeType class 2020-03-24 01:53:06 +01:00
cketti
c4ab630161 Remove 'androidTest' tests
We don't regularly run them and most of them don't even compile anymore.
2020-03-11 18:01:41 +01:00
cketti
e4cc7b9a91
Merge pull request #4575 from k9mail/MimeMessage_setReplyTo
Use AddressHeaderBuilder for MimeMessage.setReplyTo()
2020-03-02 14:33:49 +01:00
cketti
4325509d43 Use AddressHeaderBuilder for MimeMessage.setReplyTo() 2020-02-29 22:50:07 +01:00
cketti
916015b1f0 Convert 'MimeHeader' to Kotlin 2020-02-29 21:29:46 +01:00
cketti
21891f1d1d WIP: Renaming file 'MimeHeader' with Kotlin extension 2020-02-29 18:27:13 +01:00
cketti
eccf4738b6 Get rid of 'm' prefix in MimeHeader fields 2020-02-29 18:26:18 +01:00
cketti
2333899afb We no longer need MimeHeader to implement Cloneable 2020-02-29 18:24:04 +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
58f32df670 Remove now unused class 'Folder' 2020-01-28 16:22:09 +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
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
0b21a7521d Add JMAP folder sync 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
cketti
83ad4197b8 Remove unused code from 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
079d166ce6 Convert 'EncoderUtilTest' to Kotlin 2019-12-12 00:10:00 +01:00
Bastian Wilhelm
7a8a67ea25 Make sure encoded word encoding doesn't split surrogate pairs 2019-12-11 23:04:54 +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
d4def08551 Filter duplicate folder names in IMAP LIST response 2019-11-19 23:15:31 +01:00
cketti
6325e4deea Remove now unused code in 'DefaultTrustedSocketFactory' 2019-11-19 15:06:53 +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
6f0bae80b9 Fix test in 'SmtpTransportTest'
We tested whether the connection was still open. But we should test
whether the connection was closed. The test passed most of the time
because closing a connection takes some time.
2019-05-24 13:45:29 +02:00
cketti
3ccabbf95f Remove unused code 2019-03-09 19:31:54 +01:00
cketti
7c7ce6eb84 Remove Message.setRecipients() and manually set recipient headers
Use AddressHeaderBuilder to encode the recipient addresses and fold the
header value.
2019-02-14 02:28:36 +01:00
cketti
58d72e0df3 Add AddressHeaderBuilder to correctly fold recipient headers 2019-02-14 02:28:36 +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
cketti
b5588a8d02 Remove compatibility code for pre-API 19 versions 2018-12-16 02:49:49 +01:00
Vincent Breitmoser
af09f7b02e
Merge pull request #3799 from k9mail/smtp-pipeline-first-error
Return first, rather than last, response for pipelined SMTP commands
2018-12-12 12:05:29 +01:00
Vincent Breitmoser
fda70cbea7 respect first overall negative reply in smtp pipelining 2018-12-10 17:21:10 +01:00
Vincent Breitmoser
d1c4701256
Merge pull request #3808 from artbristol/remove-exception-todo
Remove TODO
2018-12-10 12:55:12 +01:00
Art O Cathain
5e3141d236 Remove TODO 2018-12-09 14:06:17 +01:00
Vincent Breitmoser
3c663098b3 Use local ip statically for SMTP HELO/EHLO 2018-12-05 22:26:17 +01:00
Vincent Breitmoser
bad3f20852 add unit test for negative response in smtp pipeline 2018-12-05 15:58:23 +01:00
Vincent Breitmoser
64c6a14e77 Return first, rather than last, response for pipelined SMTP commands 2018-12-05 14:50:57 +01:00
Vincent Breitmoser
4333a3a16f remove "hideHostnameWhenConnecting" from global settings 2018-12-05 14:39:08 +01:00
Vincent Breitmoser
c06e1a9d9b always just send IP instead of hostname in SMTP EHLO message
Clients are very often behind NATs, which makes the hostname in
HELO/EHLO messages virtually useless these days. Attempting to figure
out a hostname we could use also led to issues with some strict Postfix
configurations (see https://github.com/k9mail/k-9/issues/3387). This
commit changes our behavior to simply send the local IP always, getting
rid of this metadata.

Fixes #3387
2018-12-05 14:36:06 +01:00
Vincent Breitmoser
e6e0d7c1c2
Merge pull request #3772 from k9mail/cleanup-localkeystore
Clean up LocalKeyStore and related
2018-12-02 05:08:03 +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
8fd2b56a67 clean up some warnings in trust management classes 2018-11-30 15:50:38 +01:00
Vincent Breitmoser
df85d7b0f3 Clean up TrustManager, KeyStore and SocketFactory use 2018-11-30 15:47:57 +01:00
Vincent Breitmoser
7819045e1b Extract deletion and saving of accounts into AccountManager 2018-11-29 18:19:07 +01:00
Wiktor Kwapisiewicz
4e6d642ddd
Disallow Addresses with null address part
This change ensures that Address objects are always created with a valid
`address` part. If an Address contains only `personal` part then it is
silently skipped from parsed list.

Unit tests have been adjusted to this new requirement.

Removed inserting Address with `null` address component introduced in
commit 68cecb168e.

Fixes #3652.

See: https://github.com/k9mail/k-9/pull/3739#issuecomment-441242481
2018-11-28 20:42:14 +01:00
cketti
72a664458e Remove StoreConfig.set*Folder() 2018-11-13 20:38:46 +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
91ae94d432 Add FolderType support to (Local)Folder 2018-11-13 16:57:32 +01:00
cketti
9711b42412 Remove unused Folder.FolderType 2018-11-09 14:19:36 +01:00
cketti
cda778e491 Remove unused method Message.clone() 2018-09-03 01:17:25 +02:00
cketti
83b6ab0620
Merge pull request #3570 from k9mail/mime_parameter_decoder
Add proper header parameter parser/decoder
2018-09-03 00:43:30 +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
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
cketti
ae76f07ada
Merge pull request #3588 from k9mail/simplify_if_statements
[Cleanup] Simplify if statements
2018-09-02 22:48:21 +02:00
BO41
86dde4dabf Remove unused imports 2018-09-02 22:31:34 +02:00
BO41
dbea2cafa6 Simplify if statements 2018-09-02 22:27:28 +02:00
cketti
5d98c15bce Use MimeParameterEncoder and MimeParameterDecoder in MimeMessageHelper 2018-08-26 18:09:29 +02:00
cketti
5f7dac4556 Remove unwarranted usage of MimeUtility.unfoldAndDecode() 2018-08-26 17:18:22 +02:00
cketti
942ecb5a4e Use MimeParameterDecoder to extract header parameters 2018-08-26 17:18:21 +02:00
cketti
4ea798fdf6 Make MimeParameterEncoder use functions in MimeExtensions.kt 2018-08-26 16:02:15 +02:00
cketti
95465ea6d7 Add proper parser for header parameters (RFC 2045 + RFC 2231) 2018-08-26 16:02:15 +02:00
cketti
5c50f367e4 Change AuthenticationFailedException to expose alert text from server 2018-08-14 16:08:30 +02:00
cketti
1f0f4285d2 Add support for local_only column to LocalFolder 2018-07-23 14:25: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
50e955d2da Remove default port information from ServerSettings.Type 2018-07-18 19:25:43 +02:00
cketti
7c16fe2e35 Remove getStore/TransportUri() from StoreConfig 2018-07-17 22:43:42 +02:00
cketti
902d959c10 Remove knowledge of transport URI from SmtpTransport 2018-07-17 21:53:30 +02:00
cketti
7ca3806c33 Remove knowledge of store URI from :mail:protocols:webdav module 2018-07-17 21:33:04 +02:00
cketti
9cb5c70e4b Remove knowledge of store URI from :mail:protocols:pop3 module 2018-07-17 20:39:18 +02:00
cketti
f046313d98 Remove knowledge of store URI from :mail:protocols:imap module 2018-07-17 20:39:18 +02:00
cketti
2b97211612 Remove WebDavStore.createUri/decodeUri 2018-07-17 20:39:18 +02:00
cketti
6758b6546e Remove Pop3Store.createUri/decodeUri 2018-07-17 20:39:18 +02:00
cketti
4e22b1c509 Remove ImapStore.createUri/decodeUri 2018-07-17 20:39:18 +02:00
cketti
ec9ba959f8 Remove TransportUris 2018-07-15 20:08:11 +02:00
cketti
e2c09e4155 Make account setup code use Backend to check outgoing server settings 2018-07-11 19:57:51 +02:00
cketti
f6713ea55a Clean up modules' dependencies 2018-07-08 16:06:19 +02:00
cketti
b46594fed4 Move UI code to ui module 2018-07-02 16:19:21 +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
3b393964e2 Move code to get folder list to Backend implementations 2018-06-17 03:26:56 +02:00
cketti
294a678b16 Move code to set message flags to Backend implementations 2018-06-16 17:41:53 +02:00
cketti
606f8c2934 Fix issue with Apache HTTP Client not being on the classpath 2018-06-02 23:18:41 +02:00
cketti
e5c1351aba Create Gradle modules for POP3 and WebDAV backends 2018-06-02 22:25:17 +02:00
cketti
297352858d Use per account instances of RemoteMessageStore 2018-05-29 15:54:04 +02:00
cketti
d66968393a Merge :mail:k9mail into :k9mail 2018-05-24 17:30:43 +02:00
cketti
47520d7ae1 Clean up 2018-05-24 13:57:36 +02:00
cketti
fd7a21bec6 Create :mail:protocols:smtp Gradle module 2018-05-24 13:57:35 +02:00
cketti
c71c1464fd Create :mail:protocols:webdav Gradle module 2018-05-24 13:57:35 +02:00
cketti
26d02ebb0d Create :mail:protocols:pop3 Gradle module 2018-05-24 13:57:35 +02:00
cketti
6961295de4 Create :mail:protocols:imap Gradle module 2018-05-24 13:57:35 +02:00
cketti
a1cfe76dc0 Decouple RemoteStore from implementations 2018-05-23 23:04:48 +02:00
cketti
7397402ba7 Move k9mail-library in preparation of splitting it up 2018-05-23 20:26:11 +02:00