Commit graph

167 commits

Author SHA1 Message Date
cketti
1da164bed4 Code style cleanup 2018-11-28 05:16:01 +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
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
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
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
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
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
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
williamvds
02b253b0f1
Detect and select unified inbox in drawer 2018-10-21 13:31:58 +01: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
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