Commit graph

458 commits

Author SHA1 Message Date
cketti
42e07d0355 Move fields that are only used by listener thread into PushRunnable
Also, there's no need for them to use Atomic* instances.
2016-02-12 05:52:17 +01:00
cketti
b8957f6fee Move all messages that are only called from listener thread into PushRunnable 2016-02-12 05:44:49 +01:00
cketti
ca4e6c2139 Remove unnecessary method 2016-02-12 05:36:19 +01:00
cketti
1db9fc169e Make wakeLock final 2016-02-12 05:30:00 +01:00
cketti
af941396bc Make sure that stopping, then starting ImapPusher is atomic 2016-02-12 04:11:48 +01:00
cketti
2c5bcac66f Exclude CRLF when logging sent commands
Android Studio 2.0 beta 3 skips those log messages in its logcat view.
2016-02-11 23:55:02 +01:00
cketti
1d52a357a6 Make sure DONE continuation is only sent at appropriate times 2016-02-11 21:53:17 +01:00
cketti
690693a21c Synchronize access to listeningThread 2016-02-11 00:00:47 +01:00
cketti
23d4c3fd68 Reorder methods 2016-02-10 23:55:59 +01:00
cketti
51723e46ca Extract methods to make the code a bit more readable 2016-02-10 00:06:47 +01:00
cketti
4a80ab6aa3 Extract Push thread code to named inner class 2016-02-09 22:38:30 +01:00
cketti
6b4da35035 Remove unnecessary variable increment 2016-02-09 22:33:11 +01:00
cketti
5b58aac748 Remove unnecessary local variable 2016-02-09 22:28:21 +01:00
cketti
39c4cf3218 Code style fixes and minor cleanup 2016-02-09 22:25:37 +01:00
cketti
54963b6e1e Extract code to encode/decode folder names to FolderNameCodec 2016-02-09 21:41:55 +01:00
cketti
d1cbac47b1 Remove now unused methods from remote Folder subclasses 2016-02-09 19:03:12 +01:00
cketti
ab1e5ce691 Remove LocalFolder-specific methods from Folder 2016-02-09 18:53:59 +01:00
cketti
61e0df5513 Extract code to parse SEARCH response to SearchResponse 2016-02-09 18:24:56 +01:00
cketti
51ab4d23dc Extract code to parse COPYUID response to CopyUidResponse 2016-02-09 18:21:35 +01:00
cketti
ed7221be03 Extract code to parse SELECT/EXAMINE response to SelectOrExamineResponse 2016-02-09 18:21:07 +01:00
cketti
ef82fe9df1 Extract code to parse PERMANENTFLAGS to PermanentFlagsResponse 2016-02-09 17:37:29 +01:00
cketti
7875b4e99d Tidy up return type of getMessagesFromUids() 2016-02-09 05:01:04 +01:00
cketti
60da56fa7a Inline constant arguments for getMessagesFromUids() 2016-02-09 05:00:07 +01:00
cketti
a4072d30e5 Code style fixes and minor code cleanup 2016-02-09 04:54:05 +01:00
cketti
d9f8d86ff4 Add unit tests for ImapFolder 2016-02-09 03:48:10 +01:00
cketti
877ad2aa72 [WIP] Add unit tests for ImapFolder 2016-02-09 02:08:01 +01:00
cketti
f1bc2b4f21 Reduce visibility of some methods in ImapFolder 2016-02-04 02:11:13 +01:00
cketti
1f766b6919 Avoid unnecessary creation of ImapFolder instances 2016-02-03 22:09:49 +01:00
cketti
d8cd58e42b Move encodeString() from ImapStore to ImapUtility 2016-02-03 21:53:14 +01:00
cketti
e562c4bd5e Move RFC3501_DATE constant to ImapFolder 2016-02-03 21:51:42 +01:00
cketti
2f9a427b22 Code style fixes 2016-02-03 21:33:50 +01:00
cketti
ad1e2caa9c Extract code to encode/decode ImapStore URIs 2016-02-03 20:54:51 +01:00
cketti
06ee1ff1b9 Move url encoding/decoding functionality from Store to UrlEncodingHelper 2016-02-03 20:37:29 +01:00
cketti
d9797d02bf Also use special LIST path in ImapResponseParser for LSUB response 2016-02-03 20:16:43 +01:00
cketti
d0f4ab84fc Extract LIST response parsing to ListResponse 2016-02-03 20:08:43 +01:00
cketti
13663dbc1d Remove support for Gmail-specific XLIST command
Nowadays Google implements RFC 6154 and XLIST was deprecated in 2013.
2016-02-03 19:52:57 +01:00
cketti
2d887b31ac Add unit tests for ImapStore 2016-02-02 19:02:31 +01:00
cketti
7f3fc84c11 Extract helper method to ImapResponseHelper 2016-02-02 19:02:31 +01:00
cketti
bbf6a07e94 Extract ImapStoreSettings from ImapStore 2016-02-02 19:02:31 +01:00
cketti
0c31ed9119 Get rid of ImapFolderPusher caching mechanism
start() will never reuse ImapFolderPusher instances because stop() is called
unconditionally, and that will clear the "cache".
2016-02-02 19:02:31 +01:00
cketti
5cd64dc241 Code style fixes in ImapPusher 2016-02-02 19:02:30 +01:00
cketti
ee25de07db Add unit tests for ImapPusher 2016-02-02 19:02:30 +01:00
cketti
7b5e5bc223 Refactor ImapPushState
The old code supported a more complex input argument format. But as far as I
can tell this "feature" was  never used.
2016-02-02 19:02:30 +01:00
cketti
619ab8629d Add unit tests for ImapPushState 2016-02-02 19:02:30 +01:00
cketti
a7f53f0c3b Extract ImapSearcher from ImapStore 2016-02-02 19:02:30 +01:00
cketti
caca473465 Extract ImapPusher from ImapStore 2016-02-02 19:02:30 +01:00
cketti
b092ab0f5b Make ImapPusher as static class 2016-02-02 19:02:30 +01:00
cketti
62befc0c9c Extract ImapMessage from ImapStore 2016-02-02 19:02:30 +01:00
cketti
fb1d0ad533 Extract ImapPushState from ImapStore 2016-02-02 19:02:30 +01:00
cketti
6dd220cc5a Extract ImapFolderPusher from ImapStore 2016-02-02 19:02:30 +01:00
cketti
973b674cf2 Make ImapFolderPusher a static class 2016-02-02 19:02:30 +01:00
cketti
e1a2c68d56 Extract ImapFolder from ImapStore 2016-02-02 19:02:30 +01:00
cketti
3aa80f3ce1 Make ImapFolder a static class 2016-02-02 19:02:30 +01:00
cketti
d3391ae135 Fix test flakiness 2016-02-02 18:55:08 +01:00
cketti
9dc267f56d Make classes package-private 2016-02-01 20:30:33 +01:00
cketti
96f99f6e1c Extract CAPABILITY response parsing to CapabilityResponse 2016-02-01 20:30:33 +01:00
cketti
bc5069bfac Extract NAMESPACE response parsing to NamespaceResponse 2016-02-01 20:30:33 +01:00
cketti
0dbfa5ab9d Extract command/capability/response constants 2016-02-01 20:30:33 +01:00
cketti
6859eef35a Be more specific by using NegativeImapResponseException in some cases 2016-02-01 20:30:33 +01:00
cketti
9b5a3bfff3 Rename ImapException to NegativeImapResponseException 2016-02-01 20:30:33 +01:00
cketti
c427f6df26 Extract methods to make ImapConnection.open() more readable 2016-02-01 20:30:33 +01:00
cketti
c4a4a3bb16 Get rid of ImapConnection.getCapabilities() 2016-02-01 20:30:33 +01:00
cketti
cf718c6380 Reorder methods 2016-02-01 20:30:33 +01:00
cketti
37fbbb0b21 Make internal methods private 2016-02-01 20:30:32 +01:00
cketti
c4d62b13d0 Code style fixes 2016-02-01 20:30:32 +01:00
cketti
5fb5e011b7 Merge pull request #1052 from k9mail/imap_connection_tests
Add unit tests for ImapConnection
2016-02-01 20:29:38 +01:00
cketti
cf92ccaae5 Remove test that no longer compiles 2016-02-01 20:00:37 +01:00
cketti
a76f7e8f7e Fix support for capabilities in initial response 2016-01-29 17:40:06 +01:00
cketti
7887c23bef Don't swallow IOExceptions leaving the connection open 2016-01-29 17:40:06 +01:00
cketti
0a80335ba7 Use lower socket timeouts for tests 2016-01-29 17:40:06 +01:00
cketti
21204f8bec Add tests for ImapConnection 2016-01-29 17:39:49 +01:00
Vincent Breitmoser
b6e3587aeb migration: add MIGRATED_FROM_V50 flag 2016-01-28 22:40:56 +01:00
Vincent Breitmoser
cad01ab5b2 migration: first steps for migration 2016-01-28 22:37:24 +01:00
cketti
d81b2031e5 Merge pull request #1030 from k9mail/localfolder-cleanup
Break migration down into methods, clean up some warnings in mailstore
2016-01-24 02:36:20 +01:00
Vincent Breitmoser
ac83b0062d break migration down into methods, clean up some warnings in mailstore 2016-01-22 15:48:52 +01:00
Vincent Breitmoser
bb8a9e8994 compose: work on SignSafeOutputStream 2016-01-20 21:27:25 +01:00
alexandre
90c6b666c8 RFC-2015 : further encode text quoted-printable to be sign safe #572 #576 2016-01-20 21:27:25 +01:00
alexandre
e70b5076c6 add parameters to Content-Type header #572 2016-01-20 21:27:25 +01:00
cketti
93df7525c4 Merge pull request #1021
Enable syncing while idle on Android M devices
2016-01-15 10:49:48 +01:00
TETRA2000
deff0ce80d update to API 23 2016-01-15 08:11:05 +09:00
Maximilian Mehnert
0366633ff8 replace saslAuthPlain() with saslAuthPlainWithLoginFallback()
Microsoft Exchange Server and probably others need this in some cases.
closes k9mail/k-9#899
2016-01-12 01:18:21 +01:00
cketti
2055e42933 Don't abort on Lint errors 2015-12-22 18:13:05 +01:00
cketti
b202661e62 Set sourceCompatibility and targetCompatibility to JavaVersion.VERSION_1_7 2015-12-22 17:54:57 +01:00
cketti
49d239af56 Remove targetSdkVersion from k9mail-library 2015-12-22 17:54:57 +01:00
cketti
c69b7400f8 Update to Robolectric 3.0 2015-12-22 17:54:57 +01:00
cketti
ff18f9b3f8 Update test dependencies 2015-12-22 17:54:57 +01:00
cketti
e8d16722ed Update build tools to 23.0.1 2015-12-22 17:54:57 +01:00
cketti
c34b9b5ad7 Increase compileSdkVersion to 22 2015-12-22 17:54:02 +01:00
cketti
667ac923bd Merge pull request #962
Key-aware recipient chooser

Fixes #915
2015-12-21 01:22:23 +01:00
cketti
a5ad84481d Merge pull request #959 from k9mail/display_encrypted_in_message_preview
Display "*Encrypted*" in message preview
2015-12-19 18:25:32 +01:00
Vincent Breitmoser
b6fa7b8322 compose: use TokenCompleteTextView for recipient selection 2015-12-17 03:16:29 +01:00
cketti
d6b4452ade Display "*Encrypted*" in preview of encrypted messages 2015-12-16 21:33:19 +01:00
Marcel Wiegand
51fe459dfc Remove Flag.X_GOT_ALL_HEADERS. Fixes #891 2015-12-13 02:17:38 +01:00
s3b
e1d34a27b5 Don't throw CertificateValidationException on generic SSLExceptions 2015-11-28 22:30:12 +01:00
cketti
2567f8c7af Merge pull request #829 from k9mail/auto_detect_archive_folder
Add support for auto-detecting Archive folder
2015-10-11 15:37:00 +02:00
cketti
0fe317c7ac IMAP: read LIST response until end of line
Fixes a bug introduced in de401db9cd
2015-10-11 14:53:22 +02:00
cketti
ecef32141f Add support for auto-detecting Archive folder 2015-10-04 08:54:50 +02:00
cketti
de401db9cd Add support for folder names with brackets encoded as 'astring' in LIST response
Fixes #786
2015-10-02 06:37:47 +02:00
cketti
d686ae86b2 Increase test coverage of ImapResponseParserTest 2015-10-02 01:00:30 +02:00
cketti
bb4c0b07a0 Reformat code 2015-10-01 20:07:11 +02:00
cketti
952da74b0e Merge pull request #718 2015-09-15 21:34:13 +02:00
cketti
c0924c2031 Reverse order of conditions in if clause 2015-09-15 21:32:08 +02:00
cketti
732463a89f Clean up code 2015-09-15 21:30:29 +02:00
cketti
c4bbae288b Hide the "Load up to X more" footer when there are no more relevant messages on the server
This is tricky for IMAP because we only care about non-deleted messages and
there's no easy way to count these. So when necessary we list all remaining
messages on the server to check whether any of them are relevant for us.
2015-09-06 21:06:18 +02:00
cketti
767976c973 Use helper method to case-insensitively compare MIME types
Fixes #741
2015-08-21 21:14:30 +02:00
moparisthebest
54f9fd36a7 Set SNI hostname if we can for TLS connections 2015-07-24 23:52:14 -04:00
cketti
9050ef16a2 Merge pull request #686 from k9mail/art/more-static-analysis-fixes
Fix static analysis warnings and stop using nulls everywhere
2015-07-16 08:39:34 +02:00
cketti
9d44f0e062 Improve send failure handling
We now no longer parse the exception message in MessagingController to find
out if it was a permanent SMTP failure.
Overall the code is still a mess, but the error handling should be a little
bit better and more readable now.
2015-06-22 00:43:31 +02:00
cketti
ee7a95b750 Merge pull request #685 from k9mail/art/static-analysis-fixes
static analysis fixes
2015-06-17 21:51:11 +02:00
cketti
366531bdf7 Fix code style 2015-06-17 21:11:24 +02:00
Art O Cathain
7fc8767a5c fix static analysis warnings and stop using nulls everywhere 2015-06-13 16:47:35 +01:00
Art O Cathain
591785a3ab fix up some dodgy nulls 2015-06-13 16:24:58 +01:00
cketti
2fdf076d4e Merge pull request #669 from vt0r/disable_sslv3_and_rc4
Disabling support for SSLv3 protocol/ciphers and all RC4 ciphers.
2015-06-10 01:41:23 +02:00
Jan Berkel
3c1c1e4e58 Remove unneeded static modifier 2015-06-06 12:11:20 +01:00
Jan Berkel
270d22681f Merge pull request #652 from k9mail/gradle_unit_test_support
Gradle unit test support
2015-06-03 10:19:45 +01:00
Salvatore LaMendola
f0962fdb6a Create a protocols blacklist that should work in the same way as the ciphers one does. 2015-06-01 17:55:59 -04:00
Salvatore LaMendola
37a313efb5 Disabling support for SSLv3 protocol/ciphers and all RC4 ciphers. 2015-05-29 12:57:23 -04:00
cketti
4fb12ff12b Fix cipher suite names 2015-05-25 18:24:00 +02:00
brian m. carlson
a63a91fa54 Support GCM cipher suites. 2015-05-23 21:32:22 +00:00
cketti
916929e507 Fix getting code coverage on CI builds 2015-05-21 14:52:50 +02:00
cketti
a24d85d754 Move library tests to k9mail-library module 2015-05-21 02:21:38 +02:00
cketti
ab964cf8af Merge branch 'pgp_mime_preparations' 2015-03-16 16:14:45 +01:00
cketti
f0e1b14b58 Merge pull request #567
Move NetworkType to k9mail-library, use on StoreConfig
2015-03-16 13:39:59 +01:00
Art O Cathain
110400a85b move NetworkType to k9mail-library, use on StoreConfig 2015-03-08 12:59:15 +00:00
Art O Cathain
d0cd7c368d formatting 2015-03-08 11:07:33 +00:00
Art O Cathain
810d0cf6b4 Move default port and default TLS port to a single location 2015-03-08 11:05:53 +00:00
cketti
5330fe5b27 Extract code to parse a message header to its own class 2015-02-25 03:36:48 +01:00
Art O Cathain
5035e7e3d1 review comments, also use == in preference to equals for enums 2015-02-22 21:30:26 +00:00
Art O Cathain
583a637d79 Remove duplication, enum-ify String 2015-02-18 19:42:33 +00:00
cketti
1a20ca06f1 Handle "cid:" URIs in HTML message body 2015-02-06 18:31:26 +01:00
Vincent Breitmoser
e8c591e6be ignore application/pgp-signature parts for display 2015-01-30 13:19:53 +01:00
cketti
7f811fce2c First attempt at decrypting PGP/MIME messages 2015-01-28 17:24:05 +01:00
cketti
8f7f656355 Add method to find multipart/encrypted parts 2015-01-26 20:37:27 +01:00
cketti
378acbd313 Write large message parts to file system
Actually, we just move the temporary file to avoid having to copy the
data to a new file.
2015-01-25 19:25:00 +01:00
cketti
98bdf54672 Don't save empty multipart body
This will correctly mark the body as missing when the message is written to
the database.
2015-01-23 03:57:13 +01:00
cketti
74d09943c0 Use MimeMessageHelper.setBody() when parsing BODYSTRUCTURE
This will correctly set the MIME type of the part containing the body.
Otherwise multiparts end up having a content type of text/plain (default)
in the database... oops.
2015-01-23 03:55:54 +01:00
cketti
fe7b88f7c2 Work around the BinaryTempFileBodyInputStream mess 2015-01-22 04:56:08 +01:00
cketti
64e92ab1c1 Remove unused LocalAttachment* classes 2015-01-22 04:18:20 +01:00
cketti
c9b2ec533c Add MessagePreviewExtractor 2015-01-21 01:21:02 +01:00
cketti
23c9398c03 Merge branch 'master' into pgp_mime_preparations
Conflicts:
	k9mail/src/androidTest/java/com/fsck/k9/mailstore/LocalMessageTest.java
2015-01-20 18:35:07 +01:00
Jan Berkel
ecd316d0af Simplify ImapConnection#connect 2015-01-14 04:41:21 +01:00
Jan Berkel
b481d3f978 Adding tests for IMAP connection, use greenmail snapshot 2015-01-13 01:10:56 +01:00
cketti
bd97004ebd Fix downloading/saving single message parts 2015-01-10 04:38:57 +01:00
cketti
d7edb0ed4f Minimal version that reconstructs original message from the database
This change breaks all kinds of things, e.g.
- deleting messages
- updating messages
- downloading attachments
- deleting attachments
- searching in message bodies
2015-01-06 03:20:38 +01:00
Jan Berkel
c7229e4724 Enable lint checks for k9mail-library 2015-01-05 23:26:36 +01:00
cketti
3eb25a011f Don't automatically create Message-ID when none is found 2015-01-05 02:25:17 +01:00
cketti
d7085a2f07 Properly decode the body in MessageExtractor.getTextFromPart() 2015-01-05 00:57:25 +01:00
cketti
57ad0fd6b3 Remove unused implementation from abstract class 2015-01-03 04:39:25 +01:00
cketti
e45d780c6f Fix WebDavFolder.equals() 2015-01-03 02:12:37 +01:00
cketti
82736f3a8b Merge pull request #524 from k9mail/merge_pgp_mime_branch
Merge changes from PGP/MIME repository
2015-01-02 22:04:28 +01:00
cketti
c96a11212e Update dependencies 2014-12-22 23:09:05 +01:00
Jan Berkel
b0d401c3b7 Added note about expected method parameter format
8194c20ffe (commitcomment-9069167)
2014-12-22 22:37:17 +01:00
cketti
152e0a0530 Revert ImapStore URI change
Reverts changes introduced with commit 8194c20ffe
Adds test to make sure usernames/passwords with special characters encode/decode properly.
2014-12-22 18:24:22 +01:00
Jan Berkel
8194c20ffe Fix IMAP uri decode when user/pw contains ':' 2014-12-21 11:52:05 +01:00
cketti
4f8fc5bc5b Merge remote-tracking branch 'k9mail_pgp_mime/master'
Fixed lots of conflicts
2014-12-20 08:07:46 +01:00
cketti
7752f42db6 Merge branch 'gradle_only_and_k9mail_library'
Conflicts:
	k9mail-library/src/main/java/com/fsck/k9/mail/transport/imap/ImapSettings.java
	src/com/fsck/k9/mail/store/imap/ImapSettings.java
	src/com/fsck/k9/mail/transport/imap/ImapSettings.java
2014-12-20 04:46:14 +01:00
cketti
52b3974c4f Run checkstyle and findbugs on k9mail-library 2014-12-20 01:49:09 +01:00
cketti
105bca735b Move 'mail' package to library project 2014-12-20 01:31:33 +01:00