Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lass LoginActivity : AppCompatActivity(), LoginContract.View {
- private lateinit var presenter: LoginContract.Presenter
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_login)
- presenter = LoginPresenter(this)
- btn_login.setOnClickListener {
- presenter.onLoginClick(
- input_email.text.toString(),
- input_password.text.toString()
- )
- }
- }
- override fun showProgress() {
- progress_bar.visibility = View.VISIBLE
- btn_login.visibility = View.GONE
- }
- override fun hideProgress() {
- progress_bar.visibility = View.GONE
- btn_login.visibility = View.VISIBLE
- }
- override fun goToMainPage() {
- startActivity<MainActivity>()
- finish()
- }
- override fun showMessage(message: String) {
- toast(message)
- }
- override fun onDestroy() {
- super.onDestroy()
- presenter.unsubscribe()
- }
- }
- interface LoginContract {
- interface View {
- fun goToMainPage()
- fun showProgress()
- fun hideProgress()
- fun showMessage(message : String)
- }
- interface Presenter : BaseContract.Presenter {
- fun onLoginClick(email : String, password : String)
- }
- }
- class LoginPresenter(private val view: LoginContract.View) : BasePresenter(), LoginContract.Presenter {
- override fun onLoginClick(email: String, password: String) {
- view.showProgress()
- val disposable = UserService.getService()
- .authenticate(email, password)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(
- { response ->
- if (response.statusCode == 1 && response.data != null) {
- HRApp.user = response.data
- HRApp.token = response.data?.apiToken
- HRApp.links = response.links
- view.goToMainPage()
- }else{
- view.hideProgress()
- }
- }, { error ->
- view.showMessage(ErrorHandler.getError(error).message)
- view.hideProgress()
- })
- subscribe(disposable)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement