For #12829: Add create account option on the the sign in screen.

pull/149/head
mcarare 4 years ago committed by ekager
parent 81985f4179
commit 5b33044999

@ -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
}

@ -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"/>
<TextView
android:id="@+id/createAccount"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="@style/Body14TextStyle"
app:layout_constraintTop_toBottomOf="@id/signInEmailButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="@string/sign_in_create_account_text"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

@ -1144,6 +1144,11 @@
<string name="sign_in_with_camera">Sign in with your camera</string>
<!-- Text shown for settings option for sign with email -->
<string name="sign_in_with_email">Use email instead</string>
<!-- Text shown for settings option for create new account description.
'Firefox' intentionally hardcoded here. %s is to be replaced with the create account link text-->
<string name="sign_in_create_account_text">No account? %s to sync Firefox between devices.</string>
<!--Text shown for settings option for create new account link -->
<string name="sign_in_create_account_link">Create one</string>
<!-- Text shown in confirmation dialog to sign out of account -->
<string name="sign_out_confirmation_message">Firefox will stop syncing with your account, but wont delete any of your browsing data on this device.</string>
<!-- Text shown in confirmation dialog to sign out of account. The first parameter is the name of the app (e.g. Firefox Preview) -->

Loading…
Cancel
Save