diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt
index 7f42aaf1d..67ca920ed 100644
--- a/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/settings/account/TurnOnSyncFragment.kt
@@ -6,6 +6,7 @@ package org.mozilla.fenix.settings.account
import android.Manifest
import android.os.Bundle
+import android.text.Spanned
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -25,6 +26,7 @@ import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event
+import org.mozilla.fenix.ext.addUnderline
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar
@@ -64,6 +66,10 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
requireComponents.analytics.metrics.track(Event.SyncAuthScanPairing)
}
+ private val createAccountClickListener = View.OnClickListener {
+ navigateToPairWithEmail()
+ }
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireComponents.analytics.metrics.track(Event.SyncAuthOpened)
@@ -85,7 +91,8 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
override fun onResume() {
super.onResume()
if (pairWithEmailStarted ||
- requireComponents.backgroundServices.accountManager.authenticatedAccount() != null) {
+ requireComponents.backgroundServices.accountManager.authenticatedAccount() != null
+ ) {
findNavController().popBackStack()
return
@@ -118,6 +125,20 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
DefaultSyncController(activity = activity as HomeActivity)
)
+ val createAccountActionText = getString(R.string.sign_in_create_account_link)
+ val fullText = getString(R.string.sign_in_create_account_text, createAccountActionText)
+ val spanStart = fullText.indexOf(createAccountActionText, 0, false)
+ val spanEnd = spanStart + createAccountActionText.length
+
+ view.createAccount.apply {
+ text = fullText
+ addUnderline(
+ spanStart,
+ spanEnd,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ setOnClickListener(createAccountClickListener)
+ }
return view
}
diff --git a/app/src/main/res/layout/fragment_turn_on_sync.xml b/app/src/main/res/layout/fragment_turn_on_sync.xml
index 83b8714fd..c933921d4 100644
--- a/app/src/main/res/layout/fragment_turn_on_sync.xml
+++ b/app/src/main/res/layout/fragment_turn_on_sync.xml
@@ -71,7 +71,19 @@
android:layout_margin="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/signInScanButton" />
+ app:layout_constraintTop_toBottomOf="@id/signInScanButton"
+ app:layout_constraintBottom_toTopOf="@id/createAccount"/>
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3bc4005cc..d575051b0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1144,6 +1144,11 @@
Sign in with your camera
Use email instead
+
+ No account? %s to sync Firefox between devices.
+
+ Create one
Firefox will stop syncing with your account, but won’t delete any of your browsing data on this device.