Cache the list of installed browsers. Calling `Browsers.all`
the application directly redundantly recalculates the list.
Accessing the list of installed browsers through this cache
will reduce that overhead.
* For #4977 - Support opening Fennec pinned website shortcuts in Fenix
Fennec's pinned website shortcuts are set to open the BrowserApp activity.
So we need a new activity alias to actually catch such Intents. Otherwise they
would open "org.mozilla.firefox/.App" without any way to inform that this is
the result of the user clicking on a pinned shortcut.
For actually checking if the newly received Intent is of a Fennec pinned
shortcut we introduce a new FennecBookmarkShortcutsIntentProcessor which will
prepare the Intent to open the shortcut's URL in a new tab.
* For #4977 - Don't keep IntentReceiverActivity on the back stack
For successive Fennec pinned shortcuts to create a new IntentReceiverActivity
and be processed as normal we need to not keep this as our task root.
* For #4977 - Test the FennecBookmarkShortcutsIntentProcessor
This annotation was not applied correctly and lint was unable to ensure
it was used properly: it declared an error in lint saying so but that
error was ignored. I did not know how to apply the annotation - and I
felt it had limited utility - so I removed it entirely in order to
permit the lint baseline file to be removed (it was the only error).
* For #220
- Added advanced header + locale settings item in the settings fragment
* For #220
- Added locale selection page with lib state + handling of locale changes
* For #220
- Removed registering for locale changes in the manifest, allow system
to restart activity in that scenario
* For #220
- Added unit tests for locale settings page
* For #220: fixed an outdated unit test
ga-a
Co-authored-by: Severin Rudie <Baron-Severin@users.noreply.github.com>
* For #7410: rewrite updateBookmarkFromObservableInput with coroutines
* For 7410: remove RxJava from project. :(
* For 7410: converted updateBookmarkFromTextChanges to Flow per review
* For #7352: integrate highlightable browser menu changes
* For 7352: invalidate menu when reader mode availability changes
* For 7352: removed highlight from reader mode appearance per UX
* For #5074 - Add UI tests for logins and passwords setting menu
* fix detekt failure
* remove old file
* fix scroll small screens
* fix reviewer comments
* For #7254: Replace anko applyConstraintSet
* Anko has been deprecated and will not be continued
* Refactor ConstraintSet changes
* Replace applyConstraintSet in SearchLayouts
* Refactor HomeFragment ConstraintSet
* Define anonymous ConstraintSet
* Remove ConstraintSet prefix from PARENT_ID
Uninstall engine immediately and allow reinstall in onCancel.
Set previous list with default engine in onCancel.
Keep default engine change in operation and remove now unnecessary view refresh.
* For #7219 - Use accent color for downloads dialog positive button
* For #7219 - Fixes gap beneath download notification dialog
* switch to setimageresource
This call will acquire a "write" lock at the storage layer (sqlite's reserved+),
which may interfere with migrations that run during startup as well (they need to
write to storage, and so also need to acquire a lock). If these operations clash,
we get a SQLITE_BUSY crash. For now, just disable the maintenance operation.
* Fixes#7048.
Adds extension function to check if online or not based on capabilities
Modified `buildDeviceList`
Modifies tests
* Fixing lint error for max length
Fixing test in AppRequestInterceptorTest.kt
* Adds suppression for deprecation
Moving away from using anko for ConnectivityManager instance
* Creates ConnectivityManager extension component
* Fixes#7180
Refactors test cases to fix static mocks
If the intent that starts the HomeActivity includes an extra
boolean flag named finishonboarding and it is set to true,
Fenix will "finish onboarding".
disabling setting test options due to different screen sizes
name screenshots according to robots
fix kotlin style
update settings tests with new Toolbar option
screenshots tests in different package than ui tests
As mentioned in the class comment, we could use an alternative
implementation to measure perf from outside the application however
it's more complicated to set up and less consistent with our cold
startup methodology so we'll start with this.