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.
Additional branching introduces complexity so we should avoid it when
possible. This branch was also unused so it's more likely to have bugs
if we tried to use it after some refactor.
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.
Initially we did this to avoid a duplicated task right after the migration from Fennec. We'd end up
with the original task from Fennec and the new one from Fenix; with the Fennec task still showing
Fennec in the app switcher, but launching Fenix once selected.
Anyhow, now on Android 11 this causes the Fenix task to get duplicated. The simple fix is to not
do any of that anymore. This may re-introduce the problem with the Fennec migration, but:
* We are at 100% rollout for quite some time. There are still users migrating, but the impact
of the bug is much lower.
* The bug after the migration was only temporary. This bug here is happening every time you
launch Fenix. So I'd rather fix this than a possible inconvenience right after the migration.
This also simplifies how we do this. We're no longer creating instances of `DesktopFolder` class
nor creating copies of BookmarkNodes just to display root titles correctly for the 'edit folder' UI.
This also switches to a simpler bookmarks query API ('getBookmark') which doesn't fetch
children. We don't need 'children' for this dialog, and so don't need to do the extra work.
Note that the "Share" title is still constrained to start at the end of the
close button - I don't know why the previous extra constraint was causing the
differing behavior in LTR and RTL, but this seems to fix it.
* 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
* 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
* 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
* add info for scaling of wordmark files
* fix typo
* Iceraven banner
* Iceraven banner
* Iceraven banner
* Iceraven banner
* Iceraven banner
* Delete ic_logo_wordmark_normal.png
we don't need this in root, only in fork-asset-sources
* Delete ic_logo_wordmark_private.png
we don't need this in root, only in fork-asset-sources
* upload XCFs for Iceraven rebranding
These could easily be edited in the future to add a logo, for example. See details in wordmark_dpi file.
* Fix all 5 failing tests
* Add Travis CI build status to README file
* Ignore an intermittently failing test, update travis config to not ignore failures
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.
* 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