Skip to content

Onboarding Brand Design Update: Add in-context Main Network dialog#8480

Draft
mikescamell wants to merge 3 commits into
feature/mike/onboarding-brand-design-updates/contextual-trackers-blockedfrom
feature/mike/onboarding-brand-design-updates/contextual-main-network
Draft

Onboarding Brand Design Update: Add in-context Main Network dialog#8480
mikescamell wants to merge 3 commits into
feature/mike/onboarding-brand-design-updates/contextual-trackers-blockedfrom
feature/mike/onboarding-brand-design-updates/contextual-main-network

Conversation

@mikescamell
Copy link
Copy Markdown
Contributor

@mikescamell mikescamell commented May 7, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/project/1207908166761516/task/1214598065379694?focus=true

Description

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

With the flag on:

  • Main Network CTA renders in the new card chrome with title and body as distinct blocks.
  • Reuses the post-page-load CTA background banner introduced for Trackers Blocked — slides up from behind the card on appear, slides out on dismiss / content swap.
  • Adds parity tests for the migrated DaxMainNetworkCta (pixel names, ctaPixelParam, ctaId, body-string composition) so the brand-design path stays telemetry-equivalent to legacy.

Out of scope (still legacy / stub-only with the flag on, queued in follow-up PRs in this stack): 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 in-context onboarding CTA selection and rendering for major-network detection (behind the brand-design flag), which could affect when dialogs appear and how pixels are fired. Risk is limited by feature gating and added tests, but impacts onboarding UX/telemetry.

Overview
Migrates the Main Network contextual onboarding dialog to the new brand-design in-context card when the brand-design update is enabled, while preserving the legacy DaxMainNetworkCta path when disabled.

Implements DaxMainNetworkBrandDesignUpdateContextualCta to actually render content (description text, primary CTA click handling, background banner) and to vary the body string based on whether the site domain matches known network domains.

Adds tests to verify the brand-design CTA is returned for major networks and that dismissal/pixel behavior remains aligned (cta id/param and shown/ok/close pixels).

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

@mikescamell mikescamell changed the title feat(onboarding): migrate DaxMainNetworkCta to brand-design contextual dialog Onboarding Brand Design Update: Add in-context Main Network dialog May 7, 2026
@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked to graphite-base/8480 May 7, 2026 14:56
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from cc16580 to 071b244 Compare May 7, 2026 14:56
@mikescamell mikescamell force-pushed the graphite-base/8480 branch from 9ce56f5 to abdc187 Compare May 7, 2026 14:56
@mikescamell mikescamell changed the base branch from graphite-base/8480 to feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked May 7, 2026 14:56
@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked to graphite-base/8480 May 7, 2026 17:13
@mikescamell mikescamell force-pushed the graphite-base/8480 branch from abdc187 to d5674d7 Compare May 7, 2026 17:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from 071b244 to 64da96e Compare May 7, 2026 17:14
@mikescamell mikescamell changed the base branch from graphite-base/8480 to feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked May 7, 2026 17:14
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 64da96e. Configure here.

@mikescamell mikescamell changed the base branch from feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked to graphite-base/8480 May 7, 2026 17:39
@mikescamell mikescamell force-pushed the graphite-base/8480 branch from d5674d7 to b9a5cda Compare May 7, 2026 17:40
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from 64da96e to ec42745 Compare May 7, 2026 17:40
@mikescamell mikescamell changed the base branch from graphite-base/8480 to feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked May 7, 2026 17:40
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from ec42745 to 6e285f7 Compare May 8, 2026 16:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked branch 2 times, most recently from 7d9b64a to c23d1ca Compare May 11, 2026 11:42
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from 6e285f7 to e306f79 Compare May 11, 2026 11:42
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from e306f79 to d0d5650 Compare May 11, 2026 12:06
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked branch from c23d1ca to 6d41103 Compare May 11, 2026 12:06
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked branch from 6d41103 to 6909efc Compare May 12, 2026 16:44
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from d0d5650 to 3c09cc1 Compare May 12, 2026 16:44
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked branch from 6909efc to 7079813 Compare May 12, 2026 17:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from 3c09cc1 to 538855a Compare May 12, 2026 17:14
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-trackers-blocked branch from 7079813 to 3d6239a Compare May 12, 2026 17:38
@mikescamell mikescamell force-pushed the feature/mike/onboarding-brand-design-updates/contextual-main-network branch from 538855a to 04e03bc 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