Commit graph

194 commits

Author SHA1 Message Date
cketti
fea7b7c7bf Update Robolectric to 4.7.3 2022-02-21 18:43:01 +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
a4e1a77892 Switch to mockito-inline 2022-02-03 01:10:52 +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
parkerfath
722e6b923f
Change delimiter in address fields from ASCII 0 to 1 (#5863)
Fixes search by sender name.

Co-authored-by: Fath <fath@147dda1a2773.ant.amazon.com>
2022-01-14 19:40:28 +01:00
cketti
17e69419b8 Remove now unused BackendFolder.getLastUid() 2022-01-05 20:21:58 +01:00
cketti
2331626170 Add a migration to seed the new location with the highest known UID 2022-01-05 20:21:58 +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
386dd9073f Update 'new_message' column when adding and removing notifications 2021-12-11 15:41:15 +01:00
cketti
245404d6e4 Add 'new_message' column to 'messages' table 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
14be46389f Persist data about notifications 2021-12-04 21:59:06 +01:00
cketti
4ff0eddaf2 Add 'notifications' table to the message database 2021-12-03 01:22:39 +01:00
cketti
230d0f4a84 Remove unused code (K9.Intents.Share.EXTRA_FROM) 2021-11-26 02:46:58 +01:00
Tobias Preuss
f0d3f371f0 Avoid leaking CountingOutputStream.
+ Affects com.fsck.k9.mail.filter.CountingOutputStream.
2021-11-23 09:45:05 +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
d211b72892 Add MessageStore.getFolderServerId() 2021-09-24 18:52:42 +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
701b640da3 Move LocalFolder.getMessageCount() to MessageStore 2021-08-31 18:38:16 +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
f09f2d4003 Move LocalStore.compact() to MessageStore 2021-08-21 22:39:09 +02:00
cketti
eb1b310968 Add migration to rewrite 'last_updated' column 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
Andrew Fiddian-Green
4729ae044a Optionally show starred message count in navigation drawer 2021-08-17 19:18:26 +02:00
cketti
7580c04d6c Don't allow an IDLE refresh interval of 1 minute 2021-07-05 17:38:49 +02:00
cketti
f9f5f8eb1c Set push class of Inbox to 'first class' by default 2021-06-26 22:17:24 +02:00
cketti
e6f152a00c Remove migration that enabled polling when we temporarily disabled push 2021-06-24 15:22:10 +02:00
cketti
54a2cf8e28 Rewrite 'folderPushMode' value of non-IMAP accounts to 'NONE' 2021-06-24 15:22:10 +02:00
cketti
6862b737ed Add FolderRepository.getPushFoldersFlow()
This method returns a flow that emits the list of folders to sync via Push. It will automatically update when the account's 'Push folders' setting or a folder's Push class is changed.
2021-05-28 14:15:48 +02:00
cketti
769d658e5a Correctly persist message download state
Add the flag X_DOWNLOADED_FULL when the message has been downloaded completely, the flag X_DOWNLOADED_PARTIAL when only the text of a message has been downloaded, and set no additional flag when only the envelope and structure of the message has been downloaded. The latter happens when we fetch remote search results.
2021-05-10 00:47:27 +02:00
cketti
a389c1860f Move notification mechanism from K9MessageStore to NotifierMessageStore 2021-04-24 01:09:37 +02:00
cketti
e05bc461b5 Re-implement copy message functionality in MessageStore
Instead of loading a message into memory and then saving it to the new folder the new code copies the database entries and data files.
2021-04-23 22:28:40 +02:00
cketti
9ef105d74f
Merge pull request #5267 from k9mail/update_dependencies 2021-04-22 18:37:38 +02:00
cketti
5444d8be3a Remove explicit dependency on Kotlin's standard library 2021-04-22 03:54:15 +02:00
cketti
632d8f3cb7 Upgrade Mockito-Kotlin to 3.1.0 2021-04-22 03:54:15 +02:00
cketti
105d55a303 Remove unnecessary code to update thread entry 2021-04-22 03:43:00 +02:00
cketti
4573b5d001 Clean up ThreadInfo 2021-04-22 03:33:32 +02:00
cketti
813cc4eec2 Remove unused ThreadInfo.messageIdHeader 2021-04-22 03:17:48 +02:00
cketti
826e4a470e Various message threading fixes 2021-04-21 20:44:47 +02:00
cketti
c43f27a9ff
Merge pull request #5259 from k9mail/save_messages 2021-04-20 21:23:47 +02:00
cketti
903babe917 Save drafts using MessageStore 2021-04-17 23:26:46 +02:00
cketti
f58860f8bb
Merge pull request #5257 from k9mail/save_messages
Split Backend.fetchMessage() into two methods
2021-04-17 21:45:00 +02:00
cketti
127e311385 Change FolderDetailsAccessor to better support local folders
For "local-only" folders the server ID column in the database is NULL.
2021-04-17 17:54:25 +02:00
plan3d
27e6dc9d84 Issue #5249: Fixed NPE in folder settings of outbox folder 2021-04-17 10:12:54 +02:00
cketti
428ae60a58 Split Backend.fetchMessage() into two methods
The two new methods now also save the downloaded message data instead of returning a Message instance.
MessageStore.saveRemoteMessage() will now replace a message if it already exists.
2021-04-17 00:04:58 +02:00
cketti
289744ec24 Change key/value functions in K9BackendFolder to use MessageStore 2021-04-15 01:51:54 +02:00
cketti
cf51883637 Change K9BackendFolder.getOldestMessageDate() to use MessageStore 2021-04-15 01:51:52 +02:00
cketti
4e4babeea6 Change K9BackendFolder.saveMessage() to use MessageStore 2021-04-15 01:19:18 +02:00
cketti
78e616ed37 Remove ThreadMessageOperations' dependency on LocalStore 2021-04-13 17:43:24 +02:00
cketti
923b0308b4 Change K9BackendFolder.setMessageFlag() to use MessageStore 2021-04-09 03:08:25 +02:00
cketti
c20de077d9 Change K9BackendFolder.getMessageFlags() to use MessageStore 2021-04-09 02:24:02 +02:00
cketti
c17db2cb94 Change K9BackendFolder.isMessagePresent() to use MessageStore 2021-04-09 02:00:10 +02:00
cketti
d52b4511fe Change K9BackendFolder.setStatus() to use MessageStore 2021-04-08 21:33:25 +02:00
cketti
e7b764e6e8 Change K9BackendFolder.setLastChecked() to use MessageStore 2021-04-08 21:28:05 +02:00
cketti
cbb5825d03 Change K9BackendFolder.setMoreMessages() to use MessageStore 2021-04-08 21:23:48 +02:00
cketti
7dc4b6dd71 Change K9BackendFolder.getMoreMessages() to use MessageStore 2021-04-08 21:12:01 +02:00
cketti
3a86cc632e Update 'delete_message' trigger to delete entries in 'threads' table 2021-04-08 20:27:03 +02:00
cketti
cf9037a513 Add code to delete messages to MessageStore 2021-04-08 20:27:03 +02:00
cketti
9d4d7f0352 Move code to get message server IDs and dates from K9BackendFolder to MessageStore 2021-04-07 20:39:19 +02:00
cketti
484db5730d Move code to get message server IDs from K9BackendFolder to MessageStore 2021-04-07 20:23:54 +02:00
cketti
102fbc690f Move code to get highest message UID from K9BackendFolder to MessageStore 2021-04-07 20:23:52 +02:00
cketti
2e6b5710be Move code to retrieve folder details from K9BackendFolder to MessageStore 2021-04-07 17:21:40 +02:00
cketti
6373d0249f Move delete folder code from K9BackendStorage to MessageStore 2021-04-06 22:17:38 +02:00
cketti
59b8ead290 Move create/update folder code from K9BackendStorage to MessageStore 2021-04-03 18:35:29 +02:00
cketti
9932ed3b68 Move "extra values" code from K9BackendStorage to MessageStore 2021-04-03 17:48:43 +02:00
cketti
9c257685a3 Move more code from FolderRepository to MessageStore 2021-04-03 02:32:13 +02:00
cketti
e2bc68e0ac Move FolderRepository.updateFolderDetails() to MessageStore.updateFolderSettings() 2021-04-03 00:23:11 +02:00
cketti
796d22a132 Move FolderRepository.getFolderId() to MessageStore 2021-04-02 06:12:09 +02:00
cketti
392ae3eb3c Move FolderRepository.getDisplayFolders() to MessageStore 2021-04-02 05:52:57 +02:00
cketti
05543214e5 Move more code from FolderRepository to MessageStore 2021-04-02 01:26:12 +02:00
cketti
0250736cf5 Move code to read a single folder from FolderRepository to MessageStore 2021-04-02 00:27:02 +02:00
cketti
24f55ee03e Add test for RetrieveMessageOperations.getHeaders() 2021-04-01 01:32:46 +02:00
cketti
e76082568d Move code from MessageRepository to MessageStore 2021-03-31 23:03:46 +02:00
cketti
dc93335100 Move old migration code from 'K9' to storage module 2021-03-24 16:28:07 +01:00
cketti
e601d866c3 Don't violate ServerSetting's nullability constraints when decoding store URIs 2021-02-11 13:24:40 +01:00
cketti
ddabe3a238 Rewrite stored value from "hideSpecialAccounts" to "showUnifiedInbox" 2021-02-07 15:45:14 +01:00
cketti
1f2404557b Migrate storeUri/transportUri to new server settings format 2021-02-01 17:30:21 +01:00
cketti
de2560b90b Remove Account.storeUri and Account.transportUri
The URIs are still used as serialization format when saving settings
2021-02-01 12:54:02 +01:00
cketti
ad2c37d343 Fix ThreadInfo to allow messageIdHeader being null 2020-10-25 16:48:31 +01:00
cketti
1873593dc5 Format Kotlin code 2020-10-16 16:41:19 +02:00
cketti
ed8009d9fa Update ktlint-gradle to 9.4.1, ktlint to 0.39.0
Apply ktlint-gradle plugin to all Gradle subprojects.
2020-10-16 14:27:23 +02:00
cketti
a2ac5b167e Change the way moving messages between folders in the database works
Previously, when moving a message, the entry in the `messages` table was rewritten to reference the destination folder. Then a "deleted" message entry was created referencing the source folder.
This commit changes the move code to create a new entry for the message in the destination folder and then changes the original message entry to be a "deleted" entry.
It's a first step towards being able to use a message's database ID instead of the server ID in "pending commands".

This also continues the project of moving database-related code to the `storage` module. There should now be enough scaffolding in place to make moving code from `LocalStore` and `LocalFolder` relatively painless.
2020-10-15 23:51:49 +02:00
cketti
0fb0de1bb2 Add database migration to clear 'server_id' column of local folders 2020-06-13 02:02:56 +02:00
cketti
8ffd7e9c20 Add database migration to correct Outbox 'server_id' value if necessary 2020-05-29 19:42:34 +02:00
cketti
7a7d588b43 Clean up special local folders in database 2020-05-16 17:46:26 +02:00
cketti
9ed54011ce Refactor MigrationTo75 2020-05-05 22:55:19 +02:00
cketti
cc637a6575 Rename Account.get*Folder() to getImported*Folder() 2020-05-04 16:31:00 +02:00
cketti
fe5dcfa8a1 Rename Account.getInboxFolder() to getLegacyInboxFolder() 2020-05-04 16:31:00 +02:00
cketti
8079ef89b4 Reset folder server IDs in Account 2020-05-04 16:31:00 +02:00
cketti
d298897b51 Store folder IDs of special folders in Preferences 2020-05-04 16:31:00 +02:00
cketti
789769ef39 Replace Account.getOutboxFolder() with Account.getOutboxFolderId() 2020-05-04 16:31:00 +02:00
cketti
9acef0e9a0 Remove placeholder messages that have been kept accidentally in the past 2020-04-29 12:03:46 +02:00
cketti
c5e5b7b4f1 Add migration to rewrite pending commands to use folder IDs 2020-04-25 03:12:46 +02:00
cketti
cc1002eeb4 Use folder database ID for PendingSetFlag 2020-04-25 00:39:34 +02:00
cketti
63c16c137c Use folder database ID for PendingDelete 2020-04-25 00:02:50 +02:00
cketti
f4b25ba55f Add index on message_parts.root 2020-04-23 01:52:57 +02:00
cketti
afcaf96f6d Convert 'Migrations' to Kotlin 2020-04-23 01:37:07 +02:00