Skip to content

Commit d90f0a1

Browse files
Handle the case where user enters an non WP.com email
1 parent 6bca21e commit d90f0a1

File tree

7 files changed

+34
-10
lines changed

7 files changed

+34
-10
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/login/jetpack/wpcom/JetpackActivationMagicLinkRequestScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,8 @@ private fun MagicLinkRequestPreview() {
208208
avatarUrl = "avatar",
209209
isJetpackInstalled = false,
210210
allowPasswordLogin = true,
211-
isLoadingDialogShown = false
211+
isLoadingDialogShown = false,
212+
isNewWpComAccount = false
212213
)
213214
)
214215
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/login/jetpack/wpcom/JetpackActivationMagicLinkRequestViewModel.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ class JetpackActivationMagicLinkRequestViewModel @Inject constructor(
4646
avatarUrl = avatarUrlFromEmail(navArgs.emailOrUsername),
4747
isJetpackInstalled = navArgs.jetpackStatus.isJetpackInstalled,
4848
allowPasswordLogin = !navArgs.isAccountPasswordless,
49-
isLoadingDialogShown = false
49+
isLoadingDialogShown = false,
50+
isNewWpComAccount = navArgs.isNewWpComAccount
5051
)
5152
)
5253
val viewState = _viewState.asLiveData()
@@ -91,7 +92,8 @@ class JetpackActivationMagicLinkRequestViewModel @Inject constructor(
9192
avatarUrl = avatarUrlFromEmail(navArgs.emailOrUsername),
9293
isJetpackInstalled = navArgs.jetpackStatus.isJetpackInstalled,
9394
allowPasswordLogin = !navArgs.isAccountPasswordless,
94-
isLoadingDialogShown = true
95+
isLoadingDialogShown = true,
96+
isNewWpComAccount = navArgs.isNewWpComAccount
9597
)
9698
val source = when {
9799
!navArgs.jetpackStatus.isJetpackInstalled -> MagicLinkSource.JetpackInstallation
@@ -145,7 +147,8 @@ class JetpackActivationMagicLinkRequestViewModel @Inject constructor(
145147
val avatarUrl: String,
146148
override val isJetpackInstalled: Boolean,
147149
override val allowPasswordLogin: Boolean,
148-
val isLoadingDialogShown: Boolean
150+
val isLoadingDialogShown: Boolean,
151+
val isNewWpComAccount: Boolean
149152
) : ViewState
150153

151154
@Parcelize

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/login/jetpack/wpcom/JetpackActivationWPComEmailFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ class JetpackActivationWPComEmailFragment : BaseFragment() {
7979
.actionJetpackActivationWPComEmailFragmentToJetpackActivationMagicLinkRequestFragment(
8080
emailOrUsername = event.emailOrUsername,
8181
jetpackStatus = event.jetpackStatus,
82-
isAccountPasswordless = true
82+
isAccountPasswordless = true,
83+
isNewWpComAccount = event.isNewWpComAccount
8384
)
8485
)
8586
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/login/jetpack/wpcom/JetpackActivationWPComEmailViewModel.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.woocommerce.android.analytics.AnalyticsTracker
99
import com.woocommerce.android.analytics.AnalyticsTrackerWrapper
1010
import com.woocommerce.android.model.JetpackStatus
1111
import com.woocommerce.android.ui.login.WPComLoginRepository
12+
import com.woocommerce.android.util.FeatureFlag
1213
import com.woocommerce.android.viewmodel.MultiLiveEvent
1314
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.Exit
1415
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.ShowSnackbar
@@ -90,7 +91,11 @@ class JetpackActivationWPComEmailViewModel @Inject constructor(
9091
wpComLoginRepository.fetchAuthOptions(emailOrUsername).fold(
9192
onSuccess = {
9293
if (it.isPasswordless) {
93-
triggerEvent(ShowMagicLinkScreen(emailOrUsername, navArgs.jetpackStatus))
94+
triggerEvent(
95+
ShowMagicLinkScreen(
96+
emailOrUsername, navArgs.jetpackStatus, isNewWpComAccount = false
97+
)
98+
)
9499
} else {
95100
triggerEvent(ShowPasswordScreen(emailOrUsername, navArgs.jetpackStatus))
96101
}
@@ -100,6 +105,13 @@ class JetpackActivationWPComEmailViewModel @Inject constructor(
100105

101106
when (failure?.type) {
102107
AuthOptionsErrorType.UNKNOWN_USER -> {
108+
if (FeatureFlag.JETPACK_FLOW_ACCOUNT_CREATION.isEnabled()) {
109+
triggerEvent(
110+
ShowMagicLinkScreen(
111+
emailOrUsername, navArgs.jetpackStatus, isNewWpComAccount = true
112+
)
113+
)
114+
}
103115
errorMessage.value = R.string.email_not_registered_wpcom
104116
}
105117

@@ -141,6 +153,7 @@ class JetpackActivationWPComEmailViewModel @Inject constructor(
141153

142154
data class ShowMagicLinkScreen(
143155
val emailOrUsername: String,
144-
val jetpackStatus: JetpackStatus
156+
val jetpackStatus: JetpackStatus,
157+
val isNewWpComAccount: Boolean,
145158
) : MultiLiveEvent.Event()
146159
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/login/jetpack/wpcom/JetpackActivationWPComPasswordFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ class JetpackActivationWPComPasswordFragment : BaseFragment() {
9898
.actionJetpackActivationWPComPasswordFragmentToJetpackActivationMagicLinkRequestFragment(
9999
emailOrUsername = event.emailOrUsername,
100100
jetpackStatus = event.jetpackStatus,
101-
isAccountPasswordless = false
101+
isAccountPasswordless = false,
102+
isNewWpComAccount = false
102103
)
103104
)
104105
}

WooCommerce/src/main/kotlin/com/woocommerce/android/util/FeatureFlag.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ enum class FeatureFlag {
1919
CUSTOM_FIELDS,
2020
REVAMP_WOO_SHIPPING,
2121
OBJECTIVE_SECTION,
22-
POS_NON_SIMPLE_PRODUCT_TYPES;
22+
POS_NON_SIMPLE_PRODUCT_TYPES,
23+
JETPACK_FLOW_ACCOUNT_CREATION;
2324

2425
fun isEnabled(context: Context? = null): Boolean {
2526
return when (this) {
@@ -32,7 +33,8 @@ enum class FeatureFlag {
3233
ORDER_CREATION_AUTO_TAX_RATE,
3334
WOO_POS_PAYMENTS_ONBOARDING,
3435
REVAMP_WOO_SHIPPING,
35-
POS_NON_SIMPLE_PRODUCT_TYPES -> PackageUtils.isDebugBuild()
36+
POS_NON_SIMPLE_PRODUCT_TYPES,
37+
JETPACK_FLOW_ACCOUNT_CREATION -> PackageUtils.isDebugBuild()
3638

3739
NEW_SHIPPING_SUPPORT,
3840
INBOX,

WooCommerce/src/main/res/navigation/nav_graph_jetpack_activation.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@
146146
<argument
147147
android:name="isAccountPasswordless"
148148
app:argType="boolean" />
149+
<argument
150+
android:name="isNewWpComAccount"
151+
app:argType="boolean" />
149152
</fragment>
150153
<fragment
151154
android:id="@+id/jetpackActivationMagicLinkHandlerFragment"

0 commit comments

Comments
 (0)