* Pull out GroupMigrationActionSheet.
* Add group migration action sheets.
* Make changes to enable testing migrations.
* Rewrite banners in Swift.
* Refine group migration logic; add support for testability.
* Add legacy group upgrade action sheet.
* Add 'group update info messages' around migrations.
* Add new limits around group size.
* Rename migration modes to "manual", "auto-migration."
* Add legacy groups action sheets.
* Try to fill in missing UUIDs before migrating groups.
* Ignore "known unregistered" users during group migrations.
* user can add custom notification sounds from Files app (aiff, wav, or caf files)
* former OWSSound enum is now named OWSStandardSound, OWSSound turned into an alias for NSUInteger
* custom sounds get IDs based on the hash of the file name
This fixes an issue where some emojis in the emoji reaction picker are
truncated and replaced with an ellipsis.
This only occurs on certain devices and I haven't been able to repro in
the simulator. A couple devices I've seen this occur on:
- iPhone X running iOS 13.6 and 13.7
- iPhone SE 2 running iOS 14b5
The issue has something to do with the typographic box for certain emoji
glyphs having a slightly larger size than most other emojis. The actual
glyph seems to have the same size. Many of the broken emojis have a ZWJ,
but there are some correctly sized emojis that also have a ZWJ.
The emojis that I've used for testing are:
- 👩🦰 (Woman + ZWJ + Red Hair)
Typographic size: 36.00x38.19. Image glyph size: 32.00x32.00
- 👱♀️ (Blond person + ZWJ + Female)
Typographic size: 40.00x38.19. Image glyph size: 32.00x32.00
To workaround this, we set the line break mode on the emoji label to
clip. On devices that don't have this issue, nothing changes. On devices
that do have this issue, we end up clipping a bit of the typographic
rect. In testing, it seems that we never end up clipping the actual
glyph image. But even if we do, it's at least better than truncating.