Final diff which glues all parts together. Added the thumbHash / thumbnailThumbHash field
to all places where it's needed (plenty of them).
The flow is more or less like that: media mission step -> input-state-container -> keyserver upload endpoint -> database -> upload fetcher -> multimedia message -> client db serialize/deserialize -> multimedia.react.js -> expo-image components.
Also for local uploads: ... -> input-state-container -> redux update message -> ...
Details
- Reviewers
atul ashoat - Commits
- rCOMMcd377781d242: Add thumbhash field to multimedia messages
At this point, e2e thumbhash for sending and receiving multimedia messages should work. Sent a few of them, disabled local media cache and artifically delayed decryption To make effect more visible.
Tested both iOS and Android, both encrypted and non-encrypted media.
Diff Detail
- Repository
- rCOMM Comm
- Branch
- barthap/blurhash
- Lint
No Lint Coverage - Unit
No Test Coverage
Event Timeline
This diff is huge and it's hard to tell if it's "exhaustive" (eg. that everything has been covered).
Going to add @atul as blocking to make sure we get a second pair of eyes on it.
Separately, want to encourage you to make sure you've tested all of the cases. It would be good to test iOS and Android, encrypted and non-encrypted, and images and video.
native/input/input-state-container.react.js | ||
---|---|---|
807 | I guess this was an accidental omission from an earlier diff. It would be good to put this sort of thing in its own diff | |
1163–1170 | Should this whole thing be read-only? |
That's what I did! I'll amend the test plan to emphasize it
native/input/input-state-container.react.js | ||
---|---|---|
807 | Leftover from my experiments (temporarily wanted encryption steps at the top). I'll delete this |
I can relate. Adding a single field to the message is overwhelming and requires touching so many places in the codebase. And one Flow type change starts the snowball effect making it difficult to split into smaller (yet readable) diffs
I tested various scenarios and also looked for all occurrences of e.g. encryptionKey that I was adding recently to see all places where I made changes then.