Commit graph

883 commits

Author SHA1 Message Date
Vincent Breitmoser
af5856d28f avoid leaking data to MessagingController via MessageLoaderHelper after detach
null handling is already present: no ui methods should ever be called
after onDestroy or onDetachChangingConfigurations, and pending result
callbacks are handled by a null-check for the callback field.
2016-07-25 00:59:07 +02:00
Vincent Breitmoser
0993d91473 only care for our own MessageReference in MessageLoaderHelper 2016-07-25 00:59:07 +02:00
Vincent Breitmoser
471754241d Merge pull request #1514 from k9mail/dont-trust-downloaded-flag
don't trust X_DOWNLOADED_FULL flag, consider messages with missing data incomplete (WIP)
2016-07-24 23:43:02 +02:00
Vincent Breitmoser
489cf354fd don't pass LocalMessage from onMessageViewInfoLoadFinished/Failed 2016-07-24 23:40:12 +02:00
Vincent Breitmoser
174f99b94c don't trust X_DOWNLOADED_FULL flag, consider messages with missing on-disk data incomplete 2016-07-24 23:40:12 +02:00
cketti
9c46f68b7f Merge pull request #1515 from k9mail/hidden-attachments
Ditch "hidden attachments"
2016-07-24 22:54:32 +02:00
Vincent Breitmoser
b7bcaf8deb rename firstClassAttachment to inlineAttachment (with reversed logic) 2016-07-24 22:08:16 +02:00
cketti
d8f5de0013 Merge pull request #1522 from k9mail/confirm-mark-all-as-read
Ask for confirmation on "mark all as read"
2016-07-24 21:59:17 +02:00
Vincent Breitmoser
a3ce1adf6e only first class attachments should be actually displayed 2016-07-24 21:05:52 +02:00
Vincent Breitmoser
c1d57aa324 parts without name are still first class attachments 2016-07-24 21:05:13 +02:00
Vincent Breitmoser
bd925567e4 messageview: remove support for "hidden" attachments 2016-07-24 21:05:13 +02:00
Vincent Breitmoser
035aba1c1e fix button to display hidden attachments 2016-07-24 21:05:13 +02:00
Vincent Breitmoser
7826febedb Merge pull request #1511 from k9mail/sanitize-in-extract
Sanitize HTML in MessageViewExtractor instead of MessageWebView
2016-07-24 20:51:47 +02:00
Vincent Breitmoser
526448d18b incorporate tests feedback 2016-07-24 20:51:37 +02:00
Vincent Breitmoser
773600c717 sanitize html in MessageViewInfoExtractor
also, inject HtmlSanitizer to keep MessageViewInfoExtractor testable and
pass Context through Globals
2016-07-24 20:51:37 +02:00
Vincent Breitmoser
65f2539e0b move MessageViewInfoExtractorTest to unit tests
(Yes, I made sure these still run successfully!)
2016-07-24 20:50:35 +02:00
cketti
8df6a56a6f Merge pull request #1521 from k9mail/attachment-count-encrypted
Set attachment count to zero for encrypted messages
2016-07-24 20:37:16 +02:00
cketti
8b1c13d697 Merge pull request #1520 from k9mail/recipient-view-longclick
compose: enable long click on recipient select view
2016-07-24 20:05:49 +02:00
cketti
807f0418d8 Merge pull request #1519 from k9mail/recipient-inject-loaderman
Inject LoaderManager to RecipientSelectView via presenter
2016-07-24 20:05:20 +02:00
cketti
2abcbf9ca2 Merge pull request #1512 from k9mail/use-mime4j-bodydescriptor
Use MIME4J's BodyDescriptor instead of reading Content-Type header ourselves
2016-07-24 18:45:52 +02:00
Vincent Breitmoser
c65f54d396 ask for confirmation on "mark all as read" (closes #1509) 2016-07-22 18:25:31 +02:00
Vincent Breitmoser
5c638dd205 use MessageDecryptVerifier methods in EncryptionDetector 2016-07-22 15:17:43 +02:00
Vincent Breitmoser
22b72a5824 don't count attachments in encrypted messages 2016-07-22 15:17:43 +02:00
Vincent Breitmoser
d1620f3fc7 compose: enable long click on recipient select view
this leads to some problems if more than one token is actually parsed.
however, for the common use case of parsing a single address, it seems
to work just fine, so this hopefully does more good than harm.

see also https://github.com/splitwise/TokenAutoComplete/issues/95
2016-07-22 15:12:58 +02:00
Vincent Breitmoser
034b1eda41 compose: inject loader manager to RecipientSelectView via presenter (fixes #1251)
Conflicts:
	k9mail/src/main/java/com/fsck/k9/view/RecipientSelectView.java
2016-07-22 15:03:59 +02:00
Vincent Breitmoser
600537f5fb use mimeType and boundary values from BodyDescriptor rather than header values 2016-07-19 17:14:46 +02:00
Vincent Breitmoser
19cd7b997e add some @WorkerThread annotations 2016-07-18 15:38:21 +02:00
Vincent Breitmoser
9f58de5909 compose: use MessageViewInfo.rootPart for content extraction 2016-07-18 15:38:21 +02:00
Vincent Breitmoser
99f65f338e compose: hand cached decryption result back to OpenKeychain 2016-07-18 15:38:21 +02:00
Vincent Breitmoser
0a43b36ac5 compose: use attachment info from loaded AttachmentViewInfo 2016-07-18 15:38:21 +02:00
Vincent Breitmoser
62361da104 compose: pass MessageViewInfo around instead of just the Message 2016-07-18 13:53:01 +02:00
cketti
a58ca4624b Merge pull request #1488 from k9mail/GH-1483_remove_settings_import_via_intent
Disable settings import via VIEW Intent
2016-07-18 00:18:42 +02:00
cketti
2622b08767 Merge pull request #1484 from k9mail/decrypted-file-provider
decrypted file provider
2016-07-18 00:01:59 +02:00
cketti
d096261c56 Make use of Globals to simplify code 2016-07-17 23:02:10 +02:00
cketti
f6fe28d3a8 Add Globals class so we can avoid passing Context through layers of code
If your class requires a Context instance make it a constructor argument. Then
create a static factory method that calls Globals.getContext(). The result can
then be passed to the constructor.
This allows testing individual classes using test doubles by directly invoking
the constructor and not having to deal with Globals. For integrated tests
spanning multiple classes you might have to use Globals.setContext().
2016-07-17 23:02:10 +02:00
Vincent Breitmoser
8b719a3274 prefer real objects for Part in tests over mocks 2016-07-17 23:02:10 +02:00
Vincent Breitmoser
44c6fccc0e synchronize cleanupReceiver access 2016-07-17 23:02:10 +02:00
Vincent Breitmoser
c4cb83d370 rename some classes from service to mailstore 2016-07-17 23:02:10 +02:00
Vincent Breitmoser
351737512b fix deferred file body test 2016-07-17 23:02:10 +02:00
Vincent Breitmoser
69b0b3a763 split FileProvider logic, incorporate some other feedback 2016-07-17 23:02:09 +02:00
Vincent Breitmoser
f33c083539 don't allow file deletion in DecryptedFileProvider 2016-07-17 23:00:58 +02:00
Vincent Breitmoser
3b0c1979f1 move file cleanup into AsyncTask in onTrimMemory 2016-07-17 23:00:58 +02:00
Vincent Breitmoser
2993078bf2 keep raw data for decrypted bodies around, decode in DecryptedFileProvider if necessary 2016-07-17 23:00:57 +02:00
Vincent Breitmoser
ed628ae67b make FileProviderDeferredFileOutputStream fail faster 2016-07-11 16:14:41 +02:00
cketti
e858ca9e2c Remove intent filter for settings file MIME type
Importing by URI isn't properly supported. We want to fix this eventually, but
for now we just remove the functionality.

Fixes #1483
2016-07-07 00:03:04 +02:00
cketti
06e4ca1945 Version 5.110 2016-07-06 22:23:53 +02:00
cketti
95c546d992 Merge pull request #1485 from k9mail/notifications_only_from_contacts
Setting: only show notifications for messages from contacts
2016-07-06 21:55:32 +02:00
Vincent Breitmoser
0e3d18e7f7 we don't use displayName from database either (for now), fix tests to reflect that 2016-07-06 21:48:39 +02:00
Vincent Breitmoser
7cb6fa102f stream performance optimizations 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
032b1fb833 add some debug logging to cleanup receiver 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
bb9f857d86 add Attachment* tests, and some annotations 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
be3543c78d also clean up decrypted temp files on low memory 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
1eca794346 add DecryptedFileProviderCleanupReceiver to clean up temp files on screen off 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
e102a1d474 introduce FileProviderInterface, specialize K9FileProvider for decrypted 2016-07-06 21:48:38 +02:00
Vincent Breitmoser
36a3a8bb20 rename DecryptedStreamParser and DecryptedTempFileBody 2016-07-06 21:48:38 +02:00
cketti
1d471a8633 Rename method for consistency 2016-07-06 21:25:20 +02:00
Vincent Breitmoser
cd4be0e466 fix translation issues 2016-07-05 12:05:18 +02:00
cketti
202595c605 Make 'notify for contact only' setting available for import/export 2016-07-05 01:40:51 +02:00
cketti
ee8dd311df Pass Contacts via constructor into MessagingController 2016-07-05 01:34:40 +02:00
cketti
1d2509e98f Change wording in settings screen 2016-07-05 01:27:28 +02:00
Christian Grubert
e2e3da262c new option: just show notification for contacts 2016-07-05 01:25:08 +02:00
Vincent Breitmoser
4d3bc41c0a unfold+decode header value in getContentType() and getDisposition() 2016-07-01 18:40:48 +02:00
Vincent Breitmoser
1c8a6f05d0 make Attachment class immutable 2016-07-01 18:40:48 +02:00
Vincent Breitmoser
099d03f46a compose: extract AttachmentPresenter 2016-07-01 18:40:48 +02:00
Vincent Breitmoser
b4bd645eaa fix copy paste string error 2016-06-30 11:21:29 +02:00
Vincent Breitmoser
84c0e4c730 improve variable naming and some magic constants 2016-06-30 11:11:15 +02:00
Vincent Breitmoser
1bae68169f messageview: move more control flow for display of crypto data into MessageCryptoPresenter 2016-06-30 11:11:15 +02:00
Vincent Breitmoser
fccb4a4b24 messageview: simplify handling of external pictures, ditch ShowPicturesController 2016-06-30 11:11:15 +02:00
Vincent Breitmoser
b5b603001b messageview: move setShowDownloadButton into setMessage 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
f6f4805076 messageview: move MessageCryptoMvpView into a var instead of implementing directly 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
837aa70486 messageview: match signature user id with sender address 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
2e9184f8e2 compose: use MessageLoaderHelper for quoted message loading (fixes MessageCompose) 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
b72dba67df messageview: move all loading logic into MessageLoaderHelper (breaks MessageCompose) 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
0df44a1457 messageview: strip pgp markers for partially downloaded clearsigned messages before view 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
58daf68503 messageview: handle crypto error states 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
c12ce95941 messageview: add "View Key" button to crypto info dialog 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
675b167320 messageview: retain MessageCryptoHelper over configuration changes 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
573bfc4b59 messageview: make MessageCryptoHelper detachable 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
68e31a985f messageview: cancel operation when fragment is destroyed 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
9b1e51c559 messageview: draw progress bar while crypto is processing 2016-06-30 11:08:44 +02:00
Vincent Breitmoser
293e23d04a messageview: display support for encapsulated signed parts 2016-06-30 11:01:05 +02:00
Vincent Breitmoser
c640e4a680 messageview: display unsigned text in additional textview 2016-06-30 11:01:05 +02:00
Vincent Breitmoser
61232cb631 messageview: display unsigned attachments in LockedAttachmentView 2016-06-30 11:00:00 +02:00
Vincent Breitmoser
d98f579b34 messageview: move some logic into MessageCryptoPresenter, refresh after key import (solves #732) 2016-06-30 10:59:19 +02:00
Vincent Breitmoser
4da1a01130 messageview: add crypto info dialog 2016-06-30 10:59:19 +02:00
Vincent Breitmoser
d92155e2b5 messageview: show crypto status icon in header 2016-06-30 10:59:19 +02:00
Vincent Breitmoser
8f568867a6 messageview: remove all openpgp info in message view 2016-06-30 10:59:19 +02:00
Vincent Breitmoser
6371cde568 messageview: nicer handling of pendingintent in MessageList and MessageCryptoHelper 2016-06-30 10:49:05 +02:00
Vincent Breitmoser
b0b269a736 messageview: add canceled CryptoError state
Conflicts:
	k9mail/src/main/java/com/fsck/k9/ui/crypto/MessageCryptoHelper.java
	k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageTopView.java
2016-06-30 10:49:05 +02:00
Vincent Breitmoser
b57ef10e90 messageview: add support for encapsulated signed parts (fixes #576) 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
6ceec725cb messageview: use memory-backed body for decrpyted parts which are small and not attachments 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
a55db0f3cf messageview: start parsing input only if it's not immediate EOF or EPIPE 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
04e17564a8 messageview: add logic for display of crypto progress 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
0402eda968 messageview: use OpenPgpDataSink and -Source for threads (contains api-lib update) 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
240c5c8ea8 messageview: support mutt's application/pgp mimetype for pgp/inline messages (fixes #1271) 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
8f04d60249 messageview: for pgp/inline, only check BEGIN PGP MESSAGE marker 2016-06-30 10:49:04 +02:00
Vincent Breitmoser
b73805c598 first steps towards primary-part-centered MessageViewInfo structure
This most importantly means moving away from the find*Parts family of
methods in MessageDecryptVerifier. at the moment, the initial detection
of parts to process in MessageCryptoHelper still uses the old methods,
which are strictly more inclusive about what is processed.
2016-06-30 10:49:04 +02:00
Vincent Breitmoser
43efd6db0b add some unit tests to MessageDecryptVerifier 2016-06-30 10:25:26 +02:00
Vincent Breitmoser
7305a20b8b messageview: handling for unsupported multipart/(signed|encrypted) 2016-06-30 10:25:26 +02:00
Vincent Breitmoser
e71cff565e messageview: ditch support for multiple root parts with different crypto status 2016-06-30 10:25:26 +02:00
cketti
9d1970d79f Merge pull request #1465 from k9mail/extract-webview-resource-handling
Encapsulate attachment resource handling into AttachmentResolver
2016-06-30 03:58:47 +02:00
Vincent Breitmoser
2c4f698192 split up displayHtmlContentWithInlineAttachments into set, clear and refresh methods 2016-06-28 10:59:27 +02:00
cketti
dca9d20f99 Merge pull request #1416 from k9mail/messageview-fix-flicker
Fix flicker of subject line in MessageHeader
2016-06-28 04:02:33 +02:00
cketti
2f4d0a8204 Merge pull request #1459 from k9mail/fix-hidden-attachments
Don't rely on cached metadata from database for attachment info
2016-06-28 04:01:37 +02:00
cketti
6f46a53861 Merge pull request #1424 from OllieTerrance-forks/outlook-uk-providers
Add UK variants of Hotmail addresses to providers
2016-06-28 03:25:18 +02:00
Vincent Breitmoser
c2bb16a760 Encapsulate attachment resource handling into AttachmentResourceProvider
This commit introduces the AttachmentResourceProvider as a layer of
abstraction between K9WebViewClient and the message Part structure,
which allows moving all K9WebViewClient handling into MessageWebView
itself (making the class package-local).

It also fixes display of uncached inline attachments, e.g. in a Forward
operation called from the context menu.
2016-06-23 20:25:00 +02:00
Vincent Breitmoser
8f4ac55d6c don't rely on cached metadata from database for attachment info
This commit removes use of LocalFolder.MessagePartType as an indication
of part types in AttachmentInfoExtractor. The enum was intended as a
caching mechanism to skip loading unimportant parts from the database,
but only the reading side was implemented. As the expected performance
gain is negligible, I disabled the reading side for now (computing the
data instead) and more explicitly disabled the writing side as well.
2016-06-13 17:11:47 +02:00
Philip Whitehouse
b7c3e5296b Update web page URL to GitHub website 2016-06-06 16:28:04 +01:00
Ollie Terrance
7651fe02e7 Add UK variants of Hotmail addresses to providers 2016-06-02 18:37:17 +01:00
Vincent Breitmoser
27a3add959 fix flicker of subject line in MessageHeader
MessageHeader rendered the subject line by default, and only after
MessageTitleView decided it was large enough to display the entire
subject line, the subject line was hidden again. This caused a noticable
flicker during message rendering while navigating with next/previous
message buttons.

This commit flips the logic, only displaying the subject view once the
title view finds it can't display it all.
2016-05-28 22:44:38 +02:00
Vincent Breitmoser
59a818490f do not purge messages when downloading missing body for view 2016-05-25 16:32:42 +02:00
Vincent Breitmoser
f0e64a33a4 drop message_parts table before creation in dbCreateDatabaseFromScratch 2016-05-23 21:53:38 +02:00
cketti
2ccbf581ab Version 5.109 2016-05-21 06:37:29 +02:00
cketti
1eb0ef4a6b Merge pull request #1390
Fix reply to all, and some refactorings for initFromReplyTo
2016-05-21 00:00:37 +02:00
cketti
3762e1561f Only test one thing per test method 2016-05-20 23:55:45 +02:00
cketti
56e8fc1d77 Remove redundant checks and ones that make tests needlessly brittle 2016-05-20 23:52:21 +02:00
cketti
7e829bbfb7 Fix test instead of adding null check to ListHeaders 2016-05-20 23:39:55 +02:00
Vincent Breitmoser
43899da77c same signature to get replyTo and replyToAll addresses in ReplyToParser 2016-05-20 11:26:13 +02:00
Vincent Breitmoser
9a1dcd5a83 debug: add debug operation to clear a message locally 2016-05-19 22:37:48 +02:00
Vincent Breitmoser
31f6deb474 small performance optimizations 2016-05-19 15:49:33 +02:00
cketti
120c72a0fc Merge pull request #1386 from k9mail/download-messagebody
Fetch message on view if body unavailable
2016-05-19 15:18:31 +02:00
Vincent Breitmoser
e3593a14bf ensure that multipart/* parts always have a non-null boundary field 2016-05-19 14:56:40 +02:00
cketti
f4628d2a24 Merge pull request #1383 from k9mail/fts-fix
fts: more resource friendly migration
2016-05-19 14:53:15 +02:00
cketti
af0c8aab75 Merge pull request #1337 from k9mail/webDavPollingFix
WebDav polling fix
2016-05-19 14:51:31 +02:00
Vincent Breitmoser
8de494412e messageview: refactor OpenPgpResultAnnotation into immutable CryptoResultAnnotation 2016-05-19 14:27:58 +02:00
Vincent Breitmoser
e002451296 move ViewableContainer into MessageViewInfoExtractor 2016-05-19 14:27:58 +02:00
Vincent Breitmoser
e57c82238d some refactorings for Message*Extractor classes
This commit contains no semantic changes. One significant change is the
return type of MessageExtractor.findViewablesAndAttachments, which was
changed from a mixed return type (viewables as return value, attachments
as output parameter) to two output parameters, both for consistency and
performance.
2016-05-19 14:27:55 +02:00
Vincent Breitmoser
fb6816173c get rid of deprecated PgpData class 2016-05-19 14:13:29 +02:00
cketti
7e82e38247 Merge pull request #1380
Different fix for decrypted part double decode problem
2016-05-19 14:06:38 +02:00
cketti
2ee7f29b95 Remove unused imports 2016-05-19 14:05:43 +02:00
Vincent Breitmoser
3de2360a43 inject ReplyToParser and test for use in initFromReplyTo 2016-05-17 16:39:27 +02:00
Vincent Breitmoser
f85bef1261 move reply to all logic into ReplyToParser and add tests 2016-05-17 16:00:40 +02:00
Vincent Breitmoser
4c6bc1a81b compose: copy other to and and cc addresses only on reply all 2016-05-17 15:52:19 +02:00
Vincent Breitmoser
8d631fd905 compose: small refactorings for readability in RecipientPresenter 2016-05-17 15:52:16 +02:00
Vincent Breitmoser
2811b09da2 messageview: fetch message on view if body is not available 2016-05-16 23:22:03 +02:00
Vincent Breitmoser
7644abb142 messagingcontroller: optimize imports, remove unused parameter 2016-05-16 23:22:03 +02:00
Vincent Breitmoser
a2a4f59bb0 messagingcontroller: fix loadPartialForSearch parameter in loadMessageForRemoteView 2016-05-16 23:21:57 +02:00
Vincent Breitmoser
7614c8fd5e make DecryptedTempFileBody a Body instead of RawDataBody (fixes #1252) 2016-05-15 10:35:54 +02:00
Vincent Breitmoser
9d3a735cea fts: more resource friendly migration 2016-05-13 16:29:05 +02:00
Vincent
94b9da3d16 Merge pull request #1331 from k9mail/compose-mime-combined
PGP/INLINE and build in combined mime format
2016-05-13 14:44:40 +02:00
Vincent Breitmoser
36f890f436 Revert "fix double application of transfer decoding for decrypted parts"
This reverts commit e3cd40ea4e.
See https://github.com/k9mail/k-9/issues/1252
2016-05-13 11:05:12 +02:00
Vincent Breitmoser
e3cd40ea4e fix double application of transfer decoding for decrypted parts 2016-05-12 17:55:16 +02:00
Vincent Breitmoser
f0d09b91a9 clarify code for LocalMessage.equals() 2016-05-11 11:42:22 +02:00
Vincent Breitmoser
3a5d9b71a4 compose: move bullet point appearance into styles, and tintColor into theme 2016-05-09 10:11:09 +02:00
Vincent Breitmoser
7e8e82f200 remove "this is a bug" from some AssertionErrors 2016-05-09 09:54:07 +02:00
cketti
1f9cd50076 Use constructor injection for ComposePgpInlineDecider 2016-05-09 09:54:07 +02:00
cketti
287b649ed4 Remove unnecessary complexity 2016-05-09 09:54:06 +02:00
Vincent Breitmoser
b6cd69f247 compose: check that message is simple before applying PGP/INLINE encoding 2016-05-09 09:54:06 +02:00
Vincent Breitmoser
b6f540bfd9 compose: apply transfer encoding *after* PGP/INLINE signing 2016-05-09 09:54:06 +02:00
Vincent Breitmoser
8a58398cb8 add first tests for MessageBuilder 2016-05-09 09:54:06 +02:00