[Brand design updates - Core App Components] Update Address Bar Radius, Icons & Icon Animations - #9490
[Brand design updates - Core App Components] Update Address Bar Radius, Icons & Icon Animations#9490mikescamell wants to merge 9 commits into
Conversation
4767d67 to
533544d
Compare
533544d to
4085601
Compare
| R.drawable.ic_video_player_color_24_brand_update | ||
| } else { | ||
| legacyRes | ||
| } |
There was a problem hiding this comment.
Ad-block icon swap never matches
Medium Severity
resolveAdBlockingIcon only swaps when the incoming resource is CommonR.drawable.ic_video_player_color_24, but the ad-blocking omnibar animation always supplies ic_video_player_blocked_color_24. The brand-update duck player asset is therefore never applied to that animation when the address-bar rebrand toggle is on.
Please tell me if this was useful or not with a 👍 or 👎.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 4085601. Configure here.
4085601 to
b93b92a
Compare
Load the address bar toggle alongside the overall brand-design toggle so its cached value is available before the browser renders its first frame.
Apply the color, alert, and exclamation artwork to both the leading icon and trackers-blocked animation. Box each asset in a 40dp container with the shared inset, and verify each protected-state mapping in unit tests.
Use the shared 48dp input-radius token for the real omnibar, its panels, and the top and bottom launch mockups. Resolve the toggle synchronously so the temporary launch toolbar cannot expose the legacy radius. Reapply the radius from view state so existing tabs restore the legacy 16dp radius when the flag is disabled and return to the rebrand radius when it is re-enabled.
Resolve the cached toggle synchronously for the initial ViewState, then observe the same toggle for later changes. This prevents legacy icons from being emitted before the enabled state arrives asynchronously.
Remove the competing view tint and let the opaque vector color render directly so the icon no longer appears fainter than adjacent actions.
b93b92a to
0d7915c
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
There are 3 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0d7915c. Configure here.
| searchIcon.gone() | ||
| if (appBrandDesignUpdateToggles.addressBar().isEnabled()) { | ||
| duckPlayerIcon.setImageResource(R.drawable.video_player_color_24_brand_update) | ||
| } |
There was a problem hiding this comment.
Duck Player icon not reset
Medium Severity
duckPlayerIcon / customTabDuckPlayerIcon only swap to video_player_color_24_brand_update when addressBar() is on, and never restore ic_video_player_color_24 when it turns off. After an enable→disable (internal flip or kill switch), the rebrand asset stays visible even though radius and shield assets revert.
Please tell me if this was useful or not with a 👍 or 👎.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 0d7915c. Configure here.
| <item name="daxButtonLargeTopPadding">@dimen/rebrandButtonLargeTopPadding</item> | ||
| <item name="daxButtonSmallVerticalInset">@dimen/rebrandButtonSmallVerticalInset</item> | ||
| <item name="daxButtonLargeVerticalInset">@dimen/rebrandButtonLargeVerticalInset</item> | ||
| <item name="cookiesAnimationRadius">@dimen/rebrandInputRadius</item> |
There was a problem hiding this comment.
Cookie radius wrong toggle
Low Severity
cookiesAnimationRadius is updated only in ThemeOverlay.Rebrand (gated by theme()), while cookie Lotties and the address bar radius follow addressBar(). With the toggles independent, the cookie chip can keep the legacy corner radius next to rebranded cookie animations and a pill-shaped address bar—or the reverse.
Please tell me if this was useful or not with a 👍 or 👎.
Reviewed by Cursor Bugbot for commit 0d7915c. Configure here.


Task/Issue URL: https://app.asana.com/1/137249556945/project/1207908166761516/task/1216420975330070?focus=true
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable):
Description
Steps to test this PR
Feature 1
UI changes
See this task
Note
Medium Risk
Large omnibar/UI surface with many animation and layout branches; regressions could affect privacy shield display or address bar styling when the toggle flips, though behavior is gated and legacy paths remain when disabled.
Overview
Adds an
addressBar()sub-toggle onAppBrandDesignUpdateToggles(pre-warmed withtheme()) so address bar radius, shield/cookie/ad-blocking/Duck Player assets, and the 40dp shield box ship behind an internal flag.When enabled, the omnibar uses 48dp corner radius via
applyAddressBarRebrandRadius,isAddressBarRebrandEnabledinOmnibarLayoutViewModelview state (including live toggle updates), and the same radius onBrowserActivitymockup toolbars. Rebrand theme addsrebrandInputRadius,daxColorStatusRed, and mapscookiesAnimationRadiusonThemeOverlay.Rebrand.Privacy shield picks rebranded Lottie/static assets (
shield_color_24,shield_alert_24,exclamation_recolorable_24) and returns a boxed layout flag soOmnibarLayoutsizes the shield totoolbarIcon. Cookie and ad-blocking animations and tracker shield setup use brand-update Lotties/drawables when the toggle is on; Duck Player usesvideo_player_color_24_brand_updateon custom tabs and in the leading icon state.PrivacyShieldAnimationHelper.setAnimationViewnow requiresisAddressBarRebrandEnabledand returns whether the icon is boxed. Tests cover radius application, toggle-driven view state, and asset resolution helpers.Reviewed by Cursor Bugbot for commit 0d7915c. Bugbot is set up for automated code reviews on this repo. Configure here.