Skip to content

Conversation

@cmonfortep
Copy link
Contributor

Task/Issue URL: https://app.asana.com/0/72649045549333/1158528929795781/f
Tech Design URL:
https://app.asana.com/0/0/1159351515769075/f
https://app.asana.com/0/0/1159576948378809/f
CC:
https://app.asana.com/0/0/1159508097265265/f

Description:
Inserting the two retention CTAs (default browser + search widget) into the concept test onboarding.
The first experiment will run having default browser CTA inside onboarding flow, and search widget CTA after Dax journey is finished.

Steps to test this PR:

Check CTAs are shown for control:

  1. Open VariantManager.kt and comment out all variants other than mu control
  2. Run a fresh installation of the app and launch it to the welcome screen
  3. Ensure Welcome screen is shown
  4. Press Continue
  5. Ensure the the Make DuckDuckGo Your Default onboarding is shown
  6. Select Maybe later to get to the home screen
  7. Ensure the widget CTA shows

Check CTAs are shown for control:

  1. Open VariantManager.kt and comment out all variants other than mu control
  2. Run a fresh installation of the app and launch it to the welcome screen
  3. Ensure Welcome screen is shown
  4. Press Continue
  5. Ensure the the Make DuckDuckGo Your Default onboarding is shown
  6. Make DDG default browser
  7. Ensure Continue Screen appears
  8. Press Start Browsing
  9. Ensure the widget CTA shows

Concept variant

  1. Hardcode and use the mv variant in the VariantManager using the ConceptTestvariant feature.
  2. Run a fresh installation of the app and launch it to the welcome screen
  3. Ensure concept test flow starts
  4. Press Let's do it
  5. Ensure DefaultBroser CTA is NOT shown
  6. Ensure Browser is shown
  7. Interact till Dax journey finishes
  8. Ensure search widget CTA does NOT appear when opening a new tab.

Concept variant with CTAs

  1. Hardcode and use the mz variant in the VariantManager using the ConceptTest and SuppressDefaultBrowserContinueScreen variant feature.
  2. Run a fresh installation of the app and launch it to the welcome screen
  3. Ensure concept test flow starts
  4. Ensure DefaultBroser CTA is shown
  5. Make DDG your default browser
  6. Ensure Continue UI is NOT shown
  7. Ensure you are in Browser
  8. Ensure Dax dialog is shown showing "Next, try...."
  9. Interact till Dax journey finishes
  10. Ensure search widget CTA appears when opening a new tab.

Concept variant with CTAs

  1. Hardcode and use the mz variant in the VariantManager using the ConceptTest and SuppressDefaultBrowserContinueScreen variant feature.
  2. Run a fresh installation of the app and launch it to the welcome screen
  3. Ensure concept test flow starts
  4. Ensure DefaultBroser CTA is shown
  5. Press Maybe later
  6. Ensure you are in Browser
  7. Ensure Dax dialog is shown showing "Next, try...."
  8. Interact till Dax journey finishes
  9. Ensure search widget CTA appears when opening a new tab.

Internal references:

Software Engineering Expectations
Technical Design Template

@cmonfortep cmonfortep changed the title Feature/cristian/insert cta concept test 1 Insert CTAs into concept test experience #1 Feb 1, 2020
@subsymbolic subsymbolic self-assigned this Feb 3, 2020
Copy link
Contributor

@subsymbolic subsymbolic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! A couple of optional comments.

Variant(
key = "mz",
weight = 1.0,
features = listOf(ConceptTest, SuppressDefaultBrowserContinueScreen),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: The feature lists outline what's different to the control and I was expecting mz to be the same as mv but with a new feature. I wonder if we could copy mv and add this as an extra "positive" feature e.g "ConceptTestDefaultBrowser"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update: We discussed this and SuppressDefaultBrowserContinueScreen makes sense

}

private fun handleOriginInternalBrowser(): Boolean {
var forceNavigateToBrowser = false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: Can we rename this to navigateToBrowser, forceNavigateToBrowser sounds too alarming

}
}
is Origin.ExternalBrowser -> {
if (newViewState is ViewState.ContinueUI) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is hard to follow. It would be good if we could tweak newViewState() to do the heavy lifting and provide a valid state here without all these conditionals. Right now the logic is spread out.

Making more clear state transitions moving some parts into more concrete methods.
Not rendering DefaultBrowserDialogUI(false) to hide instructions card, instead always hide instructions card when user navigates to browser.
@cmonfortep cmonfortep merged commit 0285938 into develop Feb 5, 2020
@cmonfortep cmonfortep deleted the feature/cristian/insert_cta_concept_test_1 branch April 13, 2020 14:55
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.

2 participants