* Move RegistrationNavigationController
* Create the most basic version of RegistrationNavController conceivable
* Hook up RegistrationCoordinator
* Add new scheme for testing registration bravo
* Finish registration in RegistrationCoordinator
* Get tests to compile again (but not pass)
* Tests passing again
* Test session happy path all the way through to completion
* Test KBS auth credential happy path all the way through to completion
* Test KBS reg recovery password happy path all the way through to completion
* PR comments
Also includes updated behavior for interactive dismiss:
• higher drag threshold until dismiss
• dimmer underneath image
• image is scaled down to 80% size.
* Add ability to compute registration recovery password
* Add RegistrationCoordinator
* remove repeat nav controller that evan added
* Scaffolding for RegistrationCoodinator test
* Add first round of RegistrationCoordinator tests, some stuff I needed to get them working, and some fixes to RegistrationCoordinator itself I discovered thanks to the tests
* switch to owsFailBeta
* Add auth credential candidate flow tests, related fixes and additions to coordinator and friends
* Add tests for session based registration path and associated fixes
* PR comment nits
This renames `RegistrationPhoneNumber` to
`Deprecated_RegistrationPhoneNumber`, which should have no user impact.
This will be useful for an upcoming change.
• Disable video stabilization (both on capture preview and video recording connections). Stabilization is causing a significant video stream latency, which resulted in last ~1.5 seconds of video not being written. The other thing stabilization was causing was zoomed-in camera preview. With stabilization off in-app camera now has the same FOV (in both preview and recorded video) as native camera app in Photo mode.
• Use a separate AVCaptureSession for capturing audio. This prevents a visible stutter in video stream at the beginning of video recording as audio input is added.
• Use separate dispatch queues for processing video and audio samples. This is again done to minimize a chance of any stutter during recording.
• Redo the way duration of video recording in progress is displayed in the UI. Old solution was to use a timer initialized at video recording start. New solution is to send actual recorded duration from the video recording stack all the way up to the UI.
This change should have no user impact. I made sure I could go through
registration as normal after this change.
`RegistrationCountryState` was an `NSObject` and now it's a Swift-only
struct. (It still requires `Dependencies` for now, but I think this is
an improvement.)