Commit graph

1239 commits

Author SHA1 Message Date
cketti
9a9c781eaa Flag existing Gmail accounts for OAuth upgrade 2022-06-17 14:40:23 +02:00
cketti
f96154f0b0 Display "authentication failed" notification when OAuth sign-in is required 2022-06-16 14:55:34 +02:00
cketti
451a74166b Fix bug when clearing all new message notifications of an account 2022-06-10 16:42:53 +02:00
Olivier Blin
4c937ad7a6 Move redirectUri in OAuthConfiguration
Not all providers accept the redirect URI Google requires Android apps to use.
2022-06-08 20:28:08 +02:00
cketti
9ae7d27e79 Add support for OAuth flow after settings import 2022-06-07 15:53:37 +02:00
cketti
94c61a7999
Merge pull request #6098 from k9mail/sasl_oauthbearer
Add support for the `OAUTHBEARER` SASL method
2022-06-06 22:30:29 +02:00
cketti
d3be6e249b Add support for the OAUTHBEARER SASL method (IMAP) 2022-06-05 22:49:30 +02:00
cketti
d08aa55853 Add proper way to retrieve OAuth credentials 2022-06-05 16:35:39 +02:00
cketti
5065afef88
Merge pull request #6082 from k9mail/oauth_setup_flow
Add support for OAuth 2.0 (Gmail)
2022-05-28 15:44:22 +02:00
Sylvia van Os
6081b58212 Add Unsubscribe toolbar option 2022-05-28 14:07:08 +02:00
cketti
14a7f1b0d3 Add support for OAuth 2.0 (Gmail) 2022-05-23 22:26:49 +02:00
cketti
fdb8655f3a Remove Robolectric from a lot of tests 2022-05-02 17:08:22 +02:00
cketti
ad337c0395 Move mime type utility functions to :k9mail:app:core 2022-05-02 14:41:55 +02:00
cketti
d69c1f4c46 Add simple logging abstraction
Once there's a JVM artifact for Timber, hopefully all we have to do is replace the imports again.
2022-05-02 02:44:35 +02:00
cketti
7f343e4fd1 Move DefaultTrustedSocketFactory 2022-04-28 22:18:14 +02:00
cketti
e2609f3a46 Move MailTo and ListHeaders classes 2022-04-28 18:56:53 +02:00
cketti
72e679dca0 Add migration for IMAP compression in settings file 2022-04-12 21:58:15 +02:00
cketti
903d0f43c4 Change Account to use a single setting for IMAP compression 2022-04-12 21:58:15 +02:00
cketti
391d45d52b Merge branch '6.0-MAINT' into main 2022-04-12 00:23:08 +02:00
cketti
f427326da6 Simplify error notifications 2022-04-11 20:15:51 +02:00
cketti
e815d318aa Don't set notification sound/vibration/light on Android 8+
On Android 8+ these values should be ignored anyway. But on some devices setting a notification sound could lead to a SecurityException (when the app doesn't have permission to access the notification sound URI).
2022-04-11 20:15:51 +02:00
cketti
31860a209e Fix usage of ContentResolver.openOutputStream() 2022-04-11 17:40:36 +02:00
cketti
6da9195179 Truncate file when overwriting existing settings file 2022-04-11 17:40:36 +02:00
cketti
d6f218b3ec
Merge pull request #6000 from k9mail/fix_update_notification_preferences
Fix reading notification settings from `NotificationChannel`
2022-04-06 15:59:45 +02:00
cketti
6721a15663 Fix importing multiple accounts 2022-04-04 19:30:15 +02:00
cketti
486593919e Don't use app vibration defaults in NotificationVibrationDecoder
The code didn't handle the case where vibration was enabled but the pattern was `null` (system default).
2022-04-04 18:53:10 +02:00
cketti
f30a8ca3bb Use NotificationSettingsUpdater in AccountSettingsFragment 2022-04-04 18:53:10 +02:00
cketti
aa842efea8 Set messagesNotificationChannelVersion on settings import
Avoid reusing previously created notification channels when restoring an account using settings import.
2022-03-15 00:39:28 +01:00
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
Tobias Preuss
2db95470db Avoid leaking CountingOutputStream.
+ Affects org.apache.commons.io.output.CountingOutputStream.
2021-11-23 09:44:27 +01:00
cketti
63364b5c30 Refactor code to export the debug log 2021-11-15 16:29:39 +01:00
cketti
61046ef0fd Update Mockito (Kotlin) to version 4.0.0 2021-10-30 05:32:51 +02:00
cketti
80f29f9b3b Update Koin to version 3.1.3 2021-10-30 05:32:51 +02:00
cketti
ac8e61b6e9 Update AndroidX WorkManager to version 2.7.0 2021-10-30 04:22:16 +02:00
cketti
96f9b3bdd6 Update AppCompat to version 1.3.1
Update AndroidX Core to version 1.7.0
Update AndroidX Activity to version 1.4.0
Update Androidx Fragment to version 1.3.6
Update Androidx Lifecycle to version 2.4.0
2021-10-30 03:28:36 +02:00
cketti
a951e07fed
Merge pull request #5752 from k9mail/clock
Convert class 'Clock' to an interface
2021-10-25 18:10:20 +02:00
cketti
20dfc9a75b Convert class 'Clock' to an interface 2021-10-23 04:00:15 +02:00
cketti
bbe015eea8 Rename .java to .kt 2021-10-23 03:53:19 +02:00
cketti
0f278ebfe2 Set subject when forwarding a message as attachment 2021-10-22 19:46:31 +02:00
cketti
01f3be62dd Don't set notification priority to high for starred messages
This is an obscure feature I doubt was used much. It only worked on Android versions prior to 8.0 anyway.
2021-10-18 17:26:24 +02:00
cketti
266064c6cf Add parameter names to Koin declarations 2021-10-15 18:07:53 +02:00
cketti
d42ddd4698 Rename NewMailNotifications to NewMailNotificationController 2021-10-15 18:07:53 +02:00
cketti
7668e14577 Rename MessageSummaryNotifications to SummaryNotificationCreator 2021-10-15 18:07:52 +02:00
cketti
5aa465a68e Rename SingleMessageNotifications to SingleMessageNotificationCreator 2021-10-15 18:07:23 +02:00
cketti
13f64bd0d7 Rename LockScreenNotifications to LockScreenNotificationCreator 2021-10-15 18:07:21 +02:00
cketti
ad5b9a300b Rename SyncNotifications to SyncNotificationController 2021-10-14 17:28:15 +02:00
cketti
f48ff91af8 Rename SendFailedNotifications to SendFailedNotificationController 2021-10-14 17:22:51 +02:00
cketti
05a75b898e Rename CertificateErrorNotifications to CertificateErrorNotificationController 2021-10-14 17:20:30 +02:00
cketti
50187f8b53 Rename AuthenticationErrorNotifications to AuthenticationErrorNotificationController 2021-10-14 17:11:15 +02:00
cketti
8836ed4dec
Merge pull request #5734 from k9mail/remove_base_notifications
Remove BaseNotifications class
2021-10-12 18:49:01 +02:00
cketti
909904fd73 Remove BaseNotifications class 2021-10-11 20:26:26 +02:00
cketti
55ed63dee1 Remove unused code 2021-10-11 19:19:12 +02:00
cketti
7a572731a2 Don't use "unread count" in notifications 2021-10-11 18:42:51 +02:00
cketti
7e80d61f08 Don't limit line length when converting from HTML to plain text 2021-10-04 17:06:06 +02:00
cketti
84eca27d4f Avoid crash when getting flow for non-existent account 2021-09-29 23:47:34 +02:00
cketti
b2c998f0c5 Convert MessageReferenceTest to Kotlin 2021-09-29 15:51:30 +02:00
cketti
f17f0c6630 Rename .java to .kt 2021-09-29 15:51:30 +02:00
cketti
7d984f8918 Convert MessageReference to Kotlin 2021-09-29 15:38:23 +02:00
cketti
44275da943 Rename .java to .kt 2021-09-29 15:38:23 +02:00
cketti
8ae5378942 Remove Flag from MessageReference 2021-09-29 15:27:45 +02:00
cketti
2ad12fbb6d
Merge pull request #5700 from k9mail/MessageStore_getFolderServerId
Moving another method from LocalStore to MessageStore
2021-09-28 15:19:48 +02:00
cketti
fc253f7fae
Merge pull request #5699 from k9mail/StorageManager_cleanup
Remove unused functionality from StorageManager and StorageProvider
2021-09-28 15:17:42 +02:00
cketti
03370b2aca
Merge pull request #5698 from k9mail/small_K9BackendStorage_fix
Don't call MessageStore.deleteFolders() with an empty list
2021-09-28 15:16:25 +02:00
cketti
fd52f60c40
Merge pull request #5696 from k9mail/fix_MemorizingMessagingListener
Make sure "memory key" in MemorizingMessagingListener doesn't change
2021-09-28 15:16:02 +02:00
cketti
96b03b71e5
Merge pull request #5695 from k9mail/fix_lock_screen_notification
Fix lock screen notification when there's only one new message
2021-09-28 15:14:24 +02:00
cketti
a6db05717e Remove LocalStore.getFolderServerId() 2021-09-24 18:55:38 +02:00
cketti
d211b72892 Add MessageStore.getFolderServerId() 2021-09-24 18:52:42 +02:00
cketti
c6936043c6 Remove unused functionality from StorageManager and StorageProvider 2021-09-24 18:39:20 +02:00
cketti
0bc6d380c5 Don't call MessageStore.deleteFolders() with an empty list 2021-09-24 18:22:24 +02:00
cketti
526a0440e1 Make sure "memory key" in MemorizingMessagingListener doesn't change
Previously, renaming an account could lead to old sync state being retained. I noticed this when the progress bar beneath the toolbar was shown even though no sync was in progress.
2021-09-23 22:07:44 +02:00
cketti
8f4c10d8b4 Fix lock screen notification when there's only one new message 2021-09-23 12:25:34 +02:00
cketti
8350a62cad
Merge pull request #5692 from k9mail/refactor_TracingPowerManager
Refactor TracingPowerManager
2021-09-23 11:46:01 +02:00
cketti
1cc41ce69d
Merge pull request #5690 from k9mail/remove_legacy_notification_settings
Remove "hide subject in notifications" setting
2021-09-22 18:37:40 +02:00
cketti
a06c54f1ad
Merge pull request #5689 from k9mail/remove_WrappedException
Remove WrappedException
2021-09-22 18:32:33 +02:00
cketti
e9d7606592
Merge pull request #5687 from k9mail/update_folder_list
Update displayed folder list when folders on server have changed
2021-09-22 18:29:37 +02:00
cketti
a63daa50a8 Rename TracingPowerManager to AndroidPowerManager 2021-09-22 12:49:45 +02:00
cketti
cd267a8e8a Use Koin to manage/obtain the TracingPowerManager instance 2021-09-22 12:47:55 +02:00
cketti
3393ae16ed Convert TracingPowerManager to Kotlin 2021-09-22 12:34:36 +02:00
cketti
27cc4d34ca Rename .java to .kt 2021-09-22 12:33:13 +02:00
cketti
8a0a56d671 Remove (unused) timer functionality from TracingPowerManager 2021-09-22 12:11:55 +02:00
cketti
1ff1bd8454 Remove "hide subject in notifications" setting
This feature didn't work properly. And the "lock screen notifications" setting offers very similar functionality.
2021-09-21 19:59:30 +02:00
cketti
1231bd5975 Remove WrappedException 2021-09-21 16:33:31 +02:00
cketti
2e1b002b21 Update displayed folder list when folders on server have changed 2021-09-21 14:30:32 +02:00
cketti
9990908640 Remove default account setting
The first account in the account list is now the default account.
2021-09-21 13:52:48 +02:00
cketti
51e6820d92
Merge pull request #5677 from k9mail/remove_Account_isAvailable
Remove Account.isAvailable()
2021-09-21 13:19:02 +02:00
cketti
d57b85b820 Fix notification sound for single message "summary" notification 2021-09-18 19:19:41 +02:00
cketti
18fbb45352 Remove UnavailableStorageException 2021-09-17 11:06:17 +02:00
cketti
0167d8dfef Remove UnavailableAccountException 2021-09-17 10:56:53 +02:00
cketti
fb8f98486f Remove Account.isAvailable() 2021-09-17 10:47:03 +02:00
cketti
129557da99 Remove storage provider locking 2021-09-17 10:37:11 +02:00
cketti
219648f142 Get rid of mount/unmount receivers for external storage
We no longer support storing the database on "external storage". Even when migrating old databases chances are very slim "external storage" actually is a removable storage device.
2021-09-17 10:01:14 +02:00
cketti
73bcfb3837 Remove unused class FixedStorageProviderBase 2021-09-17 09:47:34 +02:00
cketti
29e1593d79 Update sync notification instead of recreating it for every folder 2021-09-17 05:31:58 +02:00
cketti
79514fbad1 Replace Account.setRingNotified() mechanism
MessagingController now uses NotificationState to make sure there's only one audible notification during a single sync operation.
2021-09-16 17:54:56 +02:00
cketti
ad21449a0b Refactor notification code 2021-09-16 12:42:51 +02:00
plan3d
5437fd2024 Issue #5611: Add support for setting Reply-To header 2021-09-13 14:52:28 +02:00
cketti
0c413e34a7
Merge pull request #5650 from k9mail/show_gitlab_usernames
Show name part of certain addresses even if they contain an @ symbol
2021-09-09 12:47:00 +02:00
cketti
9156e8f699 Show name part of certain addresses even if they contain an @ symbol 2021-09-06 07:58:05 +02:00
cketti
c0f7996858 Move accounts flow code from AccountsViewModel to Preferences 2021-09-05 22:53:21 +02:00
cketti
58498b8fc2 Fix sending results in callback flows
Launching new coroutines to deliver the results from the callback to the channel can lead to the results arriving out of order.
2021-09-04 18:45:46 +02:00
cketti
288486e247 Rewrite FoldersViewModel to use Flow 2021-09-02 21:04:03 +02:00
cketti
a36d7e9d78
Merge pull request #5633 from k9mail/notification_tests
Convert notification tests to Kotlin
2021-09-02 19:13:02 +02:00
cketti
c8268dbe45 Convert notification tests to Kotlin 2021-09-01 02:19:46 +02:00
cketti
140da14939 Rename .java to .kt 2021-09-01 02:18:54 +02:00
cketti
701b640da3 Move LocalFolder.getMessageCount() to MessageStore 2021-08-31 18:38:16 +02:00
cketti
74f7eed769
Merge pull request #5620 from k9mail/refactor_FolderRepository
Remove FolderRepositoryManager
2021-08-27 22:28:24 +02:00
cketti
f2f8e4d0f3 Remove FolderRepositoryManager
Instead we use one FolderRepository instance and pass Account as parameter to individual functions.
2021-08-26 22:34:57 +02:00
cketti
6084321bde Update Kotlin to 1.5.30
Replace calls to deprecated stdlib functions
2021-08-26 17:44:49 +02:00
cketti
e0fe1a2dfa
Merge pull request #5618 from k9mail/convert_to_kotlin
Convert classes in the "notification" package to Kotlin
2021-08-26 16:51:20 +02:00
cketti
5bba535699 Convert notification classes to Kotlin 2021-08-26 01:36:25 +02:00
cketti
ed6cbe1c4b Rename .java to .kt 2021-08-26 01:35:18 +02:00
cketti
d9bf7b491e
Merge pull request #5603 from k9mail/format_flowed_reply
Properly decode format=flowed body before including the text in a reply
2021-08-24 18:57:35 +02:00
cketti
9ee3a76ef1 Move format=flowed decoding to MessageExtractor 2021-08-22 16:20:15 +02:00
cketti
93a1df5bd0 Remove LocalStore.getFolderId() 2021-08-21 22:45:40 +02:00
cketti
f09f2d4003 Move LocalStore.compact() to MessageStore 2021-08-21 22:39:09 +02:00
cketti
baa94b84b9 Remove unused code 2021-08-21 22:38:10 +02:00
cketti
766cf838e0
Merge pull request #5578 from k9mail/ignore_chat_messages
Add setting to suppress notifications for chat messages
2021-08-21 21:26:45 +02:00
cketti
e229254e53
Merge pull request #5574 from k9mail/no_notification_on_first_sync
Don't create notifications when first syncing a folder
2021-08-21 21:22:57 +02:00
cketti
beaefd84d0 Merge branch '5.8-MAINT' into main 2021-08-21 21:17:37 +02:00
cketti
0ad8ce2c0d Fix check for missing incoming/outgoing server credentials 2021-08-19 23:09:39 +02:00
cketti
21102b50dc Set 'last_updated' column to NULL when clearing local messages 2021-08-18 11:55:55 +02:00
cketti
9c185b15cb Remove unnecessary code
Backend.sync() already sets the 'last checked' time.
2021-08-18 11:55:55 +02:00
cketti
326d27476b Don't create notifications when syncing a folder for the first time 2021-08-18 11:55:55 +02:00
cketti
bc366e98eb Add support for retrieving a folder's last checked time via MessageStore 2021-08-18 11:55:21 +02:00
cketti
3252002629 Rename MessageStore.setLastUpdated() to setLastChecked() 2021-08-18 11:53:53 +02:00
cketti
652d52b6a6 Add setting to suppress notifications for chat messages
Messages containing a 'Chat-Version' header field will not generate notifications when this setting is enabled.
2021-08-18 11:17:06 +02:00
cketti
ddcdc72321
Merge pull request #5519 from andrewfg/starred-unread-count
Display both unread and starred message counts in navigation drawer
2021-08-18 01:05:30 +02:00
cketti
74a0ed8b93 Remove UnreadMessageCountProvider 2021-08-17 20:02:56 +02:00
cketti
106c132d8d Code cleanup 2021-08-17 19:57:02 +02:00
Andrew Fiddian-Green
4729ae044a Optionally show starred message count in navigation drawer 2021-08-17 19:18:26 +02:00
cketti
46c4e6fd8d Don't connect to server when incoming/outgoing server passwords are missing
If a user imports an account but doesn't provide server passwords, don't attempt to connect to the incoming or outgoing server of that account.
2021-08-17 01:19:41 +02:00
cketti
04d68624ad Remove notification when a message was deleted 2021-08-07 21:48:01 +02:00
lostfictions
8c56d0c702 make push notification low priority
fixes #5521.
2021-08-04 19:01:16 -04:00
cketti
97891d15e0
Merge pull request #5511 from k9mail/fix_identity_header
Fold identity header value so we're not generating invalid messages
2021-08-04 15:36:00 +02:00
cketti
0e54bd2bc5 Fold identity header value so we're not generating invalid messages 2021-08-04 15:21:29 +02:00
cketti
e9c45b4aa8 Disable Push if not supported by the server 2021-08-02 18:49:06 +02:00
cketti
49600c470c Reset "ring notified" flag when syncing a folder after a Push event
Without this (but with the new silent fixes) new messages downloaded after a Push event would only create silent notifications.
2021-07-31 20:38:50 +02:00
cketti
d461dece67 Fix sound/vibration for the summary notification 2021-07-31 20:36:01 +02:00
cketti
529a6c0aad Make sure summary notification is silent during quiet time 2021-07-31 20:02:59 +02:00
cketti
2ef430565d Make sure "stacked notifications" are silent 2021-07-31 20:02:18 +02:00
Matt Smith
baed7c09b8 Show full error message in notification 2021-07-17 15:36:18 +12:00
cketti
26c64806f2 Add "Push Info" screen 2021-07-15 00:20:48 +02:00
cketti
00be66b1c1 Don't throw in AccountPushController.updatePushFolders()
When the 'backendPusher' property is null the AccountPushController (and BackendPusher) have already been stopped.
2021-07-13 15:45:21 +02:00
cketti
38c0b2dfb2 Restart AccountPushControllers when connectivity returns
PushController.onConnectivityChanged() is not only called when the active network changes, but also when connectivity returns (offline -> online). In that case we need to restart the AccountPushControllers.
2021-07-10 14:28:57 +02:00
cketti
108868155e Persist general settings on a background thread 2021-07-08 22:56:45 +02:00
plan3d
68fd9cf819 Issue #2490: Inline attachments are included in forwarded messages 2021-07-06 21:00:18 +02:00
cketti
7580c04d6c Don't allow an IDLE refresh interval of 1 minute 2021-07-05 17:38:49 +02:00
cketti
95ecac8893 Close all Push connections when Android connects to another network
When the default network changes Android usually kills connections established over the old network after a little while. K-9 Mail treats this as a regular network error and sleeps for 5 minutes before trying to re-establish the Push connection(s). Closing old connections and opening new ones when a network change is detected avoids this error.
2021-07-04 21:27:38 +02:00
cketti
830b358ff3 Change 'ConnectivityChangeListener' interface
Distinguish between 'connectivity changed' and 'connectivity lost' events.
2021-07-04 21:17:06 +02:00
cketti
1a12ab3177 Add new setting: showRecentChanges 2021-07-03 14:13:29 +02:00
cketti
991f814980 Introduce GeneralSettingsManager
A first step towards moving away from the global mutable state in `K9`.
2021-07-01 17:47:10 +02:00