Skip to content

Onboarding Brand Design Update: Add in-context Site Suggestions dialog#8483

Merged
mikescamell merged 4 commits into
developfrom
feature/mike/onboarding-brand-design-updates/contextual-site-suggestions
May 14, 2026
Merged

Onboarding Brand Design Update: Add in-context Site Suggestions dialog#8483
mikescamell merged 4 commits into
developfrom
feature/mike/onboarding-brand-design-updates/contextual-site-suggestions

Conversation

@mikescamell
Copy link
Copy Markdown
Contributor

@mikescamell mikescamell commented May 7, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/task/1212699268790181

Description

Migrates the Site Suggestions contextual onboarding dialog to the new brand-design layout introduced in #8439, gated behind the onboardingBrandDesignUpdate feature flag.

With the flag on:

  • Site Suggestions CTA renders in the new card chrome with title and body as distinct blocks.
  • Adds the SiteSuggestions CTA background banner asset and wires it to the slide-up / slide-out animation pipeline introduced in Onboarding Brand Design Update: Add in-context SERP dialog #8439 — slides up from behind the card on appear, slides out on dismiss / content swap.

Out of scope (still legacy / stub-only with the flag on, queued in follow-up PRs in this stack): trackers-blocked, main-network, no-trackers, fire-button, end. Their Dax*BrandDesignUpdateContextualCta classes remain as scaffolding.

Steps to test this PR

Designs

Please run all testing steps for in-context dialog changes from the contextual-end branch/PR to ease the testing burden.

To see these changes patch (Linear onboarding flag included just for continuity)

Index: app/src/main/java/com/duckduckgo/app/onboardingbranddesignupdate/OnboardingBrandDesignUpdateToggles.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/app/src/main/java/com/duckduckgo/app/onboardingbranddesignupdate/OnboardingBrandDesignUpdateToggles.kt b/app/src/main/java/com/duckduckgo/app/onboardingbranddesignupdate/OnboardingBrandDesignUpdateToggles.kt
--- a/app/src/main/java/com/duckduckgo/app/onboardingbranddesignupdate/OnboardingBrandDesignUpdateToggles.kt	(revision 6fd565c8894daba16281ae9bcf3452d038ae8d6d)
+++ b/app/src/main/java/com/duckduckgo/app/onboardingbranddesignupdate/OnboardingBrandDesignUpdateToggles.kt	(date 1777967047929)
@@ -34,13 +34,13 @@
      * Main toggle for the onboarding brand design update feature.
      * Default value: false (disabled).
      */
-    @Toggle.DefaultValue(DefaultFeatureValue.FALSE)
+    @Toggle.DefaultValue(DefaultFeatureValue.TRUE)
     fun self(): Toggle
 
     /**
      * Toggle for the brand design update variant.
      * Default value: false (disabled).
      */
-    @Toggle.DefaultValue(DefaultFeatureValue.FALSE)
+    @Toggle.DefaultValue(DefaultFeatureValue.TRUE)
     fun brandDesignUpdate(): Toggle
 }
Index: app/src/main/java/com/duckduckgo/app/onboarding/ui/OnboardingViewModel.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/app/src/main/java/com/duckduckgo/app/onboarding/ui/OnboardingViewModel.kt b/app/src/main/java/com/duckduckgo/app/onboarding/ui/OnboardingViewModel.kt
--- a/app/src/main/java/com/duckduckgo/app/onboarding/ui/OnboardingViewModel.kt	(revision 6fd565c8894daba16281ae9bcf3452d038ae8d6d)
+++ b/app/src/main/java/com/duckduckgo/app/onboarding/ui/OnboardingViewModel.kt	(date 1777657893440)
@@ -45,7 +45,7 @@
     val viewState = _viewState.asStateFlow()
 
     fun initializePages() {
-        pageLayoutManager.buildPageBlueprints()
+        pageLayoutManager.buildBrandDesignUpdatePageBlueprints()
     }
 
     fun pageCount(): Int {
@@ -69,8 +69,8 @@
         }
     }
 
-    fun initializeOnboardingSkipper() {
-        if (!appBuildConfig.canSkipOnboarding) return
+    fun initializeOnboardingSkipper() { 
+        return
 
         // delay showing skip button until privacy config downloaded
         viewModelScope.launch {

UI changes

Screenshots


Note

Medium Risk
Changes the onboarding site-suggestions dialog implementation behind the brand-design flag, including view wiring and click handling, which could affect onboarding UI behavior and related pixels. Risk is mitigated by new unit tests covering flag selection and pixel-firing parity.

Overview
Implements the brand-design in-context Site Suggestions onboarding dialog by replacing the prior stub DaxSiteSuggestionsBrandDesignUpdateContextualCta with a real layout include, background banner, and runtime wiring for title/description plus up to 4 selectable site options.

Updates CtaViewModel.getSiteSuggestionsDialogCta to return the new brand-design CTA when the flag is enabled (passing theme), and adjusts BrowserTabViewModel CTA matching for the custom-visit-site pixel. Adds DaxSiteSuggestionsBrandDesignUpdateContextualCtaTest to verify flag-based CTA selection and that shown/OK/close pixels still fire with the expected parameters.

Reviewed by Cursor Bugbot for commit b7e3dc9. Bugbot is set up for automated code reviews on this repo. Configure here.

@mikescamell mikescamell changed the title feat(onboarding): migrate DaxSiteSuggestionsCta to brand-design contextual dialog Onboarding Brand Design Update: Add in-context Site Suggestions dialog May 7, 2026
@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-fire-button to graphite-base/8483 May 7, 2026 14:57
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from b7a3d2b to a199fa5 Compare May 7, 2026 14:57
@mikescamell mikescamell force-pushed the graphite-base/8483 branch from 7da49a0 to 0c5e838 Compare May 7, 2026 14:57
@mikescamell mikescamell changed the base branch from graphite-base/8483 to feature/mike/onboarding-brand-design-updates/contextual-fire-button May 7, 2026 14:58
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ 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 a199fa5. Configure here.

@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-fire-button to graphite-base/8483 May 7, 2026 17:12
@mikescamell mikescamell force-pushed the graphite-base/8483 branch from 0c5e838 to 739d7d9 Compare May 7, 2026 17:12
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from a199fa5 to 9207123 Compare May 7, 2026 17:12
@mikescamell mikescamell changed the base branch from graphite-base/8483 to feature/mike/onboarding-brand-design-updates/contextual-serp May 7, 2026 17:12
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from 9207123 to 7335178 Compare May 7, 2026 17:38
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-serp branch from 739d7d9 to d6e4bbd Compare May 8, 2026 16:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from 7335178 to 1451253 Compare May 8, 2026 16:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-serp branch from 8c3eb41 to 5a64a54 Compare May 11, 2026 10:28
@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-serp to graphite-base/8483 May 11, 2026 11:27
@mikescamell mikescamell force-pushed the graphite-base/8483 branch from 5a64a54 to 5cbf746 Compare May 11, 2026 11:42
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from 1451253 to 3698120 Compare May 11, 2026 11:42
@mikescamell mikescamell changed the base branch from graphite-base/8483 to feature/mike/onboarding-brand-design-updates/contextual-serp May 11, 2026 11:42
@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-serp to graphite-base/8483 May 11, 2026 12:04
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from 3698120 to 7263236 Compare May 11, 2026 12:06
@mikescamell mikescamell force-pushed the graphite-base/8483 branch from 5cbf746 to ba57ce6 Compare May 11, 2026 12:06
@mikescamell mikescamell changed the base branch from graphite-base/8483 to feature/mike/onboarding-brand-design-updates/contextual-serp May 11, 2026 12:06
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-serp branch from ba57ce6 to c27fcf4 Compare May 12, 2026 16:44
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch 4 times, most recently from c0ff122 to ea30049 Compare May 13, 2026 07:20
@mikescamell mikescamell marked this pull request as ready for review May 13, 2026 13:15
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-serp branch from 51df44e to ad9f776 Compare May 13, 2026 13:39
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from ea30049 to 67d0384 Compare May 13, 2026 13:39
Base automatically changed from feature/mike/onboarding-brand-design-updates/contextual-serp to develop May 14, 2026 11:08
@mikescamell mikescamell requested a review from malmstein as a code owner May 14, 2026 11:08
…xtual dialog

Populate the Stage-1 stub with options binding
(onboardingStore.getSitesOptions) and the options-variant content layout,
replace sentinels across CtaViewModel and BrowserTabViewModel, and add
the per-dialog unit test.
8 WebP variants (4 densities × light/dark) at 90% quality.
CtaViewModel gained this constructor dependency on develop. Adds the
mock to DaxSiteSuggestionsBrandDesignUpdateContextualCtaTest to fix
the broken unit test compilation on this branch.
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from 67d0384 to b7e3dc9 Compare May 14, 2026 11:12
@mikescamell mikescamell merged commit ca336ec into develop May 14, 2026
13 checks passed
@mikescamell mikescamell deleted the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch May 14, 2026 12:02
@mikescamell mikescamell restored the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch May 14, 2026 15:46
mikescamell added a commit that referenced this pull request May 14, 2026
…g v2 (#8564)

Task/Issue URL:
https://app.asana.com/1/137249556945/task/1212699268790181

Was removed from develop.

See #8483 for description and
details

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Updates onboarding CTA selection and renders a new in-context
site-suggestions dialog, which could affect onboarding flow and CTA
telemetry if view wiring or toggles behave unexpectedly.
> 
> **Overview**
> Switches the brand-design onboarding path for the *site suggestions*
dialog to return `DaxSiteSuggestionsBrandDesignUpdateContextualCta`
(instead of the legacy `DaxSiteSuggestionsCta`) and wires it into the
browser query handling so custom visit-site pixels still fire.
> 
> Implements the previously-stubbed
`DaxSiteSuggestionsBrandDesignUpdateContextualCta` UI (layout include,
background, title/description, 4 option buttons, and click callbacks via
`setOnOptionClicked`) and adds a test ensuring the brand-design toggle
returns the new CTA and that `shown`/`ok`/`dismiss` pixels continue to
fire with the expected params.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
f7e78f8. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants