Skip to content

Commit 990e91a

Browse files
authored
Onboarding Design Experiment: Final fixes (#6590)
Task/Issue URL: https://app.asana.com/1/137249556945/project/1207908166761516/task/1211042630873651?focus=true ### Description This PR fixes several animation issues in the onboarding experience: 1. Added proper handling for hiding the Buck magnifying glass animation when showing DaxIntroSearchOptionsCta 2. Fixed the BB shield animating up as the text animation starts playing 3. Fixed a bug where click listeners were being set before animations completed ### Steps to test this PR _BB Fixes_ - [x] Verify the shield does not move up as the text animation plays on the initial onboarding screen _Buck Fixes_ - [x] Verify that the Buck magnifying glass animation properly hides when dismissing on new tabbing after "Try a Search" - [x] Confirm that click listeners on search and site suggestion options only activate after animations complete. Tap them when they are not visible. ### UI changes N/A
1 parent 62603a5 commit 990e91a

File tree

3 files changed

+35
-18
lines changed

3 files changed

+35
-18
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3175,8 +3175,10 @@ class BrowserTabFragment :
31753175
daxBubbleCta.hideDaxBubbleCta(binding)
31763176
hideDaxBubbleCta()
31773177
if (onboardingDesignExperimentManager.isBuckEnrolledAndEnabled()) {
3178-
if (daxBubbleCta is DaxBubbleCta.DaxEndCta) {
3179-
hideBuckEndAnimation()
3178+
when (daxBubbleCta) {
3179+
is DaxBubbleCta.DaxIntroSearchOptionsCta -> hideBuckMagnifyingGlassAnimation()
3180+
is DaxBubbleCta.DaxEndCta -> hideBuckEndAnimation()
3181+
else -> Unit
31803182
}
31813183
}
31823184
renderer.showNewTab()
@@ -4521,12 +4523,15 @@ class BrowserTabFragment :
45214523
}
45224524

45234525
if (onboardingDesignExperimentManager.isBuckEnrolledAndEnabled()) {
4524-
if (configuration is DaxIntroVisitSiteOptionsCta && context?.resources?.getBoolean(R.bool.show_wing_animation) == true) {
4525-
lifecycleScope.launch {
4526-
with(newBrowserTab.wingAnimation) {
4527-
delay(2.5.seconds)
4528-
show()
4529-
playAnimation()
4526+
if (configuration is DaxIntroVisitSiteOptionsCta) {
4527+
hideBuckMagnifyingGlassAnimation()
4528+
if (context?.resources?.getBoolean(R.bool.show_wing_animation) == true) {
4529+
lifecycleScope.launch {
4530+
with(newBrowserTab.wingAnimation) {
4531+
delay(2.5.seconds)
4532+
show()
4533+
playAnimation()
4534+
}
45304535
}
45314536
}
45324537
}
@@ -4737,6 +4742,10 @@ class BrowserTabFragment :
47374742
}
47384743
}
47394744

4745+
private fun hideBuckMagnifyingGlassAnimation() {
4746+
newBrowserTab.buckMagnifyingGlassAnimation.isGone = true
4747+
}
4748+
47404749
private fun hideBuckEndAnimation() {
47414750
newBrowserTab.buckEndAnimation.isGone = true
47424751
val backgroundColor = requireActivity().getColorFromAttr(attrColor = CommonR.attr.daxColorBackground)

app/src/main/java/com/duckduckgo/app/cta/ui/Cta.kt

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,8 @@ sealed class OnboardingDaxDialogCta(
485485
onboardingDesignExperimentManager.isBbEnrolledAndEnabled() -> {
486486
setBBOnboardingDialogView(
487487
title = getTrackersDescription(context, trackers),
488-
description = context.getString(R.string.bbOnboardingTrackersBlockedDialogDescription),
488+
description = context.getString(R.string.bbOnboardingTrackersBlockedDialogDescription)
489+
.getStringForOmnibarPosition(settingsDataStore.omnibarPosition),
489490
primaryCtaText = buttonText?.let { context.getString(it) },
490491
binding = binding,
491492
onTypingAnimationFinished = onTypingAnimationFinished,
@@ -912,11 +913,14 @@ sealed class OnboardingDaxDialogCta(
912913

913914
optionsViews.forEachIndexed { index, buttonView ->
914915
options[index].setOptionView(buttonView)
915-
buttonView.animate().alpha(MAX_ALPHA).duration = DAX_DIALOG_APPEARANCE_ANIMATION
916-
buttonView.setOnClickListener {
917-
onSuggestedOptionClicked?.invoke(options[index], index)
918-
wingAnimation.gone()
919-
}
916+
buttonView.animate().alpha(MAX_ALPHA)
917+
.setDuration(DAX_DIALOG_APPEARANCE_ANIMATION)
918+
.withEndAction {
919+
buttonView.setOnClickListener {
920+
onSuggestedOptionClicked?.invoke(options[index], index)
921+
wingAnimation.gone()
922+
}
923+
}
920924
}
921925

922926
showAndPlayWingAnimation()
@@ -1004,10 +1008,13 @@ sealed class OnboardingDaxDialogCta(
10041008

10051009
optionsViews.forEachIndexed { index, buttonView ->
10061010
options[index].setOptionView(buttonView)
1007-
buttonView.animate().alpha(MAX_ALPHA).duration = DAX_DIALOG_APPEARANCE_ANIMATION
1008-
buttonView.setOnClickListener {
1009-
onSuggestedOptionClicked?.invoke(options[index], index)
1010-
}
1011+
buttonView.animate().alpha(MAX_ALPHA)
1012+
.setDuration(DAX_DIALOG_APPEARANCE_ANIMATION)
1013+
.withEndAction {
1014+
buttonView.setOnClickListener {
1015+
onSuggestedOptionClicked?.invoke(options[index], index)
1016+
}
1017+
}
10111018
}
10121019
}
10131020

app/src/main/java/com/duckduckgo/app/onboarding/ui/page/BbWelcomePage.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@ class BbWelcomePage : OnboardingPageFragment(R.layout.content_onboarding_welcome
273273
}
274274

275275
val titleText = getString(R.string.highlightsPreOnboardingDaxDialog1TitleBb)
276+
binding.daxDialogCta.initial.dialogTitleInvisible.text = titleText
276277

277278
afterTypingAnimation = {
278279
binding.daxDialogCta.initial.dialogTitle.finishAnimation()

0 commit comments

Comments
 (0)