Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WEB-665 [Android] When Facebook-only users log in to Kickstarter, req…
…uire them to set a password (#1680) * Create set password Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Refactor two factor auth for facebook Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update strings Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Create set password intent Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Converting files to Kotlin with safe renaming. * Show set password for DiscoveryFragment Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update intent to set email Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update updateUserAccount with hasPassword Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Add test case to DiscoveryFragmentViewModel Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update startSetPasswordActivity with email Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update dialog strings Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Only Facebook errors Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Show dialog with facebook error only Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * setUserPassword For facebook user Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Add error mask Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Set password refactor Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Fix import Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update test Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Change mask for email Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Removed unused code Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Add unit test Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Add test Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update graphql call Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Fix missing && Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Fix missing && Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update UI Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update strings with latest Signed-off-by: hadia <hadiamohamed.iti@gmail.com> * Update strings with latest Signed-off-by: hadia <hadiamohamed.iti@gmail.com> Signed-off-by: hadia <hadiamohamed.iti@gmail.com> Co-authored-by: Isabel Martin <arkariang@gmail.com>
- Loading branch information
Showing
28 changed files
with
1,498 additions
and
723 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
95 changes: 95 additions & 0 deletions
95
app/src/main/java/com/kickstarter/ui/activities/SetPasswordActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package com.kickstarter.ui.activities | ||
|
||
import android.os.Bundle | ||
import androidx.core.view.isGone | ||
import androidx.core.view.isVisible | ||
import com.kickstarter.R | ||
import com.kickstarter.databinding.ActivitySetPasswordBinding | ||
import com.kickstarter.libs.BaseActivity | ||
import com.kickstarter.libs.qualifiers.RequiresActivityViewModel | ||
import com.kickstarter.libs.rx.transformers.Transformers | ||
import com.kickstarter.libs.utils.ViewUtils | ||
import com.kickstarter.ui.extensions.onChange | ||
import com.kickstarter.viewmodels.SetPasswordViewModel | ||
import rx.android.schedulers.AndroidSchedulers | ||
|
||
@RequiresActivityViewModel(SetPasswordViewModel.ViewModel::class) | ||
class SetPasswordActivity : BaseActivity<SetPasswordViewModel.ViewModel>() { | ||
private lateinit var binding: ActivitySetPasswordBinding | ||
private var errorTitleString = R.string.general_error_oops | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
binding = ActivitySetPasswordBinding.inflate(layoutInflater) | ||
|
||
setContentView(binding.root) | ||
setSupportActionBar(binding.resetPasswordToolbar.loginToolbar) | ||
binding.resetPasswordToolbar.loginToolbar.setTitle(getString(R.string.FPO_Set_your_password)) | ||
binding.resetPasswordToolbar.backButton.isGone = true | ||
binding.newPassword.onChange { this.viewModel.inputs.newPassword(it) } | ||
binding.confirmPassword.onChange { this.viewModel.inputs.confirmPassword(it) } | ||
|
||
binding.savePasswordButton.setOnClickListener { | ||
viewModel.inputs.changePasswordClicked() | ||
} | ||
|
||
this.viewModel.outputs.progressBarIsVisible() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { | ||
binding.progressBar.isGone = !it | ||
} | ||
|
||
this.viewModel.outputs.setUserEmail() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { | ||
binding.setPasswordHint.text = getString(R.string.FPO_We_will_be_discontinuing_the_ability_to_log_in_via_Facebook, it) | ||
} | ||
|
||
this.viewModel.outputs.passwordWarning() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { | ||
binding.warning.text = when { | ||
it != null -> { | ||
getString(it) | ||
} | ||
else -> null | ||
} | ||
binding.warning.isVisible = (it != null) | ||
} | ||
|
||
this.viewModel.outputs.error() | ||
.compose(bindToLifecycle()) | ||
.observeOn(AndroidSchedulers.mainThread()) | ||
.subscribe { ViewUtils.showDialog(this, getString(this.errorTitleString), it) } | ||
|
||
this.viewModel.outputs.isFormSubmitting() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { this.setFormDisabled(it) } | ||
|
||
this.viewModel.outputs.saveButtonIsEnabled() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { this.setFormEnabled(it) } | ||
|
||
this.viewModel.outputs.success() | ||
.compose(bindToLifecycle()) | ||
.compose(Transformers.observeForUI()) | ||
.subscribe { finish() } | ||
} | ||
|
||
private fun setFormEnabled(isEnabled: Boolean) { | ||
binding.savePasswordButton.isEnabled = isEnabled | ||
} | ||
|
||
private fun setFormDisabled(isDisabled: Boolean) { | ||
setFormEnabled(!isDisabled) | ||
} | ||
|
||
override fun back() { | ||
// Disable back action Gesture | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.