We'll now clearly differentiate between cold / hot starts of HomeActivity.kt.
This is needed because Android will resend the original Intent which initially
started the Activity whenever it is restarted from the Recents Screen if the
activity is already destroyed at that time. So in the event that the activity
was before started with an Intent to open a webpage for example whenever the
activity is restarted from Recents it will receive the same Intent to open a
webpage even though that Intent has already been consumed.
Activity's onCreate() will only use the intent processors when the activity is
cold started so that we'll only initially act upon Intents configured for
different behaviors inside the app.
If the activity is destroyed while in background and opened from Recents it
will not act upon the original Intent which is now resent by Android.
Activity's onNewIntent() will be called to act upon a new Intent if the
activity is hot started since we are declared as singleTask and it now has the
responsibility to delegate various intent processors to consume that Intent.
Removed the clearFlags call from the HomeActivity that was causing this issue and removed the now redundant call to update the flag from the redirectToReAuth method
* For #11660:added prefetch for topsites
TopSites will be prefetched with observerOnce (wrapper around observerForever).
Also, the SessionControlView.update() is called right away instead of waiting from consumeFrom
in the HomeFragment.onCreateView() which will allow the UI to render all at once on its first
perform traversal
* Removed the submitList(null) since it retriggered a drawing on lower end device
- Added the undo action for deleting individual history items by creating a new field to the history state containing the id's of the history items that are pending for deletion; This field is used inside the update function from the view to show/hide the items.
- Added a new check inside the "deleteMulti" method from BookmarkFragment that calls the showRemoveFoldersDialog to prevent the user from being able to delete one or more bookmark folders without being asked for confirmation, as in #8648.
This helps because we will always need the observer to be initiated, not only when the `openToBrowser` method gets called. Example: Opening a tab from the tab tray had it's own method for opening the browser, causing this to not be called.
* Set edit text listeners
* Set clearable icons and change with error states
* Clear text buttons show and hide
* Move error checks to afterTextChanged. Refactor. Remove unused color.
for #7225, refactored and cleanup the branch.
for #7225, change strict mode policy only on main process.
for #7225, setting thread policy inside a seperate thread to keep it from getting overridden in activities.
for #7225 removed Handler().postAtFrontOfQueue as a solution due to unknown side effects. moved the enableStrictMode function to be static so we can reuse it.
for #7225 lint check
for #7225 created strict mode manager and moved enabledStrictMode function inside it.
for #7225 removed penalty death on network
for #7225 added allow disk access on thread for already existing violation
strict mode running in main process to see if it passes the gitlab check, will revert it if it doesnt
allowed diskread for super.onCreate for home activity
added comments for disk violation oncreate homeactivity
added fragment manager inside strictmode manager
allowed disk read for onboarding
allowed disk read for cachedTopSites
* For #11171 - Removes feature flag for the new tab tray
* For #11171 - Removes all tab references from homeFragment
* For #11171 - Fixes unit tests
* For #11171 - Gets UI tests to compile and HomeScreenTest to pass
* For #11171 - Fixes `deleteMultipleSelectionTest`
* For #11171 - Fixes `openHistoryItemInNewPrivateTabTest`
* For #11171 - Fixes `openHistoryInPrivateTabTest`
* For #11171 - Fixes `openHistoryInNewTabTest`
* For #11171 - Fixes `openNewPrivateTabTest`
* For #11171 - Fixes tabbedBrowsingTests
* For #11171 - Fixes SettingsPrivacyTest
* For #11171 - Fixes TopSitesTest
* For #11171 - Fixes lint errors
* Ignore
* For #11056 - Removes unused argument when navigating to the collection creation fragment
* For #11056 - Moved the collection creation navigation logic to the TabTrayDialogFragment
* For #11056 - Moves navigating to the share screen from home/browser to the TabTrayDialogFragment
* For #11056 - We moved tab selection logic from home/browser to the tab tray dialog
* For #11056 - Moved new tab tapped logic to the tab tray dialog fragment
* For #11056 - Removes all interactor logic for the TabTrayDialogFragment
* For #11056 - Migrates the presentation / navigation around the TabTrayDialog to the androidx navigation library
* For #10505 - Adjusts wordmark margins
* For #10505 - Removes topsite header, fixes collections header size and removes divider
* For #10505 - Restyle the top site items on the homescreen
Added an extension function that pops the backstack of the fragment so the user is redirected to the Logins and passwords screen.
This is done to force the user to re-authenticate if he wants to re-enter the saved logins flow.
Additionally, some UI elements are being hidden on each Fragment since they were remained visible on the Logins and passwords screen's UI.
- Changed the visibility check to check just for the permissions shown instead of all the permissions in WebsitePermissionsState
- Added bottom padding to the permissions root view so there is balanced padding on top and bottom
For some text and colors, we were using the default styling where
possible. These styles contain references that react to theme changes
like dark mode. Since the migration UI does not respect these changes,
we should not use them.
It is possible that after migration users would already have Firefox PWAs on
their screen.
Since they already know about this functionality, we should not promote it to
them with the one-off `FirstTimePwaFragment`.
To query installed PWAs we'll use an API available only on Android >= 26 which
means that we will probably have half of users with PWAs still see the
onboarding but half which will not.
Problem was that we were trying to process menu changes (in response to account manager events) on some background thread as that's what account manager emits them on, so some code internally in PopupWindow's dismiss handling (i think, didn't dig very deeply here) was silently giving up and we'd get into a bad state.
The reason this seemingly only happened if you quickly opened a menu on startup is because account manager isn't initialized until sometime after the startup finished. So the trick was to open the menu (and register account manager state callbacks) before it got initialized, so that the callbacks are invoked.
This should also reproduce in other, much more obscure ways, e.g. if you open the menu right before sync is scheduled to run in the background, change FxA password on another connected client, and then eventually receive a onAuthenticationProblem callback.
- Renamed DownloadNotification and removed DownloadState.dismissed dependency
- Improved DynamicDownloadDialog behaviour when scrolling
- DynamicDownloadDialog remains attached to tab until dismissed
- Fixed onTryAgain not working for resumed DownloadDialogs
As the bookmark node data is loaded from storage every time the fragment's view is created, when the user navigates to the SelectFolderFragment and returns, the bookmark is loaded once again from storage, replacing the EditText's content (title and URL) which causes the loss of user input.
Validating that the loaded bookmark is different from the one that is already referenced in the fragment avoids unnecessarily replacing the `EditText`s values.
* Create editable view and fragment. Update login info page to display options menu with edit and delete.
* Create feature flag for edit. Check flag in the login detail fragment and default to just delete.
* Add three-dot kebab options menu in login detail fragment. Add title to the login item.
* Nav to and from edit view on save and back pressed.
* Save login through AC login manager. Clear text in editable field on button click.
* Match colors, fonts, dimens to UX specs for edit logins. Enable password reveal/hide and clearing text fields.
* Refactoring logins fragments. Using component Login object for consistency.
Fetch login list when saved logins are opened. Fetch login details when detail view is opened.
Revert "Fetch login list when saved logins are opened. Fetch login details when detail view is opened."
This reverts commit 44fe17166c3332b330229258b2e8982832672e3b.
* Using parcelable login and Login component class to pass ids and items between fragments
* Retrieve login from storage when viewing login details.
Rename login logic for consistency.
Ktlint cleanup
Fix nits and naming consistency.
* UX consistency for login detail and edit login pages
* Rebasing with logins sort - updating logins store.
* Rebasing with logins sort - merging fragments and controllers.
* Lint and removing unused files.
* UX cleanup.
* Update string description
Currently we support sorting by name and by last used. Also, the selected
option is saved in shared preferences so that the last option chosen by
the user is properly displayed even after the app was restarted.
* For #1063 - Adds feature flag and pref for new tab tray
* For #1063 - Swaps add tab to tab tray button when newTabTray is enabled
* For #1063 - Creates hidden preference to use new tab tray
* For #1063 - Hides tabs on home screen when setting is enabled
* For #1063 - Navigate to new tab tray from browser with setting enabled
* For #1063 - Fixes regression where we dont show the new tab message with no tabs and no collections
* For #1063 - Fixes crash when toggling to private mode on the home screen
* For #1063 - combines both settings. Cleans up lint errors