[lib][keyserver] Use blobURI based on client version
Summary:
The last part of ENG-3966. Details are described in the comments (regarding pt. 4)
This diff introduces a utility function, that constructs a multimedia message based on client version.
Depends on D8373
Test Plan:
CI should finally pass here.
Tested as follows:
- Enabled blob service uploads on both web and native
- Added some console logs to encryptedMediaBlobURI() to display if there's a holder or blobURI.
- On keyserver side, there should always be blobURI.
- The same on web (dev console)
- On native, there should be old format (holder) when minCodeVersion is set to something not yet released (FUTURE_CODE_VERSION) and use blobURI otherwise.
Also tested the following:
- Uploading and displaying encrypted media on Web (both video and images)
- Uploading and displaying encrypted media on Native (both video and images)
- Displaying thread media gallery media on both web and native
Reviewers: ashoat, atul
Reviewed By: ashoat
Subscribers: tomek
Differential Revision: https://phab.comm.dev/D8374