Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LoginActivity: AppCompatActivity(), LoginContract.View {
- var mPresenter: LoginContract.Presenter? = LoginPresenter(this)
- override fun onCreate() {
- loginBtn.setOnClickListener { onLoginButtonClicked() }
- }
- override fun onLoginButtonClicked() {
- mPresenter?.onLoginBtnPressed(etUsername.text, etPassword.text)
- }
- override fun goToOtpPage(userId: String) {
- val intent = Intent(view, OtpActivity::class.java)
- intent.putExtra(Constants.IntentExtras.USERID, userId)
- startActivity(intent)
- }
- override fun showError(message: String) {
- toast("Error: {$message}")
- }
- }
- class LoginPresenter(var view: LoginContract.View?): LoginContract.Presenter, LoginContract.InteractorOutput {
- var mInteractor: LoginContract.Interactor? = LoginInteractor(this)
- fun onLoginButtonPressed(username: String, password: String) {
- mInteractor?.login(username, password)
- }
- fun onLoginSuccess(user: User) {
- view?.goToNextScreen(user)
- }
- fun onLoginError(message: String) {
- view?.showError(message)
- }
- }
- class LoginInteractor(var mOutput: LoginContract.InteractorOutput?): LoginContract.Interactor {
- fun login(username: String, password: String) {
- mRepository.login(username, password)
- ?.subscribeOn(Schedulers.io())
- ?.observeOn(AndroidSchedulers.mainThread())
- ?.subscribe({
- //do something here, like save it to db
- mOutput?.onLoginSuccess(it)
- },{
- mOutput?.onLoginError(it.message ?: "Error!")
- })
- }
- }
Add Comment
Please, Sign In to add comment