TF-3507 Add ADR for fix offline cache prevents updating email query view cache on mobile
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
# 58. Fix offline cache prevents updating email query view on mobile
|
||||||
|
|
||||||
|
Date: 2025-04-03
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
- Issues:
|
||||||
|
- [Offline cache prevents updating email query view #3507](https://github.com/linagora/tmail-flutter/issues/3507)
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
- When we perform too many actions on multiple emails `(Mark as read, mark as star, move, delete, etc.)`,
|
||||||
|
`Email/get` from the value of `Email/changes` will throw an error.
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"type": "requestTooLarge",
|
||||||
|
"description": "Too many items in an email read at level FULL. Got 183 items instead of maximum 100."
|
||||||
|
},
|
||||||
|
"c2"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- Some emails in the `update` of the `Email/change` response were not found in `Email/get`. But we still update newState of email.
|
||||||
|
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
- To solve this problem we propose the most optimal solution which is
|
||||||
|
We will add a `Clean cache & Get all emails` action when the user performs `Pull down to refresh`
|
||||||
|
|
||||||
|
Now when user performs `Pull down to refresh` action. There will be 2 actions performed
|
||||||
|
- If the drag distance is shorter `< 200px` will perform `Refresh` action (`Just call get all emails`)
|
||||||
|
- If the drag distance is shorter `>= 200px` will perform `Deep Refresh` action (`Call clean cache and get all emails`)
|
||||||
|
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
- No lost emails when displayed on list on mobile
|
||||||
Reference in New Issue
Block a user