diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt
index f1e24be71..8540e2a0a 100644
--- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt
+++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt
@@ -553,11 +553,11 @@ private fun assertWelcomeHeader() =
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
private fun assertGetTheMostHeader() =
- onView(allOf(withText("Get the most out of Firefox Preview.")))
+ onView(allOf(withText("Start syncing bookmarks, passwords, and more with your Firefox account.")))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
private fun assertAccountsSignInButton() =
- onView(ViewMatchers.withResourceName("turn_on_sync_button"))
+ onView(ViewMatchers.withResourceName("fxa_sign_in_button"))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
private fun assertGetToKnowHeader() =
diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt
index 39c49a414..c09fb31d2 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt
@@ -31,9 +31,9 @@ class OnboardingAutomaticSignInViewHolder(
private val headerText = view.header_text
init {
- view.turn_on_sync_button.setOnClickListener {
+ view.fxa_sign_in_button.setOnClickListener {
scope.launch {
- onClick(it.turn_on_sync_button)
+ onClick(it.fxa_sign_in_button)
}
}
}
diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt
index e4fa6d5a3..f7b04965a 100644
--- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt
+++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt
@@ -5,40 +5,40 @@
package org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding
import android.view.View
-import androidx.core.content.ContextCompat
import androidx.navigation.Navigation
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.onboarding_manual_signin.view.*
-import mozilla.components.support.ktx.android.content.getDrawableWithTint
-import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
+import org.mozilla.fenix.ext.addUnderline
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.home.HomeFragmentDirections
+import org.mozilla.fenix.onboarding.OnboardingController
+import org.mozilla.fenix.onboarding.OnboardingInteractor
class OnboardingManualSignInViewHolder(view: View) : RecyclerView.ViewHolder(view) {
private val headerText = view.header_text
init {
- view.turn_on_sync_button.setOnClickListener {
+ val interactor = OnboardingInteractor(OnboardingController(itemView.context))
+
+ view.fxa_sign_in_button.setOnClickListener {
it.context.components.analytics.metrics.track(Event.OnboardingManualSignIn)
val directions = HomeFragmentDirections.actionGlobalTurnOnSync()
Navigation.findNavController(view).navigate(directions)
}
+
+ view.learn_more.addUnderline()
+ view.learn_more.setOnClickListener {
+ interactor.onLearnMoreClicked()
+ }
}
fun bind() {
val context = itemView.context
-
- val appName = context.getString(R.string.app_name)
- headerText.text = context.getString(R.string.onboarding_firefox_account_header, appName)
- val icon = context.getDrawableWithTint(
- R.drawable.ic_onboarding_firefox_accounts,
- ContextCompat.getColor(context, R.color.white_color)
- )
- headerText.putCompoundDrawablesRelativeWithIntrinsicBounds(start = icon)
+ headerText.text = context.getString(R.string.onboarding_firefox_account_header)
}
companion object {
diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt
new file mode 100644
index 000000000..3e1945103
--- /dev/null
+++ b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt
@@ -0,0 +1,22 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.onboarding
+
+import android.content.Context
+import org.mozilla.fenix.BrowserDirection
+import org.mozilla.fenix.HomeActivity
+import org.mozilla.fenix.settings.SupportUtils
+
+class OnboardingController(
+ private val context: Context
+) {
+ fun handleLearnMoreClicked() {
+ (context as HomeActivity).openToBrowserAndLoad(
+ searchTermOrURL = SupportUtils.getFirefoxAccountSumoUrl(),
+ newTab = true,
+ from = BrowserDirection.FromHome
+ )
+ }
+}
diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt
new file mode 100644
index 000000000..ad11d459c
--- /dev/null
+++ b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt
@@ -0,0 +1,14 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.onboarding
+
+class OnboardingInteractor(private val onboardingController: OnboardingController) {
+
+ /**
+ * Called when the user clicks the learn more link
+ * @param url the url the suggestion was providing
+ */
+ fun onLearnMoreClicked() = onboardingController.handleLearnMoreClicked()
+}
diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
index a1a613cc1..3e1bae04a 100644
--- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
+++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
@@ -74,6 +74,10 @@ object SupportUtils {
return "https://support.mozilla.org/$langTag/kb/$escapedTopic"
}
+ fun getFirefoxAccountSumoUrl(): String {
+ return "https://support.mozilla.org/kb/access-mozilla-services-firefox-account"
+ }
+
fun getMozillaPageUrl(page: MozillaPage, locale: Locale = Locale.getDefault()): String {
val path = page.path
val langTag = getLanguageTag(locale)
diff --git a/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml b/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml
new file mode 100644
index 000000000..422897fd9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/onboarding_automatic_signin.xml b/app/src/main/res/layout/onboarding_automatic_signin.xml
index d96855dcc..2b88fd85d 100644
--- a/app/src/main/res/layout/onboarding_automatic_signin.xml
+++ b/app/src/main/res/layout/onboarding_automatic_signin.xml
@@ -22,7 +22,7 @@
tools:text="@string/onboarding_firefox_account_auto_signin_header_2" />