The minimum API level was bumped in the Core 1.13.0 release, leading to
a number of new warnings about deprecated Java API usage which turn
fatal with warnings-as-errors enabled.
Differential Revision: https://phabricator.services.mozilla.com/D207971
#### What
Make tab strip part of the container layout that includes toolbat that scrolls up with web content
#### How
– Create a layout that contains tab strip compose view and toolbar, this is selected in `BrowserToolbarView` class when tab strip is enabled and it's not a custom tab.
– Based on the layout, tab strip compose content is called/emitted.
– The said layout's layout params behaviour is set to EngineViewScrollingBehaviour instead of always setting the BrowserToolbar's layout param's behaviour to it as the layout can be a `ToolbarContainerView` containing `BrowserToolbar` or simply `BrowserToolbar`
– The layout is not attached to container on inflation but added explicity in init. This is done, so the layout then references the inflated xml (so it can be used to attached scrolling behaviour) instead of the root in which it is inflated. No behaviour changes in either approach.
– Update `EngineViewClippingBehaviour` to depend on `ScrollableToolbar` interface. So `ui-widgets` module needs to depend on `concept-toolbar`. A bonus here is that now the reflection call is replaced by a type check.
– Update toolbarHeight logic based on custom tab session and toolbar position
#### Further possible refactors and improvements
– Rename `BrowserToolbarView` to `BrowserToolbarContainer` as it's now a container and was never a View but an encapsulation to initialize `BrowserToolbar`
– Investigate making `BrowserToolbarView.view: BrowserToolbar` variable private
– In Settings.kt, `toolbarPosition` should be used by outside callers as opposed to `shouldUseBottomBar`
Differential Revision: https://phabricator.services.mozilla.com/D205201