* [Android] Show loading state in Origin preferences during post-purchase credential fetch
When a Brave Origin purchase is completed, there is a delay while the
receipt is passed from Play Store to the SKUs SDK via
fetchOrderCredentials. During this time, the Origin preferences screen
opens but credentials aren't ready yet.
- Disable all toggles and clickable preferences until
fetchOrderCredentials completes
- Show a snackbar with "Disabling features" spinner instead of
"Restart now" during the credential fetch
- On success, re-enable preferences and transition to "Restart now"
- On failure, close the preferences screen
- Always show restart snackbar on toggle change regardless of
setPolicyValue result, since failure means a restart is needed
- Remove duplicate color definitions (schemes_primary_fixed_dim,
schemes_on_primary_fixed, semantic_text_secondary,
semantic_text_tertiary) that already exist in nala tokens
Resolves: https://github.com/brave/brave-browser/issues/53915
Implements new layout for widget search promo panel and introduces better handling of activity recreations and configuration changes to redraw the widget search promo panel with correct theme (day/night) and proper position.
Other notable enhancements:
- Tweak tablet margins to better frame the onboarding cards on foldable devices after initial review with the design team.
- Fix post-FRE intent and delay activity to avoid a glitch on foldable devices by following the same strategy applied upstream.
- Accessibility: include content descriptions for widget search promo panel images.
- Nala: include new drawables from Nala tokens.
- Append new source android-widget for all searches made from the widget.
- Implement tests to verify new source android-widget.
Redesign the Origin preferences screen: add a custom restart
snackbar with dismiss button shown on toggle changes, split then
description into styled title/body/note sections, and rename
the bottom section from Subscription to Purchase.
Resolves: https://github.com/brave/brave-browser/issues/52774
Updates the Day Zero onboarding experience on smartphones and small screen devices to a multi‑step, horizontally advancing flow driven by CTA buttons.
It introduces distinct layouts per step, a pager animation helper, and updates onboarding logic to support a scalable, multi‑step sequence with minimal duplication.
Tablet support is intentionally out of scope and will be handled in a separate PR.
This change has been produced using a Ruby script that implements the
following logic:
1. For each <color> tag in the destination, try to find one in the
source with the same name
2. If found, update the destination tag with the colour from the source
tag
3. If not found, do nothing and move onto the next tag.
4. Tags that exist in the source but not the destination are ignored.
Currently, some tags exist in the destination XML that are missing from
the source and also vice versa.
Once this has been resolved, we should be able to delete the files in
this diff and move to simply copying the generated XML files straight
out of brave/leo.
Additionally, a small change has been made to the Brave Sync "Add New
Device" button to use a Nala-defined colour rather than being hard-coded
to white.
Closesbrave/brave-browser#49143
* [Android] Initial integration of quick shortcut button
- Adds flag for quick shortcut (disabled until all Brave items are available)
- Makes parity with options available with the upstream
- Visual and UI fixes
* Moves flag under Android guards
* Add support for diferent variants
* Remove omnibox highlight which shows up right after onboarding
* Add different variants function
* Add search widget promo on NTP
* Add notification permission changes
* Update widget promo UI
* Update wdp check
Resolve presubmit issue
Implements new layouts and new logic for recovery screens.
1. The recovery phrase is shown when a new Wallet is created and the UI is presented with a blurred component that will be unblurred only upon user confirmation.
2. The recovery phrase verification is now in three steps and will ask to confirm three words picked at a random position.
For security reasons these steps won't allow back navigation and skipping them will consider the backup process as not completed, so the user will have the option to complete the verification later on.
3. The new Wallet restoration screen is the most complex screen of this PR. It accepts a mnemonic phrase made by 12 or 24 words. It can be copied over from clipboard, spit, formatted and pasted nicely in each edit text. The edit text items have been customized to accept the pasted text (See `PasteEditText` component). The layout can switch from 12 and 24 words, and also has a button to mask and unmask the words. The continue button is responsive and is enabled ONLY when all the items have been filled.
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/8f9443470e9356596b45f0ca9ca929f680a71937
[Refactor] Move TabContentManager to chrome/browser/tab_ui.
In this CL, move the following classes to chrome/browser/tab_ui:
- ThumbnailProvider;
- TabContentManager;
- InvalidationAwareThumbnailProvider.
This continue to remove dependencies of chrome_java in
SingleTabSwitcherOnNtpMediator. This CL contains mechanical changes
only.
Bug: 330574966
* Refactor clear clipboard methods and add Javadocs
* Fix null pointer exception when the app is in background
* Remove redundant API check
* Remove unused interface methods
* Perform small refactoring to improve readability
* Remove unused tag
* Move animation drawable to parent class
* Implement custom style for input edit text component
* Implement biometric button
* Rename color using Nala naming convention
* Rename colors following Nala naming convention
* Add UI for always on feature
Add roboto flex font
* Add always on tutorial image resources with tab selectors
* Update UI chanegs for always on tutorial
* Add license headers for resources
Update text change with license header
* Perform minor improvements
* Add back and close icon to main layout
* Perform refactoring to OnNextPage interface
* Implement BaseWalletNextPageFragment that holds a reference to next page interface
* Refine Utils class
* Switch Wallet actions from int to enum type
* Move UnlockWalletFragment outside onboarding package
* Rename onboarding fragments
* Add Javadocs and code comments
* Update onboarding
Add exoplayer hls dependency
Add HLS support
Make changes for events
Refactor PlaylistOptionsEnum
Refactor logs
Remove unused imports
* Update playlist event behaviour
Remove unused imports after refactor
Address PR comments
* Add message for already added content in default playlist
* Add to playlist menu
Add to playlist prefrence
* Move first kotlin class for onboarding to brave core
Add whole kotlin module into brave core
Add required changes for custom datasource
* Add native worker changes for stream
Add initial work for bytes transfer
Changes to play from saved byte array
* Add HLS parsing
Update datasource
* Add playlist streaming mojom implementation
Add observer for playlist streaming
Add playlist streaming observer
Stream from downloading file
Remove test video activity
Remove custom datasource
Remove kotlin files
Initial work for partial download play
* Update soilution for downloading HLS content
* Add download service with progress notification
Add DownloadUtils functions for mp4
Add function for HLS downloading in DownloadUtils
Add changes for hls download in downloadutils
Update changes to file location for playlist item
Add download queue for HLS
Add hlsMediaPath field for android
Update hlsMediaPath after download
Update existing changes with hls file
add changes to donwload multiple HLS items
* Update changes to multiple downloads
Resolve rebase errors
Download progress update after rebase error resolution
Update streaming observer
Add new event callbacks in mojom
Update existing observer logic
* Migrate exoplayer deps with chromium
* Update UI changes to represent download state
Refactor to remove unused import and implementation
Remove auto save settings option
Update move/delete/share icons
Update filesize update
Hide cast button
Remove unused resources in kotlin module
Add patch to suppress lint for unstable api
Remove indirect deps
Remove unrelated code changes
Resolve presubmit errors
* Refactor HLS content generation
* Remove cast dependency
Refactor logs
* Update add media icons resource
Update player bottom sheet behaviour
Address PR comments
* Remove playlist warning dialog as it's irrelavent
Remove unnecessary flag check
* Add playlist stremaing class details
Reformat existing changes
Add mock data for hls file path
* Resolve rebase errors
Resolve presubmit checks
* Update player items on delete/reorder
* Allow delete while in progress
Made changes to delete while playing
* Add prefs to BravePreferencekeys
* Update string resources
Remove debug messages
Resolve presubmit error
Update server selection behaviour from menu
Update server selection menu item
Add country flag
Update country selection icon tint
Update behaviour for country selection
Chromium change:
https://source.chromium.org/chromium/chromium/src/+/ecebb05e61843b6b2b0f8dd1b66158c2a1c98583
SwitchMaterial to MaterialSwitch
Migrate the SwitchMaterial (GM2) into MaterialSwitch (GM3).
To mitigate the size increase for the MG3 switch, we are applying a 0.8 scale for the switch, while setting a bigger minHeight (60dp) in order to maintain the min touch garget size. This however brings the side effect of size could have a bigger height.
Another side effect of scaling is the text come with switch widget will be scaled too. This CL mitigate that by wrapping the switches in a linear layout and intercept the text being set in the resources.
With this migration, there are few gotchas this CL also addresses:
- Migrate the UI using SwitchCompat into MaterialSwitch to keep the consistent look
- Add the materialSwitchStyle to Base.Theme.BrowserUI to cooperate UIs that uses SwitchPreferenceCompat out side of SettingsActivity
- Add themes to render tests that does not apply the theme themselves, so the switches on the goldens has the correct scale applied.
Bug: 1248590
* Tweak primary text color and action bar background color
* Tweak chip selector colors
* Optimize text color attributes
* Network selector icon size
* Tweak Assets text view
* Apply new Wallet background color
* Tweak Wallet background color and toolbar background color
* Add divider lines below toolbar and above navigation bar
* Tweak bottom navigation view style and minor improvements
* Apply code formatting
* Remove duplicated style