Guest User

Untitled

a guest
Jul 16th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. class LoginActivity: AppCompatActivity(), LoginContract.View {
  2.  
  3. var mPresenter: LoginContract.Presenter? = LoginPresenter(this)
  4.  
  5. override fun onCreate() {
  6. loginBtn.setOnClickListener { onLoginButtonClicked() }
  7. }
  8.  
  9. override fun onLoginButtonClicked() {
  10. mPresenter?.onLoginBtnPressed(etUsername.text, etPassword.text)
  11. }
  12.  
  13. override fun goToOtpPage(userId: String) {
  14. val intent = Intent(view, OtpActivity::class.java)
  15. intent.putExtra(Constants.IntentExtras.USERID, userId)
  16. startActivity(intent)
  17. }
  18.  
  19. override fun showError(message: String) {
  20. toast("Error: {$message}")
  21. }
  22. }
  23.  
  24. class LoginPresenter(var view: LoginContract.View?): LoginContract.Presenter, LoginContract.InteractorOutput {
  25. var mInteractor: LoginContract.Interactor? = LoginInteractor(this)
  26.  
  27. fun onLoginButtonPressed(username: String, password: String) {
  28. mInteractor?.login(username, password)
  29. }
  30.  
  31. fun onLoginSuccess(user: User) {
  32. view?.goToNextScreen(user)
  33. }
  34.  
  35. fun onLoginError(message: String) {
  36. view?.showError(message)
  37. }
  38. }
  39.  
  40. class LoginInteractor(var mOutput: LoginContract.InteractorOutput?): LoginContract.Interactor {
  41. fun login(username: String, password: String) {
  42. mRepository.login(username, password)
  43. ?.subscribeOn(Schedulers.io())
  44. ?.observeOn(AndroidSchedulers.mainThread())
  45. ?.subscribe({
  46. //do something here, like save it to db
  47. mOutput?.onLoginSuccess(it)
  48. },{
  49. mOutput?.onLoginError(it.message ?: "Error!")
  50. })
  51. }
  52. }
Add Comment
Please, Sign In to add comment