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.Manifest
import android.os.Bundle import android.os.Bundle
import android.text.Spanned
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -25,6 +26,7 @@ import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.addUnderline
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
@ -64,6 +66,10 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
requireComponents.analytics.metrics.track(Event.SyncAuthScanPairing) requireComponents.analytics.metrics.track(Event.SyncAuthScanPairing)
} }
private val createAccountClickListener = View.OnClickListener {
navigateToPairWithEmail()
}
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
requireComponents.analytics.metrics.track(Event.SyncAuthOpened) requireComponents.analytics.metrics.track(Event.SyncAuthOpened)
@ -85,7 +91,8 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (pairWithEmailStarted || if (pairWithEmailStarted ||
requireComponents.backgroundServices.accountManager.authenticatedAccount() != null) { requireComponents.backgroundServices.accountManager.authenticatedAccount() != null
) {
findNavController().popBackStack() findNavController().popBackStack()
return return
@ -118,6 +125,20 @@ class TurnOnSyncFragment : Fragment(), AccountObserver {
DefaultSyncController(activity = activity as HomeActivity) 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 return view
} }

@ -71,7 +71,19 @@
android:layout_margin="0dp" android:layout_margin="0dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="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.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

@ -1144,6 +1144,11 @@
<string name="sign_in_with_camera">Sign in with your camera</string> <string name="sign_in_with_camera">Sign in with your camera</string>
<!-- Text shown for settings option for sign with email --> <!-- Text shown for settings option for sign with email -->
<string name="sign_in_with_email">Use email instead</string> <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 --> <!-- 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> <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) --> <!-- 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