Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add MailSet support #7429

Closed
12 tasks done
jomapp opened this issue Aug 20, 2024 · 0 comments
Closed
12 tasks done

add MailSet support #7429

jomapp opened this issue Aug 20, 2024 · 0 comments
Labels
new feature user stories in varying refinement states
Milestone

Comments

@jomapp
Copy link
Contributor

jomapp commented Aug 20, 2024

Add MailSet support to the client.

In order to allow importing of mails we replace legacy MailFolders (non-static mail listIds) with new MailSets (static mail listIds). From now on, mails have static mail listIds and static mail elementIds. To move mails between new MailSets we introduce MailSetEntries ("entries" property on a MailSet), which are index entries sorted by the received date of the referenced mails (customId).

Test Notes:

Legacy client and new client supporting MailSets

  • offline migrations
  • notifications & app icon badge count
  • mail search
  • contact search
  • calendar search
  • counter updates
  • move mails
  • delete mails from trash
  • mobile back press (Android). On main view model and search view
  • offline mail access
  • inbox rules (old rule / old client - old rule / new client - new rule / old client - new rule / new client)
  • all lists are displayed correctly
@jomapp jomapp added bug broken functionality, usability problems, unexpected errors new feature user stories in varying refinement states and removed bug broken functionality, usability problems, unexpected errors labels Aug 20, 2024
@jomapp jomapp closed this as completed in 112de54 Aug 20, 2024
@tuta-sudipg tuta-sudipg added this to the 242 milestone Aug 21, 2024
tuta-sudipg pushed a commit that referenced this issue Aug 27, 2024
we now store custom id entities in the offline storage, which means we need to
make sure storing ranges and comparing ids works for them. in order to achieve
that, we decided to store the normally base64Url-encoded, not lexicographically
sortable ids in the sortable base64Ext format.

the Offline Storage needs to use the "converted" base64Ext ids internally everywhere
for custom id types, but give out ranges and entities in the "raw" base64Url format and
take raw ids as parameters.

to make this easier, we implement the conversion in the public CacheStorage::getRangeForList
implementation and use the private OfflineStorage::getRange method internally.
tuta-sudipg pushed a commit that referenced this issue Aug 27, 2024
…7429

additionally, add test for storing instance with CustomId OfflineStorage
tuta-sudipg pushed a commit that referenced this issue Aug 27, 2024
we now store custom id entities in the offline storage, which means we need to
make sure storing ranges and comparing ids works for them. in order to achieve
that, we decided to store the normally base64Url-encoded, not lexicographically
sortable ids in the sortable base64Ext format.

the Offline Storage needs to use the "converted" base64Ext ids internally everywhere
for custom id types, but give out ranges and entities in the "raw" base64Url format and
take raw ids as parameters.

to make this easier, we implement the conversion in the public CacheStorage::getRangeForList
implementation and use the private OfflineStorage::getRange method internally.
tuta-sudipg pushed a commit that referenced this issue Aug 27, 2024
…7429

additionally, add test for storing instance with CustomId OfflineStorage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature user stories in varying refinement states
Projects
None yet
Development

No branches or pull requests

2 participants