-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add contextual Duck.ai onboarding #7593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add contextual Duck.ai onboarding #7593
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt
Outdated
Show resolved
Hide resolved
f6409a0 to
95f02d2
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
app/src/main/res/layout/bottom_sheet_duck_ai_contextual_onboarding.xml
Outdated
Show resolved
Hide resolved
95f02d2 to
35413bd
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
82a5dbd to
428a344
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
428a344 to
83351f3
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Show resolved
Hide resolved
...n/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialogFactory.kt
Show resolved
Hide resolved
2c226d4 to
6c65ff7
Compare
6c65ff7 to
d97b08f
Compare
malmstein
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works as expected. Left a few suggestions but nothing blocker, nice job!
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Outdated
Show resolved
Hide resolved
...n/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialogFactory.kt
Show resolved
Hide resolved
duckchat/duckchat-impl/src/main/res/layout/bottom_sheet_duck_ai_contextual_onboarding.xml
Outdated
Show resolved
Hide resolved
duckchat/duckchat-impl/src/main/res/layout/bottom_sheet_duck_ai_contextual_onboarding.xml
Outdated
Show resolved
Hide resolved
duckchat/duckchat-impl/src/main/res/layout/bottom_sheet_duck_ai_contextual_onboarding.xml
Outdated
Show resolved
Hide resolved
duckchat/duckchat-impl/src/main/res/layout/bottom_sheet_duck_ai_contextual_onboarding.xml
Outdated
Show resolved
Hide resolved
b397583 to
dbce8d6
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Outdated
Show resolved
Hide resolved
dbce8d6 to
1716742
Compare
...src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingBottomSheetDialog.kt
Outdated
Show resolved
Hide resolved
...at-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingViewModel.kt
Show resolved
Hide resolved
1716742 to
85271db
Compare
...at-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingViewModel.kt
Show resolved
Hide resolved
85271db to
52e4c37
Compare
e3fb5cf to
4029861
Compare
Task/Issue URL: https://app.asana.com/1/137249556945/project/1200204095367872/task/1212787351113601?focus=true ### Description - Translations for #7593 ### Steps to test this PR - [ ] CI is green <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk localization-only change: adds/relocates string resources without altering app logic; primary risk is missing/incorrect translations or resource merge issues. > > **Overview** > Adds localized string resources for the **Duck.ai contextual onboarding** bottom sheet (title/body and primary/secondary actions) across `values/` and multiple `values-xx/` locales. > > Moves these onboarding strings out of `values/donottranslate.xml` into the translatable `strings-duckchat.xml` files (and removes the English copies from `donottranslate.xml`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c80e962. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Dax The Translator <daxmobile@duckduckgo.com>
There was a problem hiding this 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.
...at-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckAiContextualOnboardingViewModel.kt
Show resolved
Hide resolved
Task/Issue URL: https://app.asana.com/1/137249556945/task/1212889618211014?focus=true ### Description - Pixels for contextual Duck.ai onboarding. ### Steps to test this PR - [x] Fresh install - [x] Enable “contextualMode” in Feature Flag Inventory - [x] Visit a website - [x] Tap the Duck.ai omnibar icon - [x] Verify that “m_aichat_contextual_onboarding_displayed” is sent - [x] Tap “Got it" - [x] Verify that “m_aichat_contextual_onboarding_confirm_pressed” is sent - [x] Repeat and tap “View settings" - [x] Verify that “m_aichat_contextual_onboarding_settings_pressed” is sent <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: adds new analytics pixel definitions and fires them from the onboarding bottom sheet without changing core Duck.ai behavior or data handling. > > **Overview** > Adds three new Duck.ai contextual onboarding pixels (sheet shown, "Got it" pressed, and "View settings" pressed) to `duck_chat.json5` and wires them into `DuckChatPixelName`/param-removal configuration. > > Updates `DuckAiContextualOnboardingBottomSheetDialog` (and its factory) to inject `Pixel` and fire the new events when the sheet is displayed and when either action is taken. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 9353974. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->

Task/Issue URL: https://app.asana.com/1/137249556945/project/488551667048375/task/1212975986537003?focus=true
Description
Steps to test this PR
contextualModein Feature Flag InventoryUI changes
Note
Medium Risk
Changes the Duck.ai contextual entry flow by gating it behind a new, persistent onboarding bottom sheet and adds new pixel instrumentation. Risk is mainly UX/behavioral (showing the wrong sheet or persisting dismissal incorrectly) rather than security-related.
Overview
Adds a non-dismissible contextual-mode onboarding bottom sheet that is shown the first time a user opens Duck.ai contextual mode; primary action marks onboarding complete and continues to the contextual sheet, while secondary action opens AI Features settings.
Updates the omnibar Duck.ai click path to branch between
ShowDuckAIContextualOnboardingvsShowDuckAIContextualModebased on a persisted completion flag stored in DuckChat DataStore/repository, and introduces new pixels (m_aichat_contextual_onboarding_*) for display/confirm/settings actions.Includes new UI resources (layout + icon + localized strings) and expands unit/instrumentation tests to cover the new command, persistence, and repository/API additions.
Written by Cursor Bugbot for commit c6f1607. This will update automatically on new commits. Configure here.