Skip to content

Commit 70c6223

Browse files
authored
Merge pull request #6569 from vector-im/feature/adm/ftue-copy-review
FTUE - Copy review
2 parents 70c8703 + 92f8dd9 commit 70c6223

19 files changed

+130
-127
lines changed

changelog.d/6547.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Updates the copy within the FTUE onboarding

vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,7 @@ class OnboardingViewModel @AssistedInject constructor(
645645
val homeServerCapabilities = session.homeServerCapabilitiesService().getHomeServerCapabilities()
646646
val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull()
647647
state.personalizationState.copy(
648+
displayName = state.registrationState.selectedMatrixId?.let { MatrixPatterns.extractUserNameFromId(it) },
648649
supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName,
649650
supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar
650651
)

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthAccountCreatedFragment.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,18 @@
1616

1717
package im.vector.app.features.onboarding.ftueauth
1818

19+
import android.graphics.Typeface
1920
import android.os.Bundle
2021
import android.view.LayoutInflater
2122
import android.view.View
2223
import android.view.ViewGroup
24+
import androidx.core.text.toSpannable
2325
import androidx.core.view.isVisible
2426
import im.vector.app.R
2527
import im.vector.app.core.animations.play
2628
import im.vector.app.core.di.ActiveSessionHolder
2729
import im.vector.app.core.utils.isAnimationEnabled
30+
import im.vector.app.core.utils.styleMatchingText
2831
import im.vector.app.databinding.FragmentFtueAccountCreatedBinding
2932
import im.vector.app.features.onboarding.OnboardingAction
3033
import im.vector.app.features.onboarding.OnboardingViewEvents
@@ -47,7 +50,9 @@ class FtueAuthAccountCreatedFragment @Inject constructor(
4750
}
4851

4952
private fun setupViews() {
50-
views.accountCreatedSubtitle.text = getString(R.string.ftue_account_created_subtitle, activeSessionHolder.getActiveSession().myUserId)
53+
val userId = activeSessionHolder.getActiveSession().myUserId
54+
val subtitle = getString(R.string.ftue_account_created_subtitle, userId).toSpannable().styleMatchingText(userId, Typeface.BOLD)
55+
views.accountCreatedSubtitle.text = subtitle
5156
views.accountCreatedPersonalize.debouncedClicks { viewModel.handle(OnboardingAction.PersonalizeProfile) }
5257
views.accountCreatedTakeMeHome.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }
5358
views.accountCreatedTakeMeHomeCta.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnTakeMeHome)) }

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthEmailEntryFragment.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,17 @@ import android.os.Bundle
2020
import android.view.LayoutInflater
2121
import android.view.View
2222
import android.view.ViewGroup
23+
import im.vector.app.R
2324
import im.vector.app.core.extensions.associateContentStateWith
2425
import im.vector.app.core.extensions.autofillEmail
2526
import im.vector.app.core.extensions.clearErrorOnChange
2627
import im.vector.app.core.extensions.content
2728
import im.vector.app.core.extensions.isEmail
2829
import im.vector.app.core.extensions.setOnImeDoneListener
30+
import im.vector.app.core.extensions.toReducedUrl
2931
import im.vector.app.databinding.FragmentFtueEmailInputBinding
3032
import im.vector.app.features.onboarding.OnboardingAction
33+
import im.vector.app.features.onboarding.OnboardingViewState
3134
import im.vector.app.features.onboarding.RegisterAction
3235
import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
3336
import javax.inject.Inject
@@ -56,6 +59,10 @@ class FtueAuthEmailEntryFragment @Inject constructor() : AbstractFtueAuthFragmen
5659
viewModel.handle(OnboardingAction.PostRegisterAction(RegisterAction.AddThreePid(RegisterThreePid.Email(email))))
5760
}
5861

62+
override fun updateWithState(state: OnboardingViewState) {
63+
views.emailEntryHeaderSubtitle.text = getString(R.string.ftue_auth_email_subtitle, state.selectedHomeserver.userFacingUrl.toReducedUrl())
64+
}
65+
5966
override fun onError(throwable: Throwable) {
6067
views.emailEntryInput.error = errorFormatter.toHumanReadable(throwable)
6168
}

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthPhoneEntryFragment.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ import im.vector.app.core.extensions.autofillPhoneNumber
2727
import im.vector.app.core.extensions.content
2828
import im.vector.app.core.extensions.editText
2929
import im.vector.app.core.extensions.setOnImeDoneListener
30+
import im.vector.app.core.extensions.toReducedUrl
3031
import im.vector.app.databinding.FragmentFtuePhoneInputBinding
3132
import im.vector.app.features.onboarding.OnboardingAction
33+
import im.vector.app.features.onboarding.OnboardingViewState
3234
import im.vector.app.features.onboarding.RegisterAction
3335
import kotlinx.coroutines.flow.launchIn
3436
import kotlinx.coroutines.flow.onEach
@@ -77,6 +79,10 @@ class FtueAuthPhoneEntryFragment @Inject constructor(
7779
}
7880
}
7981

82+
override fun updateWithState(state: OnboardingViewState) {
83+
views.phoneEntryHeaderSubtitle.text = getString(R.string.ftue_auth_phone_subtitle, state.selectedHomeserver.userFacingUrl.toReducedUrl())
84+
}
85+
8086
override fun onError(throwable: Throwable) {
8187
views.phoneEntryInput.error = errorFormatter.toHumanReadable(throwable)
8288
}

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordBreakerFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class FtueAuthResetPasswordBreakerFragment : AbstractFtueAuthFragment<FragmentFt
5757
views.resetPasswordBreakerGradientContainer.setBackgroundResource(themeProvider.ftueBreakerBackground())
5858
views.resetPasswordBreakerTitle.text = getString(R.string.ftue_auth_reset_password_breaker_title)
5959
.colorTerminatingFullStop(ThemeUtils.getColor(requireContext(), R.attr.colorSecondary))
60-
views.resetPasswordBreakerSubtitle.text = getString(R.string.ftue_auth_email_verification_subtitle, params.email)
60+
views.resetPasswordBreakerSubtitle.text = getString(R.string.ftue_auth_password_reset_email_confirmation_subtitle, params.email)
6161
views.resetPasswordBreakerResendEmail.debouncedClicks { viewModel.handle(OnboardingAction.ResendResetPassword) }
6262
views.resetPasswordBreakerFooter.debouncedClicks {
6363
viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.OnResetPasswordBreakerConfirmed))

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordEmailEntryFragment.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ import android.view.LayoutInflater
2121
import android.view.View
2222
import android.view.ViewGroup
2323
import dagger.hilt.android.AndroidEntryPoint
24+
import im.vector.app.R
2425
import im.vector.app.core.extensions.associateContentStateWith
2526
import im.vector.app.core.extensions.clearErrorOnChange
2627
import im.vector.app.core.extensions.content
2728
import im.vector.app.core.extensions.isEmail
2829
import im.vector.app.core.extensions.setOnImeDoneListener
30+
import im.vector.app.core.extensions.toReducedUrl
2931
import im.vector.app.databinding.FragmentFtueResetPasswordEmailInputBinding
3032
import im.vector.app.features.onboarding.OnboardingAction
33+
import im.vector.app.features.onboarding.OnboardingViewState
3134

3235
@AndroidEntryPoint
3336
class FtueAuthResetPasswordEmailEntryFragment : AbstractFtueAuthFragment<FragmentFtueResetPasswordEmailInputBinding>() {
@@ -53,6 +56,13 @@ class FtueAuthResetPasswordEmailEntryFragment : AbstractFtueAuthFragment<Fragmen
5356
viewModel.handle(OnboardingAction.ResetPassword(email = email, newPassword = null))
5457
}
5558

59+
override fun updateWithState(state: OnboardingViewState) {
60+
views.emailEntryHeaderSubtitle.text = getString(
61+
R.string.ftue_auth_reset_password_email_subtitle,
62+
state.selectedHomeserver.userFacingUrl.toReducedUrl()
63+
)
64+
}
65+
5666
override fun onError(throwable: Throwable) {
5767
views.emailEntryInput.error = errorFormatter.toHumanReadable(throwable)
5868
}

vector/src/main/java/im/vector/app/features/onboarding/ftueauth/terms/FtueAuthTermsFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,9 @@ class FtueAuthTermsFragment @Inject constructor(
114114
}
115115

116116
override fun updateWithState(state: OnboardingViewState) {
117-
policyController.homeServer = state.selectedHomeserver.userFacingUrl.toReducedUrl()
117+
val homeserverName = state.selectedHomeserver.userFacingUrl.toReducedUrl()
118+
views.termsHeaderSubtitle.text = getString(R.string.ftue_auth_terms_subtitle, homeserverName)
119+
policyController.homeServer = homeserverName
118120
renderState()
119121
}
120122

vector/src/main/res/layout/fragment_ftue_combined_login.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
style="@style/Widget.Vector.TextInputLayout.Username"
141141
android:layout_width="0dp"
142142
android:layout_height="wrap_content"
143-
android:hint="@string/username"
143+
android:hint="@string/ftue_auth_login_username_entry"
144144
app:layout_constraintBottom_toTopOf="@id/entrySpacing"
145145
app:layout_constraintEnd_toEndOf="@id/loginGutterEnd"
146146
app:layout_constraintStart_toStartOf="@id/loginGutterStart"

vector/src/main/res/layout/fragment_ftue_display_name.xml

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,32 +58,18 @@
5858
android:gravity="center"
5959
android:text="@string/ftue_display_name_title"
6060
android:textColor="?vctr_content_primary"
61-
app:layout_constraintBottom_toTopOf="@id/displayNameHeaderSubtitle"
62-
app:layout_constraintEnd_toEndOf="@id/displayNameGutterEnd"
63-
app:layout_constraintStart_toStartOf="@id/displayNameGutterStart"
64-
app:layout_constraintTop_toBottomOf="@id/displayNameHeaderIcon" />
65-
66-
<TextView
67-
android:id="@+id/displayNameHeaderSubtitle"
68-
style="@style/Widget.Vector.TextView.Subtitle"
69-
android:layout_width="0dp"
70-
android:layout_height="wrap_content"
71-
android:layout_marginTop="8dp"
72-
android:gravity="center"
73-
android:text="@string/ftue_display_name_subtitle"
74-
android:textColor="?vctr_content_secondary"
7561
app:layout_constraintBottom_toTopOf="@id/titleContentSpacing"
7662
app:layout_constraintEnd_toEndOf="@id/displayNameGutterEnd"
7763
app:layout_constraintStart_toStartOf="@id/displayNameGutterStart"
78-
app:layout_constraintTop_toBottomOf="@id/displayNameHeaderTitle" />
64+
app:layout_constraintTop_toBottomOf="@id/displayNameHeaderIcon" />
7965

8066
<Space
8167
android:id="@+id/titleContentSpacing"
8268
android:layout_width="match_parent"
8369
android:layout_height="0dp"
8470
app:layout_constraintBottom_toTopOf="@id/displayNameInput"
8571
app:layout_constraintHeight_percent="0.03"
86-
app:layout_constraintTop_toBottomOf="@id/displayNameHeaderSubtitle" />
72+
app:layout_constraintTop_toBottomOf="@id/displayNameHeaderTitle" />
8773

8874
<com.google.android.material.textfield.TextInputLayout
8975
android:id="@+id/displayNameInput"

0 commit comments

Comments
 (0)