Skip to content

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

Draft
mikescamell wants to merge 3 commits into
feature/mike/onboarding-brand-design-updates/contextual-serpfrom
feature/mike/onboarding-brand-design-updates/contextual-site-suggestions
Draft

Onboarding Brand Design Update: Add in-context Site Suggestions dialog#8483
mikescamell wants to merge 3 commits into
feature/mike/onboarding-brand-design-updates/contextual-serpfrom
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
Moderate risk because it changes the in-context onboarding CTA class used under the brand-design flag and wires up option rendering/click handling, which could affect onboarding flow and analytics pixels.

Overview
Implements the brand-design variant of the in-context Site Suggestions onboarding dialog by populating DaxSiteSuggestionsBrandDesignUpdateContextualCta with a real layout (activeIncludeId), banner background, title/description binding, and option button setup/click handlers.

Updates CtaViewModel.getSiteSuggestionsDialogCta to return the new brand-design CTA when the flag is enabled (passing theme), and ensures the custom “visit site” pixel path treats the new CTA the same as the legacy one. Adds a dedicated unit test to verify the correct CTA class is returned under the flag and that key pixels (shown/ok/dismiss) still fire with the expected parameters.

Reviewed by Cursor Bugbot for commit c0ff122. 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 2 times, most recently from 364e7bc to fd1d514 Compare May 12, 2026 17:14
…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.
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-site-suggestions branch from fd1d514 to c0ff122 Compare May 12, 2026 17:38
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.

1 participant