In a followup PR, we need to add state to strictModeManager (the
number of suppressions). This is much simpler to do when this is defined
as a class rather than an object. However, when this is defined as a
class, `resetAfter` needs access to the strictModeManager. Instead of
passing it in as an argument, it made sense to move this function onto
the strictModeManager instead.
Since folks are used to calling:
```
StrictMode.ThreadPolicy.allowThreadDiskReads().resetAfter
```
We're going to have to add a lint check to prevent them from doing that.
I originally tried to create this PR leaving this as an object to keep
the change simple but it wasn't worth it - once the object started to
keep state, we'd need to manually reset the state between runs. Also,
the tests were already getting hacky with static mocking so it was
easier to address some of those issues this way too.
This is not the super fancy version yet - since we still need to restore into SessionManager and
haven't fully switched to BrowserStore yet. However AC having knowledge about "undo" and whether
it was performed or not, will help us with features like "recently closed tabs". And once we
can improve "undo", Fenix will get all the nice things automatically.
Requires:
https://github.com/mozilla-mobile/android-components/pull/8449
* Remove search fragment
* Use new folder to search dialog
* Rebase and lint
* Update tests with search dialog nav directions
* Rename interactor to match naming convention. Remove old controller and point everything to the dialog controller.
* Feature flag for ETP cookie purging
* Strings for new ETP description
* Remove icons from ETP info screeen and add category for redirect trackers
* ETP policy factory tests
* Remove icons from ETP panel and add cross tracking allowed field.
* Remove icons on ETP panel. Add blocked category for redirect trackers to panel.
* Add margins to tracking protection settings
* Add github actions workflows
* Add github actions for CI
* Fix lint and detekt errors
* Add caching to the github actions
* Add the workflow statuses to the README
* Give the jobs more descriptive names
* Consolidate github actions workflows to a single workflow
* Give the steps meaningful names, save detekt and lint results
engineView.setDynamicToolbarMaxHeight(0) vs
engineView.setDynamicToolbarMaxHeight(toolbarHeight)
ensures webpage's bottom elements are aligned to the bottom of the browser.
We also need to make sure that when the toolbar is static it does not cover the
bottom of the page - something desired when the toolbar was dynamic.
For this the engineView will have a toolbarHeight bottom margin.
Three new settings and one for which this patch just pre-lands the strings.
The behavior for the "Swipe toolbar up to open tabs" is to be added as part of
a later ticket.
Following issues fixed in tabs tray:
* Place the tab indicator at the top for top tabs tray layout
* Disable reverse layout for compact tabs as it messes with the layout
* Make the new tab button visible in private mode in light theme
The third issue is a bug in upstream Fenix! They did not do sufficient
UI testing of the tabs tray!