Commit graph

544 commits

Author SHA1 Message Date
Wiktor Kwapisiewicz
6e2690a552
Fix crash of SettingsActivity on resume
`SettingsActivity#populateSettingsList` listens for changes in accounts
using `observeNotNull` that throws when a `null` value is assigned.

This change leaves the old value when `onInactive` is called.

See: https://github.com/k9mail/k-9/pull/3819#issuecomment-447523394
2018-12-15 11:42:14 +01:00
cketti
2798a13669 Remove storage permission 2018-12-14 01:59:52 +01:00
cketti
c2e80122f7 Use Storage Access Framework to save attachments 2018-12-14 01:44:13 +01:00
cketti
ffc69c9f34 Use DownloadManager to save linked images 2018-12-14 01:14:51 +01:00
cketti
a3735c671d Remove attachment default path setting 2018-12-14 01:05:29 +01:00
cketti
57ebf05b63 Always ask for the storage location when saving an attachment 2018-12-14 00:55:06 +01:00
cketti
796738db57 Remove "Save attachments to…" from general settings 2018-12-14 00:37:17 +01:00
cketti
ae2f831b7d
Merge pull request #3806 from k9mail/outbox_state
Persist send error state
2018-12-13 22:58:17 +01:00
cketti
6a408df8fe Properly delete message after sending (destroy) 2018-12-13 19:59:53 +01:00
cketti
6f49b97514 Don't move message that failed to send to Drafts folder 2018-12-13 19:59:52 +01:00
cketti
e5025e1ab8 Use 'outbox_state' table for send error handling 2018-12-13 19:59:52 +01:00
cketti
03f0fa9f0f Add 'outbox_state' table to database 2018-12-13 19:59:52 +01:00
Wiktor Kwapisiewicz
cad4cac6df
Fix consistent crashes when using dark theme
Commit 212f36170 moved dark theme's parent to
Theme.AppCompat.NoActionBar but the theme file for v21 was not updated.
This caused IllegalStateException to be thrown when constructing
K9Activities when dark theme has been selected.

The fix corrects the parent value.
2018-12-12 21:50:13 +01:00
Vincent Breitmoser
ecfbbca9d9
Merge pull request #3814 from wiktor-k/fix-missing-subject
Fix subject being overwritten with `null`
2018-12-12 12:52:58 +01:00
Vincent Breitmoser
ac8fe9dbe7
Merge pull request #3790 from k9mail/accounts-listener
add AccountsChangeListener to Preferences
2018-12-12 12:42:09 +01:00
Vincent Breitmoser
099e13f0c4
Merge pull request #3800 from k9mail/manage-folders-item
add "Manage folders" item to drawer footer
2018-12-12 11:43:42 +01:00
Wiktor Kwapisiewicz
314cb93d2b
Fix subject being overwritten with null
Not using crypto-provider passes `null` as `plaintextSubject`.
`saveDraft` already has protection against overwriting subject with `null`.
This change adds the same check to `sendMessage`.

Fixes #3811.
2018-12-11 12:23:11 +01:00
Vincent Breitmoser
037b19d7ce
Merge pull request #3807 from k9mail/message_list_title
Remove custom view in MessageList toolbar
2018-12-10 19:11:49 +01:00
Vincent Breitmoser
214580a2ec reload account onActive 2018-12-10 18:54:27 +01:00
Vincent Breitmoser
012742787e synchronized Preferences with a lock object 2018-12-10 18:43:22 +01:00
Vincent Breitmoser
e7d6f85e66 add AccountsChangeListener to Preferences 2018-12-10 18:13:34 +01:00
Vincent Breitmoser
216d51a069 StorageEditor: add test 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
474610139f StoagePersister: add test 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
342048e961 StoragePerister: use statement for delete, drop intermediate map 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
40b4ebbc8e add unit test for Storage 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
9c6952275a Storage may still be written to and read from concurrently 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
75c4b9ff73 revert accidental changes 2018-12-10 13:06:52 +01:00
Vincent Breitmoser
f7faccf5d9 extract persistence logic from Storage into StoragePersister 2018-12-10 13:06:52 +01:00
cketti
2f80530b2d Use FolderNameFormatter to get display names for folders 2018-12-08 23:23:13 +01:00
cketti
958c3cf29c Remove custom actionbar view 2018-12-08 23:23:06 +01:00
cketti
3c16d2caed Fix empty view handling in K9ListActivity 2018-12-08 22:37:55 +01:00
cketti
227972ffde Fix layouts 2018-12-08 22:00:06 +01:00
ByteHamster
212f36170f Switch to Toolbar
This allows to show the sidebar above the ActionBar.
2018-12-08 21:59:22 +01:00
cketti
8b676343a4 Make MessagingController.checkMailBlocking() actually terminate 2018-12-06 23:34:51 +01:00
cketti
2f8778be33
Merge pull request #3763 from ojiofong/oji_mail_sync
Change mail sync to work with background execution limits
2018-12-06 19:57:00 +01:00
cketti
fa3458f920 Make mail check blocking when called from MailSyncJob 2018-12-06 19:45:11 +01:00
cketti
c555790ca3
Merge pull request #3798 from k9mail/helo-ip
Always send IP instead of hostname in HELO/EHLO
2018-12-06 04:02:59 +01:00
Vincent Breitmoser
c3c7593458 add "Manage folders" item to drawer footer
part of #3750
2018-12-05 16:47:27 +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
cketti
48ef5e43b7
Merge pull request #3769 from Khyojung/khyojung
Add padding between labels and input fields in message composition screen

Fixes #3768
2018-12-04 21:59:24 +01:00
cketti
6bb9f844e9 Add padding between labels and input fields in message composition screen 2018-12-04 21:47:14 +01:00
H. Lehmann
03907d8861 Add icons to account settings screen (#3792) 2018-12-04 21:37:31 +01:00
Oji Ofong
49917278de Resolve scheduled job issues 2018-12-04 13:42:22 -05:00
Vincent Breitmoser
8b3d51686a
Merge pull request #3788 from k9mail/empty_trash
Add "empty trash" action to MessageList activity
2018-12-03 20:09:39 +01:00
Vincent Breitmoser
62411ace05 Fix assigning account number when Account is first saved (fixes #3787) 2018-12-03 14:12:25 +01:00
cketti
e18c9167fd Hide crypto indicator in initial message header layout 2018-12-03 05:17:45 +01:00
Vincent Breitmoser
7e47519223 adjust mark as read/unread icon according to read status 2018-12-03 04:34:32 +01:00
Vincent Breitmoser
41c4f02a44 move star and crypto status next to subject 2018-12-03 04:34:32 +01:00
Vincent Breitmoser
ee44e03b43 display subject inline 2018-12-03 04:34:32 +01:00
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
Vincent Breitmoser
e6e0d7c1c2
Merge pull request #3772 from k9mail/cleanup-localkeystore
Clean up LocalKeyStore and related
2018-12-02 05:08:03 +01: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
Vincent Breitmoser
5ead340cde more clearly use getExternalFilesDir in ExternalStorageProvider 2018-12-01 14:10:22 +01:00
Vincent Breitmoser
df85d7b0f3 Clean up TrustManager, KeyStore and SocketFactory use 2018-11-30 15:47:57 +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
3e5c9a9616 slight cleanup in AccountSearchConditions 2018-11-29 18:37:26 +01: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
4a386b6c9b extract setup of default values from Account 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
cd01aec9d8 rename AccountManager to AccountPreferenceSerializer, move more things out of 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
David Hoppenbrouwers
0f33a43a8c Added colored chip in Unified Inbox widget items (#3759)
Add colored chip in Unified Inbox widget items
2018-11-29 17:15:01 +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
d0a1535547 only add draft header to drafts 2018-11-29 13:56:03 +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
f7fb48f53f Disable payload header mechanisms for pgp/inline mails 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
10875134f4 Always use PGP/MIME for drafts 2018-11-28 12:22:51 +01:00
Vincent Breitmoser
d7649a4391 Use \Draft flag to find if message is a draft 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
0c911dbac3 Increase targetSdkVersion to 23 2018-11-28 05:16:01 +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
Vincent Breitmoser
04c88b6cda
Merge pull request #3736 from k9mail/fix-set-openpgp-provider
Refresh OpenPGP provider setting onResume
2018-11-22 12:22:05 +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
683b7d6eaf
Merge pull request #3733 from k9mail/fix_folder_extra_values
Fix reading/writing values from/to folder_extra_values
2018-11-21 16:29:20 +01:00
Vincent Breitmoser
81f496b7f3 Refresh OpenPGP provider setting onResume, and small cosmetic changes 2018-11-21 14:25:34 +01:00
Vincent Breitmoser
0f7d0963f5
Merge pull request #3734 from k9mail/fix_expunge_message
Only try to expunge a message if the Backend supports it
2018-11-21 10:29:19 +01:00
Vincent Breitmoser
8df62f136d
Merge pull request #3730 from wiktor-k/remove-unsaved-accounts
Remove partially constructed accounts on resume
2018-11-21 10:28:58 +01:00
cketti
ff5d3f3d06 Fix reading/writing values from/to folder_extra_values 2018-11-21 02:36:44 +01:00
cketti
e79766b871 Only try to expunge a message if the Backend supports it 2018-11-21 02:35:18 +01:00
cketti
0d6634d5b5 Allow intermediate states where there's no Inbox folder 2018-11-20 21:17:05 +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
d5596f7565 Remove checked exceptions from LocalSearch and ConditionsTreeNode 2018-11-17 01:50:03 +01:00
cketti
c7a7bbfc8c Extract strings 2018-11-14 03:32:26 +01:00
cketti
ab192ece8a Pass in dependencies via constructor 2018-11-14 02:44:34 +01:00
cketti
05c091212c Rename NotificationChannelUtils to NotificationChannelManager 2018-11-14 02:30:55 +01:00
cketti
eeb545dc3d Add support for importing/exporting SpecialFolderSelection 2018-11-14 00:25:23 +01:00
cketti
7680a1ac70 Always show special folders at the top of the folder list 2018-11-13 20:38:46 +01:00
cketti
72a664458e Remove StoreConfig.set*Folder() 2018-11-13 20:38:46 +01:00
cketti
5cd28280ca Update special folders when folders change on server 2018-11-13 20:38:45 +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
4847c0fa31 Add FolderType support to (K9)BackendStorage 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
fbf4f44876 Add 'type' column to 'folders' table 2018-11-13 16:57:32 +01:00
cketti
fa1d6aab18 Remove EXTRA_SHOW_FOLDER_NONE from ChooseFolder 2018-11-11 23:28:41 +01:00
cketti
8a87437e98 Rewrite folder values in Storage database 2018-11-11 23:28:41 +01:00
cketti
a408a21c88 Change import/export settings descriptions for folder values 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
cketti
272b2e3cc4 Extract migration logic from 'Storage' class 2018-11-10 20:18:15 +01:00
Oji Ofong
dbd1c254a5 Update channels in the background thread 2018-11-10 09:42:24 -05: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
baa653ba3a Re-generate group if name was changed 2018-11-07 22:08:55 -05:00
ByteHamster
06bc5fdd40 Mocking UUID 2018-11-07 22:08:55 -05: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
0837cf5dcc Convert 'TextQuoteCreator' to Kotlin 2018-10-25 02:07:43 +02:00
cketti
101573c59f WIP: Renaming file 'TextQuoteCreator' with Kotlin extension 2018-10-25 01:45:56 +02:00
cketti
63b3379e5d Use TextQuoteCreator instances instead of static method 2018-10-25 01:41:00 +02:00
cketti
5aba2d0327 Convert 'QuoteHelper' to Kotlin 2018-10-25 01:32:40 +02:00
cketti
7652a247f0 WIP: Renaming file 'QuoteHelper' with Kotlin extension 2018-10-25 01:25:56 +02:00
cketti
99be379013 Use QuoteHelper instances instead of a static method 2018-10-25 01:25:26 +02:00
cketti
5374173233 Remove line wrapping when prefix-quoting
We're using "quoted-printable" for transport encoding. So manually
wrapping lines shouldn't be necessary.

See #3654
2018-10-25 01:14:13 +02:00
cketti
04111290fc Use Matcher.quoteReplacement() for escaping 2018-10-25 01:03:10 +02:00
cketti
ba7c8a77f9 Add line break after "header" when prefix-quoting text 2018-10-25 00:54:55 +02:00
cketti
b6b71cbf42 Don't strip \r from quoted text 2018-10-25 00:51:06 +02:00
cketti
1222a2730b Add (failing) tests for TextQuoteCreator 2018-10-25 00:50:23 +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
b1cfa302ba Use different method to convert HTML to plain text
Html.fromHtml() exhibited some serious performance issues with certain
inputs.

See issue #3624
2018-10-03 12:23:50 +02:00
cketti
032c6b3ed9 Simplify NotificationActionCreator interface 2018-09-12 21:40:12 +02:00
cketti
7e5fed9990 Only use FLAG_UPDATE_CURRENT when creating PendingIntents
Using FLAG_ONE_SHOT is asking for trouble because we have no checks in
place to guarantee PendingIntents aren't reused.
Same goes for FLAG_NO_CREATE. We used this in a couple of places where
we previously created a PendingIntent for a "device action" and then
tried to reuse that PendingIntent for a "Wear action". But in some cases
only a "Wear action" was created. So creating a PendingIntent with
FLAG_NO_CREATE returned null. As a result we got notifications with
action buttons that did nothing.
2018-09-12 21:40:12 +02:00
cketti
cd08af2894
Merge pull request #3600 from k9mail/fix_reply_to_unencrypted_message
Fix bug where subject field isn't populated when replying to an unencrypted message
2018-09-11 00:54:09 +02:00
Oji
0eceb9bcc7 Expose package static methods in NotificationActionService 2018-09-10 17:12:04 -04:00
cketti
8835b1e485 Extract subject when constructing MessageViewInfo for unencrypted emails 2018-09-07 01:31:31 +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
de73504be0
Merge pull request #3581 from k9mail/encryption_extractor_interface
Extract database schema creation + EncryptionExtractor interface
2018-09-04 15:44:25 +02:00
cketti
cda778e491 Remove unused method Message.clone() 2018-09-03 01:17:25 +02:00
cketti
a8f41118e3 Add interface for detection of encrypted messages
This includes some capabilities that are not currently used by K-9 Mail,
e.g. the ability to supply additional data to be inserted into the
database.
2018-09-03 00:57:41 +02:00
cketti
18bbd76783 Add a way to inject SchemaDefinition into LocalStore 2018-09-03 00:57:41 +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
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
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
721c97fe39 Make MessageLoaderHelper call callbacks on the main thread 2018-08-20 18:33:12 +02:00
cketti
c8de3e6a18 Create ControllerExtension to allow accessing MessagingController internals 2018-08-17 18:22:53 +02:00
cketti
ea07d248df Create MessagingController instance using Koin 2018-08-15 23:01:59 +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
M Madison Phillips
262e0840ba Update address validator to conform to RFC 5321 2018-08-09 18:12:20 +02:00
cketti
02db5651aa Add tests for K9BackendFolder.getMessageFlags() 2018-08-05 19:43:08 +02:00
cketti
880f00ac51 Extract code to decode flags column to separate function 2018-08-05 15:28:57 +02:00
morckx
229a0a03c9 Don't crash on empty flags 2018-08-05 14:50:47 +02:00
leggewie
ae38778ec1
allow installation to external media (micro SD)
This change will enable installation of the app to external as well as internal flash memory which is important for devices where internal memory is limited but external memory is cheap and abundant in form of micro SD cards. Thank you for your consideration.
2018-08-02 20:58:20 +08:00
cketti
da6eca639c Move file to correct location 2018-07-26 23:44:11 +02:00
cketti
28f0aa642b
Merge pull request #3524 from k9mail/local_only_folders_column
Add 'local_only' column to 'folders' table
2018-07-26 23:30:14 +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
de61ec288c Use local_only column in FolderRepository 2018-07-23 14:25:30 +02:00
cketti
ee777e62eb Use local_only column for retrieving folders in K9BackendStorage 2018-07-23 14:25:30 +02:00
cketti
1f0f4285d2 Add support for local_only column to LocalFolder 2018-07-23 14:25:30 +02:00
cketti
f40e7378fb Add 'local_only' column to folders table 2018-07-23 14:25:29 +02:00
cketti
c8da50f945
Merge pull request #3521 from k9mail/folder_list_sync
Move folder list sync logic into Backend implementations
2018-07-23 13:24:29 +02:00
cketti
91164e04ed Make sure account display name is never null 2018-07-23 12:54:09 +02:00
cketti
de49c9d6c2 Move folder list sync logic into Backend implementations 2018-07-22 18:34:16 +02:00
cketti
dc785a8e92 Fix error handling when refreshing the folder list fails 2018-07-22 18:31:41 +02:00
cketti
87132562f8 Remove unused parameter 2018-07-22 18:31:41 +02:00
cketti
b35074315c
Merge pull request #3519 from k9mail/add_folder_extra_values
Allow backend code to store additional per-account and per-folder data
2018-07-22 18:21:51 +02:00
cketti
5104780468 Update BackendStorage to allow getting/setting extra values 2018-07-22 18:06:21 +02:00
cketti
e56b03d7bc Create account_extra_values table 2018-07-22 18:06:21 +02:00
cketti
5e9dfa3656
Merge pull request #3520 from k9mail/fix_backend_manager_cache
Only reuse Backend instances when server settings haven't changed
2018-07-22 13:33:15 +02:00
cketti
c91b482d30 Only reuse Backend instances when server settings haven't changed 2018-07-21 16:40:47 +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