Commit graph

697 commits

Author SHA1 Message Date
cketti
3b8c24bbde Clean up folder_list_item.xml 2019-03-28 19:29:51 +01:00
cketti
1fb5807677 Remove unnecessary ActivityListener callbacks from FolderList 2019-03-28 19:29:51 +01:00
cketti
8fb735479b Don't display folder status in FolderList 2019-03-28 18:59:47 +01:00
cketti
0cef41e45d Remove unread and starred icons from FolderList 2019-03-28 18:41:29 +01:00
cketti
55d0128afc Remove unused imports 2019-03-28 18:31:39 +01:00
cketti
d6423ff85e Clean up code 2019-03-22 00:54:51 +01:00
Wiktor Kwapisiewicz
b7652205ae Add Thunderbird autodiscovery code (part 1) 2019-03-20 17:27:44 +01:00
cketti
d56e49bb0a Clean up ProvidersXmlDiscovery 2019-03-14 04:04:29 +01:00
cketti
e64177cedc Convert ProvidersXmlDiscovery to Kotlin 2019-03-14 03:16:15 +01:00
cketti
8fea3b3a64 WIP: Renaming file 'ProvidersXmlDiscovery' with Kotlin extension 2019-03-14 03:04:42 +01:00
cketti
ed39bad737 Use EmailHelper in ProvidersXmlDiscovery 2019-03-14 03:04:07 +01:00
cketti
d27672f9a8 Add EmailHelper.getLocalPartFromEmailAddress() 2019-03-14 03:02:05 +01:00
cketti
d104525955 Convert EmailHelper to Kotlin 2019-03-14 02:58:27 +01:00
cketti
e1e473592c
Merge pull request #3961 from k9mail/add_delete_method_to_backend
Add deleteMessages() method to Backend interface
2019-03-13 23:03:20 +01:00
cketti
21f36e73c8 Migrate old pending commands for deleting messages to new format 2019-03-11 02:22:11 +01:00
cketti
189f50a15e Make MessagingController use Backend.deleteMessage() 2019-03-11 01:20:46 +01:00
cketti
22798072fd Extract code to find server settings via providers.xml 2019-03-10 20:13:36 +01:00
cketti
0c9bb833e5 Move RobolectricTest class to :app:testing module 2019-03-10 20:02:28 +01:00
cketti
0b78c60978 Create (empty) autodiscovery Gradle module 2019-03-10 20:00:29 +01:00
cketti
c580b2b85c
Merge pull request #3956 from k9mail/remove_note_from_providers_xml
Remove support for 'note' attribute in providers.xml
2019-03-10 18:06:16 +01:00
cketti
e0ebc9f637 Remove support for 'note' attribute in providers.xml 2019-03-09 02:15:45 +01:00
cketti
0a08cfdbc5 Remove POP3 settings from providers.xml 2019-03-09 01:35:01 +01:00
cketti
34c20ce317
Merge pull request #3942 from ByteHamster/confirm-empty-trash
Confirm empty trash
2019-03-08 23:11:00 +01:00
ByteHamster
a007d9bfa7 Confirm empty trash 2019-03-04 18:25:54 +01:00
cketti
be60dccb14 Respect background sync setting 2019-02-28 03:01:04 +01:00
David Hebbeker
8ca7fd896c
Removed unused interface OnLayoutChangedListener.
As the member mOnLayoutChangedListener was never populated, the only method of the interface was never called. Thus the complete interface was removed.
Also the only method which would have called the interface method was removed. That method did nothing else.
2019-02-27 10:15:13 +01:00
cketti
f9b6c78340
Merge pull request #3917 from pueffl/kotlin-upgrade
Upgrade to Kotlin version (3.20) and fix any issues.
2019-02-26 15:44:17 +01:00
cketti
be96b6e524
Merge pull request #3910 from k9mail/fix_K9BackendFolder
Fix bug in K9BackendFolder.getLastUid()
2019-02-14 03:34:46 +01:00
cketti
7c7ce6eb84 Remove Message.setRecipients() and manually set recipient headers
Use AddressHeaderBuilder to encode the recipient addresses and fold the
header value.
2019-02-14 02:28:36 +01:00
Wolfgang Grossinger
c179ace548 Upgrade to Kotlin version (3.20) and fix any issues.
- Migrate to Kotlin 3.11
- Remove Kotlin Experimentals
- Migrate Kotlin Coroutines
2019-02-13 20:53:44 +01:00
cketti
7a41c018ce Fix bug in K9BackendFolder.getLastUid() 2019-02-10 02:46:53 +01:00
cketti
272a03eb96
Merge pull request #3907 from k9mail/androidx_migration
Androidx migration
2019-02-10 02:03:17 +01:00
cketti
c44df93347 Update translations from Transifex 2019-02-10 00:29:48 +01:00
cketti
dffca6f867 Update Groupie to version 2.3.0 2019-02-09 22:08:25 +01:00
cketti
b4ead8d3b5 Update MaterialDrawer to version 6.1.1 2019-02-09 22:08:25 +01:00
cketti
a7d6d9c50f Switch to com.takisoft.preferencex artifacts 2019-02-09 22:08:25 +01:00
cketti
47deb4e5ba Switch to androidx artifacts 2019-02-09 22:08:25 +01:00
cketti
28f8edee87 Upgrade to support library 28.0.0 2019-02-09 21:39:50 +01:00
cketti
00120ede97
Merge pull request #3850 from williamvds/settingsRedesign
Add account selection spinner to account settings
2019-02-09 21:39:11 +01:00
cketti
5d3fc6397b Code cleanup 2019-02-09 21:17:17 +01:00
williamvds
2d9a12286b
Use wrap_content in account selection spinner 2019-02-07 20:35:39 +00:00
williamvds
0fd31b6e55
Clean up adding account selection spinner 2019-02-07 20:35:23 +00:00
williamvds
d2f642c3ef
Move AccountSelectionSpinner into its own file 2019-02-07 20:34:04 +00:00
cketti
f1963aec08
Merge pull request #3886 from k9mail/backend_do_not_move_to_trash
Add flag to allow a Backend to opt out of the "move to Trash folder" behavior
2019-01-25 15:08:20 +01:00
cketti
932f5f2ddc Add 'isDeleteMoveToTrash' flag to Backend 2019-01-22 18:52:06 +01:00
Wolfgang Grossinger
374717dcab Fix build problems with a fresh forked k-9 (#3874)
Update build tools
2019-01-22 17:16:07 +01:00
cketti
cae0e22ada
Merge pull request #3878 from ojiofong/fix-android-job-test2
Replace old robolectric APIs
2019-01-15 03:32:15 +01:00
Oji Ofong
0d98be6dd1 Replace old robolectric APIs 2019-01-14 21:16:12 -05:00
Sujan Kota
8e5e6d66a6 Fix the unit tests 2019-01-14 10:41:44 -08:00
Sujan Kota
64971007f5 Make notification for new messages as an interface and move the implementation to the K9NotificationStrategy.kt 2019-01-14 09:56:13 -08:00
williamvds
ab16ac880e
Add account selection spinner to account settings 2019-01-12 11:41:17 +00:00
cketti
9d9d46868f Clean up LocalFolder.delete() 2019-01-10 00:15:35 +01:00
cketti
eeb820b958 Remove Folder.delete(boolean) 2019-01-10 00:15:35 +01:00
cketti
d27180f55c Rename LocalFolder.delete() to deleteSettings() 2019-01-10 00:02:17 +01:00
cketti
88c12325b9
Merge pull request #3863 from k9mail/GH-3861_fix_deleting_folders
Fix deleting folders
2019-01-09 23:49:32 +01:00
cketti
95f266ada6 Add missing code to persist the 'uploadSentMessages' preference 2019-01-08 21:12:46 +01:00
cketti
c6dd59dee4 Fix deleting folders no longer on the server 2019-01-06 22:24:47 +01:00
cketti
6a64d5e380
Merge pull request #3851 from ByteHamster/drawer-bg
Material paper drawer background
2019-01-06 22:03:25 +01:00
cketti
2cb299d7e5
Merge pull request #3830 from wiktor-k/remove-low-frequencies
Remove low sync frequencies that make K-9 crash
2019-01-06 21:29:34 +01:00
cketti
af95a0f1b6
Merge pull request #3840 from k9mail/move_delete_account_action
Add "remove account" action to account settings screen
2019-01-06 21:03:00 +01:00
ByteHamster
e8da523f30 Material paper drawer background 2018-12-31 15:23:24 +01:00
williamvds
9b537b963a
Add license string 2018-12-27 22:20:22 +00:00
williamvds
9fc5e41ec7
Convert app_fmt_authors string to authors 2018-12-27 22:19:09 +00:00
williamvds
856d9b4e6e
Correct font sizes in About to normal levels
Also adjusts some margin/padding on elements
2018-12-27 22:11:33 +00:00
cketti
f0b12e5bfd
Merge pull request #3839 from k9mail/fix_action_mode
Fix placement of action mode bar
2018-12-23 21:30:45 +01:00
Art O Cathain
e3d193c8d2 Fix for outbox folder being missing after settings import (#3812) 2018-12-23 00:34:38 +01:00
Wiktor
57c72034c6
Merge pull request #3829 from williamvds/aboutRedesign
Redesign About activity
2018-12-22 20:49:46 +01:00
williamvds
7b15649b25
Remove default value for Library.license 2018-12-22 11:29:58 +00:00
Wiktor Kwapisiewicz
88cfdb385d
Reduce importance of sync notifications
Before this change synchronization notifications were displayed with
default importance. That means checking for e-mail generated sound or
vibration that looked like an arriving message.

This change reduces importance to `IMPORTANCE_LOW`. That still shows the
notification but does not generate any sounds or vibration by default
(this can still be adjusted by the user).
2018-12-21 16:20:04 +01:00
cketti
f88215594b Exit settings and display welcome screen when there are no accounts left 2018-12-20 23:50:31 +01:00
cketti
59edfb59f5 Add "remove account" action to account settings screen 2018-12-20 23:50:31 +01:00
Wiktor Kwapisiewicz
7d3ba67380
Add migration to cap minimum sync frequency to 15m
This change ensures that upgrading from older version of K-9 would not
set the frequency to unsupported value (below 15 minutes).
2018-12-20 20:56:11 +01:00
Wiktor Kwapisiewicz
8468ea5f77 Remove low sync frequencies that make K-9 crash
See: https://github.com/evernote/android-job/wiki/FAQ#why-cant-an-interval-be-smaller-than-15-minutes-for-periodic-jobs

Closes #3803.
2018-12-20 20:28:49 +01:00
cketti
91104b98c1 Fix placement of action mode bar 2018-12-20 19:14:31 +01:00
cketti
4da4544264 Remove custom whenever() helper for Mockito 2018-12-20 18:26:12 +01:00
williamvds
44a58d14c1
Convert app_revision_fmt string to app_revision
Removes the formatting, which is no longer needed
2018-12-19 17:54:26 +00:00
williamvds
b9724b4792
Remove string interpolation symbols from version strings 2018-12-19 17:47:50 +00:00
williamvds
2473a574e7
Version in About opens changelog, remove overflow menu 2018-12-19 17:43:21 +00:00
cketti
97ed41524e Move tests to :app:storage module
Create :app:testing module for shared test infrastructure code
2018-12-18 00:07:44 +01:00
williamvds
185396440a
Use Kotlin synthetic bindings in AboutActivity 2018-12-17 21:17:26 +00:00
williamvds
a1195f5733
Move libraries in About to main layout
About's layout has been wrapped in a NestedScrollView
Added a Library data class to store library information
Added fragment for libraries, listing their name and licenses, links to
their homepages
Added string about_libraries for the section title
2018-12-17 21:07:57 +00:00
cketti
957b18fd5b Move StoragePersister implementation to :app:storage module 2018-12-17 17:31:47 +01:00
cketti
2d6c8b7067 Extract StoragePersister interface 2018-12-17 17:25:02 +01:00
cketti
b4757a1568 Move creation of StorageEditor instances to StoragePersister 2018-12-17 17:13:20 +01:00
cketti
86818fbffb Extract StorageEditor interface 2018-12-17 17:02:47 +01:00
cketti
db1dcb4618
Merge pull request #3824 from k9mail/remove_file_handling
Remove code for settings import/export using files (instead of SAF)
2018-12-17 00:02:58 +01:00
cketti
342cd75a31
Merge pull request #3825 from k9mail/remove_pre_api19_code
Remove compatibility code for pre-API 19 Android versions
2018-12-16 23:37:31 +01:00
williamvds
0ce24f8ed1
Add padding above links in About 2018-12-16 11:22:10 +00:00
williamvds
f241111ac9
Link to contributors in About 2018-12-16 11:22:10 +00:00
williamvds
5785d0bb83
Remove wrapping LinearLayout in About
Also make the license layout selectable. Removing the linear layout
improves the ripple effect
2018-12-16 11:21:56 +00:00
cketti
b5588a8d02 Remove compatibility code for pre-API 19 versions 2018-12-16 02:49:49 +01:00
cketti
6de1704029
Merge pull request #3823 from ByteHamster/folder-list
Removed unneeded options from folder list
2018-12-16 02:47:49 +01:00
cketti
58717266c0 Remove code for importing and exporting settings from and to files 2018-12-16 02:03:21 +01:00
ByteHamster
f69a1850f7 Open folder settings directly 2018-12-16 00:51:13 +01:00
ByteHamster
374c79e9aa Removed unneeded options from folder list 2018-12-16 00:26:19 +01:00
ByteHamster
7894bfdf1a Removed show folder list
Now that #3800 was merged, we have the option in the sidebar
2018-12-15 23:59:10 +01:00
williamvds
d15dbb6900
Make app_license string less verbose 2018-12-15 21:44:39 +00:00
williamvds
db2d2c4862
Convert debug_version_fmt string to version 2018-12-15 21:44:39 +00:00
williamvds
4db0c8d068
Convert about_title_fmt string to about_title 2018-12-15 21:44:39 +00:00
williamvds
5c30c5b08e
Move revison info link into About layout 2018-12-15 21:44:38 +00:00
williamvds
58ad258f3d
Add change log link to About 2018-12-15 21:44:38 +00:00
williamvds
e1c0278173
Add source link to About 2018-12-15 21:44:38 +00:00
williamvds
6182cf9ecd
Move information in About into layout
Including...
version
authors
license
copyright notice
2018-12-15 21:44:38 +00:00
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