From f90233dfddba6c78382fa2c63d83ef69ab9c167d Mon Sep 17 00:00:00 2001 From: Taras <tarassmakula@gmail.com> Date: Thu, 4 Aug 2022 15:59:59 +0300 Subject: [PATCH] Handle choose subscription button enabled --- .../SelectSignUpTypeDataSource.kt | 7 ++++- .../sign_up_type/SelectSignUpTypeFragment.kt | 21 ++++++++++---- .../sign_up_type/SelectSignUpTypeViewModel.kt | 9 ++++-- .../layout/select_sign_up_type_fragment.xml | 29 ++++--------------- 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt index 9cdb9cfe8..44c53bec3 100644 --- a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeDataSource.kt @@ -21,7 +21,12 @@ class SelectSignUpTypeDataSource( signUpDataSource.clearSubtitle() } - suspend fun startNewRegistration(name: String, password: String, domain: String) = + suspend fun startNewRegistration( + name: String, + password: String, + domain: String, + isSubscription: Boolean + ) = createResult { val homeServerUrl = HomeServerUtils.getHomeServerUrlFromDomain(domain) authService.cancelPendingLoginOrRegistration() diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeFragment.kt b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeFragment.kt index a1f11d725..0f4512417 100644 --- a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeFragment.kt @@ -26,15 +26,13 @@ class SelectSignUpTypeFragment : Fragment(R.layout.select_sign_up_type_fragment) viewModel.clearSubtitle() setupViews() setupObservers() - } private fun setupViews() { - setAlwaysDisabledViews(listOf(binding.btnSubscription)) with(binding) { groupSubscription.setIsVisible(BuildConfig.IS_SUBSCRIPTIONS_ENABLED) - tilUserName.editText?.doAfterTextChanged { setTokenButtonEnabled() } - tilPassword.editText?.doAfterTextChanged { setTokenButtonEnabled() } + tilUserName.editText?.doAfterTextChanged { setSignupButtonsEnabled() } + tilPassword.editText?.doAfterTextChanged { setSignupButtonsEnabled() } btnToken.setOnClickListener { startLoading(btnToken) viewModel.startSignUp( @@ -43,6 +41,15 @@ class SelectSignUpTypeFragment : Fragment(R.layout.select_sign_up_type_fragment) tvServerDomain.text.toString() ) } + btnSubscription.setOnClickListener { + startLoading(btnSubscription) + viewModel.startSignUp( + tilUserName.getText(), + tilPassword.getText(), + tvServerDomain.text.toString(), + true + ) + } serverLocationGroup.setOnCheckedChangeListener { _, checkedId -> tvServerDomain.text = when (checkedId) { btnUS.id -> BuildConfig.US_SERVER_DOMAIN @@ -58,8 +65,10 @@ class SelectSignUpTypeFragment : Fragment(R.layout.select_sign_up_type_fragment) viewModel.startSignUpEventLiveData.observeResponse(this) } - private fun setTokenButtonEnabled() { - binding.btnToken.isEnabled = binding.tilUserName.editText?.text?.isNotEmpty() == true && + private fun setSignupButtonsEnabled() { + val isEnabled = binding.tilUserName.editText?.text?.isNotEmpty() == true && binding.tilPassword.editText?.text?.isNotEmpty() == true + binding.btnToken.isEnabled = isEnabled + binding.btnSubscription.isEnabled = isEnabled } } \ No newline at end of file diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeViewModel.kt b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeViewModel.kt index e9874360b..3979b0544 100644 --- a/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/sign_up/sign_up_type/SelectSignUpTypeViewModel.kt @@ -11,10 +11,15 @@ class SelectSignUpTypeViewModel( val startSignUpEventLiveData = SingleEventLiveData<Response<Unit?>>() - fun startSignUp(name: String, password: String, serverDomain: String) { + fun startSignUp( + name: String, + password: String, + serverDomain: String, + isSubscription: Boolean = false + ) { launchBg { startSignUpEventLiveData.postValue( - dataSource.startNewRegistration(name, password, serverDomain) + dataSource.startNewRegistration(name, password, serverDomain, isSubscription) ) } } diff --git a/app/src/main/res/layout/select_sign_up_type_fragment.xml b/app/src/main/res/layout/select_sign_up_type_fragment.xml index 63715b29e..77d3e6de4 100644 --- a/app/src/main/res/layout/select_sign_up_type_fragment.xml +++ b/app/src/main/res/layout/select_sign_up_type_fragment.xml @@ -129,7 +129,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" - android:text="@string/already_have_a_circles_token" + android:text="@string/already_have_a_token" app:layout_constraintBottom_toTopOf="@id/btnToken" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -170,44 +170,27 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:gravity="center" - android:text="@string/create_a_circles_subscription" + android:text="@string/create_a_subscription" app:layout_constraintBottom_toTopOf="@id/btnSubscription" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvOr" /> - <com.google.android.material.button.MaterialButton + <org.futo.circles.view.LoadingButton android:id="@+id/btnSubscription" - style="@style/AccentButtonStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:enabled="false" - android:text="@string/new_circles_subscription" - app:layout_constraintBottom_toTopOf="@id/tvSubscriptionUnavailable" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/tvSubscriptionTitle" /> - - <TextView - android:id="@+id/tvSubscriptionUnavailable" - style="@style/footNote" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:gravity="center" - android:text="@string/new_paid_circles_subscriptions_are_currently_unavailable" - app:drawableStartCompat="@drawable/ic_error" - app:drawableTint="@color/inactive_menu_icon_color" + android:text="@string/choose_a_subscription" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/btnSubscription" /> - + app:layout_constraintTop_toBottomOf="@id/tvSubscriptionTitle" /> <androidx.constraintlayout.widget.Group android:id="@+id/groupSubscription" android:layout_width="0dp" android:layout_height="0dp" - app:constraint_referenced_ids="tvOr,tvSubscriptionTitle,btnSubscription,tvSubscriptionUnavailable" /> + app:constraint_referenced_ids="tvOr,tvSubscriptionTitle,btnSubscription" /> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- GitLab