Commit graph

447 commits

Author SHA1 Message Date
Vincent Breitmoser
c96ced3bc3 drop specialized MessageCryptoStatusView
This was introduced when the crypto icon was combined from an icon and
dots. That's no longer the case, so we can simplify.
2018-12-03 04:34:32 +01:00
Vincent Breitmoser
a592b0dfba add reply button to message header 2018-12-03 04:34:31 +01:00
cketti
b503e1eeb1 Add "empty trash" action to MessageList activity 2018-12-03 04:18:19 +01:00
Marc K
ecd3238dd1 Update drawer when re-opened via intent (#3765)
Fixes #3764
2018-12-03 04:04:16 +01:00
cketti
1552c151a5
Merge pull request #3785 from wiktor-k/fix-notifications
Fix NPE when accessing settings screens
2018-12-02 18:25:12 +01:00
cketti
8f699ee542
Merge pull request #3771 from wiktor-k/app-compat-fixes
Add ActionBars to activities extending K9PreferenceActivity
2018-12-02 18:08:22 +01:00
Wiktor Kwapisiewicz
5c2bb43844
Fix NPE when accessing settings screens
Previous PR did not check if preferences to be removed exist on the
current screen and failed when the current screen was not the
notification settings.

Fixes #3782.
2018-12-02 17:50:46 +01:00
Oji Ofong
c3fcf5986d Change mail sync to work with background execution limits 2018-12-02 08:52:46 -05:00
Meteor0id
aa8621cc58 Attempt to order menu items similar across views (#3511) 2018-12-02 02:24:28 +01:00
Wiktor Kwapisiewicz
e757e59156
Hide built-in notification settings on Android O
Resolves #3722.
2018-12-01 21:05:05 +01:00
Wiktor Kwapisiewicz
d9ddba4e60 Add an item that opens system notification settings
This item is displayed only on Oreo or higher and is hidden in previous
versions of Android.
2018-12-01 21:04:39 +01:00
Wiktor Kwapisiewicz
4578863118
Convert PreferenceScreens to Categories
Nested PreferenceScreens do not get the AppCompat Action Bar.
Converting them to categories works-around the issue.

Resolves #3753.
2018-11-30 13:27:36 +01:00
Wiktor Kwapisiewicz
3caa56a57e Add Action Bars to Preference activities 2018-11-30 13:26:11 +01:00
Khyojung
5a00c3b3fd add padding of user email in creation UI 2018-11-30 15:40:38 +09:00
cketti
bb6427cec0
Merge pull request #3744 from k9mail/dumb-account-1
Move logic out of Account class (1)
2018-11-30 01:45:53 +01:00
cketti
55746ea3ff
Merge pull request #3760 from sgomin/master
Optionally enable web cache
2018-11-29 23:30:54 +01:00
Stan Gomin
959b022ee2 Enabling Web cache unconditionally 2018-11-30 09:05:36 +11:00
Vincent Breitmoser
47767b9e3f small code cleanup 2018-11-29 18:23:30 +01:00
Vincent Breitmoser
583c5b0432 extract Account.getLocalStore into LocalStoreProvider 2018-11-29 18:22:12 +01:00
Vincent Breitmoser
a42d1111ae move extensive setter logic out of Account into saveAccount() 2018-11-29 18:22:12 +01:00
Vincent Breitmoser
6276450c65 move loadAccount logic into AccountPreferenceSerializer 2018-11-29 18:22:12 +01:00
Vincent Breitmoser
86bc5ed823 extract "save" method from Account (and fix unit tests) 2018-11-29 18:19:07 +01:00
Vincent Breitmoser
6c71b13e9b extract move methods from Account 2018-11-29 18:19:07 +01:00
Vincent Breitmoser
912b5d70a4 extract AccountSearchConditions and LocalKeyStoreManager from Account 2018-11-29 18:19:07 +01:00
Vincent Breitmoser
7819045e1b Extract deletion and saving of accounts into AccountManager 2018-11-29 18:19:07 +01:00
Vincent Breitmoser
213646d56c rename _is-reply attribute to _is-reply-to-encrypted
as per dkg's comment in https://github.com/autocrypt/autocrypt/pull/376#discussion_r194886487
2018-11-29 14:05:46 +01:00
Vincent Breitmoser
29874cf99f add unit tests for draft state header 2018-11-29 14:00:46 +01:00
Vincent Breitmoser
4c295e2f1b use @JvmStatic instead of Companion reference, code style 2018-11-29 13:56:03 +01:00
Vincent Breitmoser
825f06b1f3 fix unit tests 2018-11-29 13:56:03 +01:00
Vincent Breitmoser
7040f855a5 save plaintext subject for encrypted drafts 2018-11-29 13:56:03 +01:00
Vincent Breitmoser
d0e588fb9f Save draft state in message header for now
Apparently, storing the draft state header in the encrypted payload
introduces difficulties in Enigmail due to restrictions from
Thunderbird. To stay compatible, this commit keeps the draft state in
the outer header for now, but we should move it into the encrypted
payload if the issue with Thunderbird is somehow resolved.

see: https://github.com/autocrypt/autocrypt/pull/376#issuecomment-384293480
2018-11-29 13:56:03 +01:00
Vincent Breitmoser
39a732d0c3 Honor encrypt all drafts setting during message compose 2018-11-29 13:56:03 +01:00
Vincent Breitmoser
18ad00790a Add setting to store all drafts encrypted 2018-11-29 13:56:03 +01:00
Vincent Breitmoser
f9527b9e67 allow building drafts with no recipients in PgpMessageBuilder 2018-11-28 12:23:33 +01:00
Vincent Breitmoser
6a19eb3d3a convert ComposeCryptoStatus to kotlin 2018-11-28 12:23:33 +01:00
Vincent Breitmoser
e1015d325b Load draft state from AutocryptDraftState header 2018-11-28 12:23:32 +01:00
Vincent Breitmoser
07b272a161 Add Autocrypt-Draft-State header to saved drafts 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
47451c89fe Enable encryption if editing an encrypted draft
This commit is a hack. It assumes that if a draft is encrypted, the user
chose to encrypt at some point and sets the status based on that
assumption. This is only an assumption though, which becomes a problem
e.g. if some other MUA encrypts all drafts. At some point we should
remember the actual user choice.
2018-11-28 12:22:51 +01:00
Vincent Breitmoser
74a7094944 Move K9-Identity header into encrypted body for encrypted drafts 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
108db7e8a4 Load draft text from correct part 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
d55be9edc4 Encrypt drafts to self 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
0455157eb7
Merge pull request #3632 from GoneUp/runtime_contacts
Runtime permissions for contacts
2018-11-28 10:56:27 +01:00
Vincent Breitmoser
94585ffd93
Merge pull request #3745 from morckx/add-accounts-header-to-drawer
Add accounts header to the drawer
2018-11-28 10:51:45 +01:00
cketti
1da164bed4 Code style cleanup 2018-11-28 05:16:01 +01:00
cketti
c76d85adde Use request permission rationale mechanism instead of showing toast 2018-11-28 05:16:01 +01:00
cketti
4a79664139 Move common permissions code to K9Activity 2018-11-28 04:26:05 +01:00
cketti
9cc5b0f179 Don't request permission when recreating Activity from saved state 2018-11-28 03:15:56 +01:00
hstrobel
40143ae207 Addressed Review feedback, extracted EmptyCursor to a own class to reduce duplicated code 2018-11-28 01:24:09 +01:00
hstrobel
72c3ac5ad0 Addressed Review feedback 2018-11-27 23:16:37 +01:00
Henry
455228f182 Added mime4j-dom dependency in app:ui to make sure the package is available. Without it DefaultAddressParser is not found in the RecipentLoaderTest even though the dependecy is declared in common. Looks like a gradle bug to me. 2018-11-27 23:16:37 +01:00
GoneUp
249512e367 Implements runtime permissions for contacts, rebase of #3176
A thing to note is that the permission request will only show up when the targetsdk is upped >23.

Old commit message that explains the change:
--
The approach was to make it so that any K9Activity can easily request
whatever permission in the future.

The Contacts permission is now requested in two locations:

1.  When a list of Messages is displayed
2.  When a new message is first started to be composed.

The permission request is displayed ONCE per onCreate(). Any more than this
and it got really annoying.  A typical user who reads or writes emails
WILL see the request, trust me.  Once they see the message 2x, they
also have the option to block the requests from appearing.

If they DECLINE the request (or decline + DENY any further attempts),
the app should continues to work, albeit without incorporating contact data
(thumbnails, autocomplete, etc.). Contacts may still be added to the
Contacts app, as this uses an Intent and does not require any permission.

Once the Read Contacts permission is enabled, the app immediately begins
to use it.

To add other permissions in the future (such as External Storage access),
the request can be made in a similar way and the permission request result
handled appropriately by just adding it to K9Activity (or overriding in
a particular Activity).
2018-11-27 23:16:36 +01:00
Marc K
e9d3c14ff8 Add a tinted background image to the drawer account header
... using the configured account color as tint color.

Thanks @ByteHamster
2018-11-27 21:19:24 +01:00
morckx
269656dbe3 Render message lists in the background after account switch 2018-11-26 23:53:56 +01:00
morckx
cced6e34f2 Move openRealAccount from Accounts to MessageList 2018-11-26 23:13:05 +01:00
morckx
455b0f2c6c Make MessageListViewModel.getFolders aware of account switches 2018-11-25 10:50:07 +01:00
morckx
63154d0602 Remove more leftovers 2018-11-25 10:41:11 +01:00
morckx
e5fbedb541 Don't forget to set the photo icon 2018-11-25 00:08:44 +01:00
morckx
98d92d9cf2 Use contact photos as account icons 2018-11-24 23:58:10 +01:00
morckx
f11d0e47ec Fix account selection and folder list not beeing updated 2018-11-24 23:51:02 +01:00
morckx
a5196ed2f6 Clean up leftovers 2018-11-24 23:51:02 +01:00
cketti
7736d3610e
Merge pull request #3643 from williamvds/master
Use an adaptive icon
2018-11-24 18:33:26 +01:00
cketti
f3686a3ff3
Merge pull request #3740 from morckx/fix-uninitialized-drawer-use
Don't try to operate on an uninitialized drawer
2018-11-24 18:25:18 +01:00
morckx
830535081a Use font awesome icon also also for normal account 2018-11-24 13:59:26 +01:00
morckx
ef5cbfb1ec Use faw-users icon for unified inbox in accounts header 2018-11-24 13:59:26 +01:00
morckx
e8e03b1635 Show detailed unified inbox description in accounts drawer header 2018-11-24 12:22:06 +01:00
Marc K
1e4c7510a6 Add accounts header to the drawer 2018-11-23 22:17:34 +01:00
morckx
ed7ca86b04 Don't forget to set actionBarSubTitle visibility when drawer is null 2018-11-23 21:26:37 +01:00
Vincent Breitmoser
33261885e9
Merge pull request #3742 from k9mail/selectableItemBackground
use native selectableItemBackground
2018-11-23 15:44:09 +01:00
Vincent Breitmoser
88a3167b25 use native selectableItemBackground 2018-11-23 15:42:23 +01:00
Marc K
7f8894c8f9 Don't try to operate on an uninitialized drawer
This is necessary whenever the account list is configured as default
starting view.

Fixes #3716
2018-11-22 12:14:05 +01:00
Vincent Breitmoser
81f496b7f3 Refresh OpenPGP provider setting onResume, and small cosmetic changes 2018-11-21 14:25:34 +01:00
Wiktor Kwapisiewicz
54d71ac54a
Remove partially constructed accounts on resume
Resuming account setup activity when the account has been partially
constructed (the setup has not been finished) resulted in having unsaved
account with ID = -1 in the accounts list. The application would then on
resume proceed to messages list but there won't be any folders as the
setup has been aborted.

The fix clears the list of accounts on resume and create so that the
application properly reacts to the event of no setup accounts.

Fixes #3717.
2018-11-20 15:10:06 +01:00
cketti
f168985b0b
Merge pull request #3709 from k9mail/automatic_special_folder_selection
Automatic special folder selection
2018-11-19 15:47:01 +01:00
cketti
c7a7bbfc8c Extract strings 2018-11-14 03:32:26 +01:00
cketti
05c091212c Rename NotificationChannelUtils to NotificationChannelManager 2018-11-14 02:30:55 +01:00
cketti
5e00abfaac Add support for SpecialFolderSelection to FolderListPreference 2018-11-13 20:38:45 +01:00
cketti
a519c91b64 Add SpecialFolderSelection to Account 2018-11-13 20:38:45 +01:00
cketti
fa1d6aab18 Remove EXTRA_SHOW_FOLDER_NONE from ChooseFolder 2018-11-11 23:28:41 +01:00
cketti
a1b48780fd Use null instead of special folder value K9.FOLDER_NONE ("-NONE-") 2018-11-11 23:28:41 +01:00
cketti
fe8d01dc32
Merge pull request #3699 from ojiofong/oji-notification-channel-from-ByteHamster
Add support for notification channels
2018-11-11 17:18:33 +01:00
Oji Ofong
a1b3cc8f1f Improve notification channel 2018-11-10 09:40:46 -05:00
cketti
9711b42412 Remove unused Folder.FolderType 2018-11-09 14:19:36 +01:00
ByteHamster
222fc0dcf8 Notification channels 2018-11-07 22:08:55 -05:00
williamvds
88475015ef
Provide adaptive icons 2018-11-04 14:50:14 +00:00
williamvds
424b71cdfc
Move app icons to mipmap directories 2018-11-03 14:02:39 +00:00
cketti
acf6e7c041
Merge pull request #3623 from ByteHamster/main-settings-page
Added icons to main settings screen
2018-11-01 04:20:50 +01:00
ByteHamster
23d0ab78cb Added icons to main settings 2018-11-01 04:08:35 +01:00
cketti
63b3379e5d Use TextQuoteCreator instances instead of static method 2018-10-25 01:41:00 +02:00
cketti
224174273c
Merge pull request #3650 from williamvds/drawer
Add preferences and unified inbox to drawer
2018-10-24 03:27:27 +02:00
cketti
387a668857 Fix item selection in drawer 2018-10-24 03:14:02 +02:00
cketti
a6040a90fc Don't mutate list of folders being passed to K9Drawer
When the same list is passed in again it will be reversed another time
and folders show up in the wrong order. This happens e.g. on orientation
changes.
2018-10-24 02:56:42 +02:00
cketti
edef1e16b5 Code cleanup and variable/field renaming 2018-10-24 02:52:06 +02:00
williamvds
02b253b0f1
Detect and select unified inbox in drawer 2018-10-21 13:31:58 +01:00
williamvds
58598c07cc
Add unified inbox to drawer 2018-10-21 13:09:00 +01:00
williamvds
e5a9580551
Add Settings to drawer 2018-10-21 11:18:56 +01:00
williamvds
d6daea3c12
Move drawer logic from MessageList into K9Drawer 2018-10-21 11:03:10 +01:00
cketti
a8d14c1dc7 Code cleanup 2018-10-18 22:01:10 +02:00
ByteHamster
b2c232e40a Search function for general settings 2018-10-18 20:57:43 +02:00
cketti
0351dc8694 Hide 'upload sent messages' setting when Backend doesn't support uploads 2018-09-04 18:05:03 +02:00
cketti
7af007ad2f Add setting to disable uploading of sent messages
Some providers automatically add messages sent via their outgoing
server to the Sent folder.
2018-09-04 18:05:03 +02:00
cketti
18bbd76783 Add a way to inject SchemaDefinition into LocalStore 2018-09-03 00:57:41 +02:00
cketti
24b2fbcc9d
Merge pull request #3592 from k9mail/remove_unnecessary_type_casts
[Cleanup] Remove unnecessary type casts
2018-09-03 00:42:39 +02:00
BO41
96be7af3f6 Remove unnecessary type casts 2018-09-03 00:31:12 +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
97c0d7d4e9
Merge pull request #3572 from k9mail/change_removed_broadcast
Don't broadcast message details when message was removed
2018-09-01 17:47:34 +02:00
cketti
9c9c9d475f Don't broadcast message details when message was removed
Turns out reading the message from the database after it has been
deleted doesn't work particularly well 🤦
2018-08-27 01:25:07 +02:00
cketti
721c97fe39 Make MessageLoaderHelper call callbacks on the main thread 2018-08-20 18:33:12 +02:00
M Madison Phillips
33e74567c5 Don't crash when MessageCompose is started with no account configured 2018-08-15 03:55:00 +02:00
cketti
da6eca639c Move file to correct location 2018-07-26 23:44:11 +02:00
cketti
9eefb0be40 Don't call Contacts.getPhotoUri() from main thread 2018-07-23 17:32:45 +02:00
cketti
79d6d79d1a Refactor ContactPictureLoader 2018-07-23 17:12:32 +02:00
cketti
e7bf621822 Get rid of FallbackGlideParams 2018-07-23 16:37:54 +02:00
cketti
f610be227b Add configured background color of fallback contact picture to cache key 2018-07-23 16:20:41 +02:00
cketti
dc785a8e92 Fix error handling when refreshing the folder list fails 2018-07-22 18:31:41 +02:00
cketti
4faf17fbf2 Use Koin for creating instances of ContactPictureLoader 2018-07-21 16:06:17 +02:00
cketti
9ada669e0b Convert ContactPictureLoader to Kotlin 2018-07-21 16:06:17 +02:00
cketti
2dd7d00f8d WIP: Renaming file 'ContactPictureLoader' with Kotlin extension 2018-07-21 16:06:17 +02:00
cketti
9f84e43541 Use Koin for dependency injection in contact picture loading classes 2018-07-21 16:06:17 +02:00
cketti
e814b5dca0 Extract code to draw fallback contact pictures to a separate class 2018-07-21 16:06:17 +02:00
cketti
c787845ebe Extract code to get a displayable contact letter to separate class 2018-07-21 16:06:17 +02:00
ByteHamster
4ecb0d14e4 Cache contact names 2018-07-19 16:21:01 +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
fe8477cd9b Make k9mail module specify which Backend implementations to include 2018-07-15 20:45:05 +02:00
cketti
ec9ba959f8 Remove TransportUris 2018-07-15 20:08:11 +02:00
cketti
e4b6175c45 Remove RemoteStoreManager 2018-07-15 18:36:49 +02:00
cketti
60bfe335aa Make Autocrypt code use MessagingController instead of TransportProvider
This also allows us to get rid of TransportProvider.
2018-07-11 20:15:00 +02:00
cketti
e2c09e4155 Make account setup code use Backend to check outgoing server settings 2018-07-11 19:57:51 +02:00
cketti
a63fcfd7fc Rename Backend.checkServerSettings() to checkIncomingServerSettings() 2018-07-11 19:45:18 +02:00
cketti
b6f59f40e1 Move erroneously moved XML resources from ui module back to core module 2018-07-08 18:36:37 +02:00
cketti
0d3bfe233b Move color resource from k9mail to ui module 2018-07-08 16:06:19 +02:00
cketti
87ac35ed68 Move unread widget styles to k9mail module 2018-07-08 16:06:19 +02:00
cketti
f6713ea55a Clean up modules' dependencies 2018-07-08 16:06:19 +02:00
cketti
f63b4097a1 Remove core module's dependency on HoloColorPicker 2018-07-08 16:06:19 +02:00
cketti
228bba0bf1 Move almost all Android resources from core module to ui module 2018-07-08 00:58:59 +02:00
cketti
408f725b61 Remove string references from SearchAccount 2018-07-07 19:09:31 +02:00
cketti
87d0e05a92 Move helper classes to ui module 2018-07-06 17:24:16 +02:00
cketti
548f908d7c Remove Android resource references from K9 2018-07-06 16:41:36 +02:00
cketti
de2b99a066 Remove all string references from Account 2018-07-06 02:02:57 +02:00
cketti
ae6c8edf01 Remove string references from Account.SortType 2018-07-05 22:57:45 +02:00
cketti
b46594fed4 Move UI code to ui module 2018-07-02 16:19:21 +02:00