Skip to content
Snippets Groups Projects
Commit b7923091 authored by Taras's avatar Taras
Browse files

Add subscribe to email on registration

parent 92e49609
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@ import org.futo.circles.auth.feature.sign_up.SignUpDataSource.Companion.REGISTRA
import org.futo.circles.auth.feature.sign_up.SignUpDataSource.Companion.REGISTRATION_EMAIL_SUBMIT_TOKEN_TYPE
import org.futo.circles.core.extensions.Response
import org.matrix.android.sdk.api.auth.registration.RegistrationResult
import org.matrix.android.sdk.api.auth.registration.Stage
import javax.inject.Inject
class ValidateEmailDataSource @Inject constructor(
......@@ -19,7 +20,7 @@ class ValidateEmailDataSource @Inject constructor(
mapOf(
TYPE_PARAM_KEY to REGISTRATION_EMAIL_REQUEST_TOKEN_TYPE,
EMAIL_PARAM_KEY to email,
//SUBSCRIBE_TO_LIST to subscribeToUpdates
SUBSCRIBE_TO_LIST to subscribeToUpdates
)
)
......@@ -31,9 +32,14 @@ class ValidateEmailDataSource @Inject constructor(
)
)
fun shouldShowSubscribeToEmail(): Boolean =
(signUpDataSource.currentStage as? Stage.Other)?.params?.get(OFFER_LIST_SUBSCRIPTION_KEY) as? Boolean
?: false
companion object {
private const val EMAIL_PARAM_KEY = "email"
private const val TOKEN_PARAM_KEY = "token"
private const val SUBSCRIBE_TO_LIST = "subscribe_to_list"
private const val OFFER_LIST_SUBSCRIPTION_KEY = "offer_list_subscription"
}
}
\ No newline at end of file
......@@ -13,7 +13,9 @@ import org.futo.circles.core.base.fragment.HasLoadingState
import org.futo.circles.core.base.fragment.ParentBackPressOwnerFragment
import org.futo.circles.core.extensions.getText
import org.futo.circles.core.extensions.isValidEmail
import org.futo.circles.core.extensions.observeData
import org.futo.circles.core.extensions.observeResponse
import org.futo.circles.core.extensions.setIsVisible
import org.futo.circles.core.extensions.showDialog
import org.futo.circles.core.extensions.showSuccess
import org.futo.circles.core.extensions.visible
......@@ -67,6 +69,9 @@ class ValidateEmailFragment : ParentBackPressOwnerFragment(R.layout.fragment_val
viewModel.sendCodeLiveData.observeResponse(this,
success = { validationCodeSentState() })
viewModel.validateEmailLiveData.observeResponse(this)
viewModel.showSubscribeCheckLiveData.observeData(this) {
binding.cbEmailUpdates.setIsVisible(it)
}
}
private fun getEmailInput(): String = binding.tilEmail.getText()
......
......@@ -18,10 +18,13 @@ class ValidateEmailViewModel @Inject constructor(
val validateEmailLiveData =
SingleEventLiveData<Response<RegistrationResult>>()
val showSubscribeCheckLiveData = MutableLiveData(dataSource.shouldShowSubscribeToEmail())
fun sendCode(email: String, subscribeToUpdates: Boolean) {
launchBg {
sendCodeLiveData.postValue(dataSource.sendValidationCode(email, subscribeToUpdates))
val result = dataSource.sendValidationCode(email, subscribeToUpdates)
sendCodeLiveData.postValue(result)
if (result is Response.Success) showSubscribeCheckLiveData.postValue(false)
}
}
......
......@@ -120,7 +120,7 @@
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnSendCode" />
app:layout_constraintTop_toBottomOf="@id/tilValidationCode" />
<org.futo.circles.core.view.LoadingButton
android:id="@+id/btnValidate"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment