_This change should have no user impact._
This flag had a condition that would always evaluate to `false`. This PR
fixes that, and adds a comment about why it's a little verbose.
For certain kinds of notifications, we attach "intents" to let the
system know who's contacting us (for use in, say, share sheet
suggestions; controlled by Settings > Chats > Share Contacts with
iOS). Previously we only provided "rich" intents on iOS 15 and a
minimal implementation for iOS 13, but even if iOS 13 won't do as much
with the information we can be more consistent.
_This change should have no user impact._
The database corruption flag lives on `UserDefaults`. Currently, this
flag is controlled through `SSKPreferences`, but I kinda think that's
the wrong place—database corruption isn't really a user preference.
This moves it into its own file, tests it, and [drops booleans in favor
of an enum][0]. I think this is useful on its own, but also prepares us
for an upcoming change.
[0]: https://www.luu.io/posts/dont-use-booleans
- Use Xcode 14 for all of our jobs. If something like `genstrings`
changes, this should keep that job consistent with everything else.
- Use macos-12 for all of our jobs. It’s probably best to keep things
consistent, and macos-11 will eventually go away.
- Remove duplicate check for a `+` at the beginning of each value.
- Don’t return a big-endian UInt64 from a method. The type information
(unfortunately) doesn’t include endianness, which makes that approach
somewhat more error-prone.
- Add a type that tracks validated input/output pairs. Future changes
will want to perform the validation and then use both input & output.
In the happy path, someone will join you in the call, and the join
sound will be played, stopping the ringing. If you instead leave the
call, the change in the call service's "current call" will stop the
ringing (as a looping sound). If you get disconnected, that will also
stop the ringing. And if it turns out there were already people in the
call, that will be treated the same as joining.