Commit graph

1061 commits

Author SHA1 Message Date
cketti
075324af14 Clean up code to update notification channels 2022-03-11 18:44:36 +01:00
cketti
8206cbce4c Update accounts with NotificationChannel configurations before exporting settings 2022-03-10 16:06:46 +01:00
cketti
803e388b90 Extract logic to convert system vibration pattern into NotificationVibrationDecoder 2022-03-10 16:06:46 +01:00
cketti
25c0e4af43 Extract vibration settings to separate class NotificationVibration 2022-03-09 22:35:13 +01:00
cketti
aa90f4369d Avoid race condition when recreating the messages NotificationChannel 2022-03-08 22:53:22 +01:00
cketti
d784151ef0 Add support for updating existing notifications 2022-03-08 18:29:27 +01:00
cketti
d5baa9982d Update Jsoup to version 1.14.3 2022-03-04 00:55:16 +01:00
cketti
e24d51a437 Remove @OptIn annotations that are now unnecessary 2022-03-03 16:55:36 +01:00
cketti
f66f7e5073 Use account settings when creating the NotificationChannel for messages 2022-03-01 16:42:33 +01:00
cketti
237a6024e4 Remove unused callbacks 2022-02-24 20:46:58 +01:00
cketti
c206af5ab0 Remove unnecessary method parameter 2022-02-24 20:34:45 +01:00
cketti
51457a6859 Simplify LocalStore.searchForMessages() 2022-02-24 20:28:03 +01:00
cketti
4bed7a595b Remove unused method parameters 2022-02-24 19:56:50 +01:00
cketti
e59f57f602 Remove unused callbacks from MessageRetrievalListener 2022-02-24 19:42:01 +01:00
cketti
065f98cfdd Remove unnecessary method parameters 2022-02-24 19:24:17 +01:00
cketti
dea6bf1f01 Don't create notifications when manually refreshing the message list 2022-02-24 00:05:51 +01:00
cketti
58709b156a Remove commented out code 2022-02-22 22:14:21 +01:00
cketti
e1c43beee1 Remove 'new message' notification when user deletes the message
We already handled the case where the deletion was synced from the server. This handles the case where the user locally deletes the message.
2022-02-22 19:22:21 +01:00
cketti
7a784f1fcd Remove 'new message' notification when user marks the message as read
We already handled the case where the message was marked as read on the server. This handles the case where the user marks the message as read locally.
2022-02-22 19:22:21 +01:00
cketti
c0f8c43baa Add logging for summary notifications
These are the notifications responsible for sound/vibration/light.
2022-02-22 17:44:01 +01:00
cketti
48caeffe10 More logging when recreating a NotificationChannel 2022-02-22 17:44:01 +01:00
cketti
91239f92d2 Update StrictMode policy 2022-02-21 18:43:01 +01:00
cketti
8847e30cb7 Add appropriate mutability flags to PendingIntents 2022-02-21 18:42:27 +01:00
cketti
ad18dc2f74 Create Outbox if necessary when attempting to send a message 2022-02-21 16:58:43 +01:00
cketti
9cf0708683 Display "New mail ringtone" setting on Android 8+
Some vendors don't support changing the notification sound via the system's user interface to configure notification categories.
2022-02-15 21:21:18 +01:00
cketti
55e0288ffe Hold accountLock while saving an account 2022-02-12 00:00:11 +01:00
cketti
ffa0ebb5bb Change the Storage class to be immutable
Also make sure the in-memory state and the database are modified together while a lock is being held.
2022-02-12 00:00:11 +01:00
cketti
56ac6ab0bd Rework notification light setting 2022-02-11 23:56:12 +01:00
cketti
4d0bbd1e8a Remove rows from 'notifications' table when clearing notifications 2022-02-10 01:49:53 +01:00
cketti
d087fde125 Change NotificationSettings into a data class 2022-02-09 19:36:33 +01:00
cketti
0fb6bd9198 Add a proper type for the vibration pattern the user can select 2022-02-09 19:36:33 +01:00
cketti
c58e357030 Convert 'NotificationSettings' to Kotlin 2022-02-09 19:36:33 +01:00
cketti
6256ec6d89 Rename .java to .kt 2022-02-09 19:36:33 +01:00
cketti
b91c902247 Rename class NotificationSetting to NotificationSettings 2022-02-09 19:36:33 +01:00
cketti
f923da4487 Convert 'Account' to Kotlin 2022-02-09 19:36:33 +01:00
cketti
2dbdca0fc4 Rename .java to .kt 2022-02-09 19:36:33 +01:00
cketti
f196b8ca5e Convert 'SearchAccount' to Kotlin 2022-02-09 19:36:33 +01:00
cketti
566be079c9 Rename .java to .kt 2022-02-08 17:07:38 +01:00
cketti
dee2ca345d Convert 'BaseAccount' to Kotlin 2022-02-08 16:54:15 +01:00
cketti
4583218750 Rename .java to .kt 2022-02-08 16:54:15 +01:00
cketti
eff9f1bf5e Improve support for empty account name 2022-02-08 02:23:04 +01:00
cketti
bfc708df19 Use Account.getDisplayName() when appropriate 2022-02-08 02:05:05 +01:00
cketti
19829eb2a2 Rename Account.getDescription() to Account.getName() 2022-02-08 01:13:30 +01:00
cketti
1d601c5c59 Rename Account.getName() to Account.getSenderName() 2022-02-08 00:50:26 +01:00
cketti
ff97264c08 Use Account.toString() in log messages
Have Account.toString() only return the account name when sensitive debug logging is enabled. Otherwise return the account UUID.
2022-02-08 00:16:33 +01:00
cketti
deecc9ea16 Fix NotificationChannel recreation avoidance logic 2022-02-07 19:22:03 +01:00
cketti
d161f7972d
Merge pull request #5895 from k9mail/vibration_pattern
Unify settings to configure notification vibration
2022-02-07 18:29:52 +01:00
cketti
64c6bcd48f Unify settings to configure notification vibration 2022-02-04 06:52:52 +01:00
cketti
4c875027a6 Crash app when trying to add duplicate notification on debug builds
This is not a critical error. So we're not crashing release builds. We could skip the duplicate notification in release builds. But the hope is that users will notice them and report a bug, allowing us to find and fix the root cause rather than the symptom.
2022-02-03 02:16:06 +01:00
cketti
a4e1a77892 Switch to mockito-inline 2022-02-03 01:10:52 +01:00
cketti
587e964e87
Merge pull request #5885 from k9mail/html_cleaner_cli
Add command line application to sanitize HTML files
2022-01-28 16:53:10 +01:00
cketti
6e9a8f9559 Move HtmlProcessor into a separate module 2022-01-28 04:40:30 +01:00
parkerfath
1265d0724b
Open Outbox from 'send failed' notification (#5887) 2022-01-28 03:33:06 +01:00
cketti
f74d1c0fee Change HtmlProcessor to retrieve custom <head> contents from an interface 2022-01-26 03:19:48 +01:00
cketti
7c05ec5b21 Don't use dependency injection for HtmlSanitizer 2022-01-26 03:12:11 +01:00
cketti
013e0dc788 Convert 'HtmlProcessor' to Kotlin 2022-01-26 03:05:42 +01:00
cketti
f84ebecd73 Rename .java to .kt 2022-01-26 02:57:01 +01:00
cketti
4f7bda0c29 Convert 'HeadCleaner' to Kotlin 2022-01-26 02:44:57 +01:00
cketti
2dd2b7492c Rename .java to .kt 2022-01-26 02:44:04 +01:00
parkerfath
fda4e8243a
Allow remote search by default (#5867) 2022-01-20 00:20:22 +01:00
schlagi123
e8a798c9de
Change default color for registered contacts (#5865)
Change default value of `registeredNameColor` to have enough contrast in both the light and dark theme.
2022-01-20 00:10:05 +01:00
cketti
6e6fd8623a Only remove notifications for messages currently displayed
This only works for the Unified Inbox, the "new messages" view, and when viewing a single folder. Search views are currently not supported.
2022-01-11 01:46:01 +01:00
cketti
2dff253d43 Change code to remove notifications to accept a selector function 2022-01-10 22:01:13 +01:00
cketti
d68b326994 Trigger folder list update when a message has been sent 2022-01-09 08:12:29 +01:00
cketti
17e69419b8 Remove now unused BackendFolder.getLastUid() 2022-01-05 20:21:58 +01:00
schlagi123
30f5cac95e
Make ThemeManager listen to theme setting changes (#5833)
This way importing settings will automatically apply the imported theme value.
2021-12-29 23:03:49 +01:00
cketti
955b22b970 Add support for setting the notification vibration pattern on Android 8+ 2021-12-22 02:59:27 +01:00
cketti
448439609f Change UI to configure the notification vibration pattern 2021-12-22 01:32:23 +01:00
cketti
69490a2c43 Add support for changing the notification light color on Android 8+
Android doesn't support changing this setting on an existing NotificationChannel. So we delete the existing NotificationChannel and create a new one with the same settings as the old one and the new notification light color.
2021-12-15 19:05:59 +01:00
cketti
36364f0463 Display notification light color picker on API 26+ devices 2021-12-15 19:05:59 +01:00
cketti
fc5aa0a004 Specify which colors to display in notification LED color picker 2021-12-14 01:38:48 +01:00
cketti
3298a8e90d Add message notification channel versioning 2021-12-13 21:23:51 +01:00
cketti
fd920971b8 Mark all messages as "not new" when summary notification is dismissed 2021-12-11 18:56:02 +01:00
cketti
a8937a2a2d Mark all messages as "not new" when leaving the "New messages" view 2021-12-11 15:41:15 +01:00
cketti
4e3d8789e3 Mark a message as "not new" when opening it for viewing 2021-12-11 15:41:15 +01:00
cketti
8e12d05a1d Update summary notification click behavior
Open "New messages" view when tapping the summary notification and not all messages either belong to the Unified Inbox or to a single folder.
2021-12-11 15:41:15 +01:00
cketti
386dd9073f Update 'new_message' column when adding and removing notifications 2021-12-11 15:41:15 +01:00
cketti
c289c74238 Update summary notification click behavior
When tapping the summary notification and all new messages belong to folders that are included in the Unified Inbox, we display the Unified Inbox.
2021-12-09 22:21:55 +01:00
cketti
3d04523429 Set account color on status/error notifications 2021-12-08 17:46:35 +01:00
cketti
4da9e023be Create public version for authentication error notifications
Don't expose account name or error details when Android is configured to hide sensitive information on the lock screen.
2021-12-08 02:37:21 +01:00
cketti
57d7616d5a Create public version for certificate error notifications
Don't expose account name or error details when Android is configured to hide sensitive information on the lock screen.
2021-12-08 02:37:21 +01:00
cketti
c47d79094c Create public version for send failed notifications
Don't expose error details when Android is configured to hide sensitive information on the lock screen.
2021-12-08 02:37:21 +01:00
cketti
725c32ea0c Create public versions for sync/sending notifications
When Android is configured to not show sensitive notification content, we no longer display account and folder names on the lock screen.
2021-12-08 02:22:18 +01:00
cketti
f042e2babd
Merge pull request #5812 from k9mail/fix_vibrate_on_notification
Only set vibration pattern if vibration is enabled
2021-12-07 20:23:40 +01:00
cketti
0964d50f2d Only set vibration pattern if vibration is enabled 2021-12-07 02:11:53 +01:00
cketti
229eaa6350 Restore notifications when the app is restarted 2021-12-05 21:51:32 +01:00
cketti
14be46389f Persist data about notifications 2021-12-04 21:59:06 +01:00
cketti
443a1d5d04 Create NotificationDataStore and make NotificationData immutable 2021-12-02 21:54:58 +01:00
cketti
d4887866c1 Remove unused @JvmStatic and @JvmName annotations 2021-11-30 22:56:09 +01:00
cketti
aee9088874 Save the timestamp when a notification was created for the first time 2021-11-30 01:46:53 +01:00
cketti
c9be254f0a Get rid of Range lint warnings 2021-11-26 21:38:49 +01:00
cketti
a3033d1983 Use Timber for logging 2021-11-26 15:52:11 +01:00
cketti
878400c15f Explicitly specify locale in case conversion or string formatting 2021-11-26 15:43:28 +01:00
cketti
9074d6c570 Remove unused strings 2021-11-26 15:23:57 +01:00
cketti
230d0f4a84 Remove unused code (K9.Intents.Share.EXTRA_FROM) 2021-11-26 02:46:58 +01:00
cketti
1fe6b454cd Add support for properly importing/exporting "Auto-expand folder" = "None" 2021-11-24 22:34:46 +01:00
cketti
835eb6a7cc Use the inbox for the auto-expand folder by default 2021-11-24 22:34:46 +01:00
cketti
04c114bbca
Merge pull request #5788 from k9mail/notification_refactoring
Separate notification UI/UX logic from notification creation
2021-11-24 21:17:36 +01:00
cketti
b7526588c7 Separate notification UI/UX logic from notification creation 2021-11-24 17:49:14 +01:00
Tobias Preuss
f0d3f371f0 Avoid leaking CountingOutputStream.
+ Affects com.fsck.k9.mail.filter.CountingOutputStream.
2021-11-23 09:45:05 +01:00