* Define intent data for activity
* Search dialog shows permissions for allow and deny camera
* Check camera permissions for fxa pairing
* Check camera permissions for old search
* Tests for pairing sync interactor and controller.
* Cleanup
* Use bool pref for setting. Use interfaces and default implementations for the sync interactor and controller.
* Lint
* Show dialog when permissions are denied
* Add qr permissions dialog to search dialog fragment
* Add qr permissions dialog to the pairing screen
* Show dialog after permissions have been denied
* Reset focus after denying permissions
* Show dialog after permissions denied in search frag and par frag
* Use shared preferences to store camera permission state
* Move dialog creation into the search controller and add tests
* Dialog controller implementation and test
* Route to intent with correct activity. Set focus when dismissing dialog
* Get preferences in old search
* For #13272 - Adds the ToolbarView to the SearchDialogFragment
* For #13273 - Replaces container dependency with context in AwesomebarView
* For #13276 - Hacks together the awesomebar and toolbar in the new search experience
This is functionally equivalent to the code before this patch but should
be slightly more performant in theory because ConstraintLayout is
expensive to inflate.
The elevation and layoutParams set dynamically appeared to have no effect
with the wrapping view but broke the view when used by itself so I had
to remove them. I also updated a few other unnecessary params.
Theoretically this may have some perf benefits but I didn't see anything
outside noise levels after I took the numbers (but I didn't try very
hard).
When you remove a search engine from our list, an undo snackbar that outlives the fragment is shown. If you go back to the search fragment and press undo, now the shortcut list gets updated
This removes Fretboard. The goal is to reduce cold startup costs associated with loading the experiments on the main thread. We currently have two experiments frameworks in use and should only require one.