-
Notifications
You must be signed in to change notification settings - Fork 423
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
Fix an issue that causes the fire dialog to show multiple times for the same website after dismissing it #3305
Fix an issue that causes the fire dialog to show multiple times for the same website after dismissing it #3305
Conversation
…he same website after dismissing it
@@ -316,6 +316,9 @@ final class DaxDialogs: NewTabDialogSpecProvider, ContextualOnboardingLogic { | |||
|
|||
func dismiss() { | |||
settings.isDismissed = true | |||
// Reset last shown dialog as we don't have to show it anymore. | |||
removeLastShownDaxDialog() |
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.
Remove held information during onboarding.
@@ -513,6 +512,11 @@ final class DaxDialogs: NewTabDialogSpecProvider, ContextualOnboardingLogic { | |||
|
|||
guard isEnabled, nextHomeScreenMessageOverride == nil else { return nil } | |||
|
|||
if let lastVisitedOnboardingWebsiteURLPath, |
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.
Executes the logic to show last shown dialog after isEnabled check.
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.
Sorry for the delay, LGTM
# By Christopher Brind (4) and others # Via Alessandro Boron (1) and others * main: (27 commits) Bump C-S-S to 6.14.1 (#3331) DuckPlayer Launch Experiment for iOS (#3328) defer loading the tab switcher button until view did load (#3326) Release 7.136.0-3 (#3324) Release PR: Check for the negative attribution case (#3311) fix tab switcher crashes (speculative fix) (#3319) Onboarding highlights feature flag setup (#3308) Release 7.136.0-2 (#3320) Attempt to fix dissapearing privacy icon (#3317) Fix bookmarks toolbar behaviour with Sync Promo on iOS 15 (#3313) Bump BSK with C-S-S to 6.14.0 (#3314) ensure no atb or app version sent with pixel (#3315) Fix #3298: Add support for Xcode 16 (#3299) Fix Keychain Debug view controller segue (#3310) Release 7.136.0-1 (#3309) Fix an issue that causes the fire dialog to show multiple times for the same website after dismissing it (#3305) [DuckPlayer] 28. Open in Youtube -> Youtube App (#3290) usage segmentation (#3263) Fix wrong URL displayed for auth dialog (#3307) iOS Integration of BSK Onboarding (#3282) ... # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj # DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Task/Issue URL: https://app.asana.com/0/1206329551987282/1208180024223015/f
Cc: @SabrinaTardio
Description:
This PR addresses an issue that causes the fire dialog to show multiple times for the same website.
Context
We have logic in place to re-present the dialog if the user reloads the webpage or relaunches the app, allowing them to resume onboarding from where they left off.
We consider the onboarding flow “complete" when the user taps the "High Five" button.
Problem
The issue was that the dialog presentation logic was executed before verifying if the onboarding was complete. As a result, the dialog would reappear every time the website for which it was shown was opened.
Solution
Video Before
Simulator.Screen.Recording.-.iPad.Pro.13-inch.M4.-.2024-09-02.at.16.42.08.mov
Video After
Simulator.Screen.Recording.-.iPad.Pro.13-inch.M4.-.2024-09-02.at.16.49.43.mp4
Steps to test this PR:
Ensure experiment group is returned by adding
return VariantIOS(name: "mb", weight: 1, isIncluded: VariantIOS.When.always, features: [.newOnboardingIntro])
inDefaultVariantManager
at line 153.Expected Result: The fire dialog should not show again.
Definition of Done (Internal Only):
Copy Testing:
’
rather than'
Orientation Testing:
Device Testing:
OS Testing:
Theme Testing:
Internal references:
Software Engineering Expectations
Technical Design Template