Skip to content

Instantly share code, notes, and snippets.

@erickogi
Created April 22, 2019 03:40
Show Gist options
  • Save erickogi/5679780292facd718019964b36c99f1e to your computer and use it in GitHub Desktop.
Save erickogi/5679780292facd718019964b36c99f1e to your computer and use it in GitHub Desktop.
package com.kogicodes.sokoni.view.ui.auth
import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MediatorLiveData
class AuthViewModel(application: Application) : AndroidViewModel(application) {
internal var signInRepository: SignInRepository
internal var signUpRepository: SignUpRepository
internal var recoverPasswordUpRepository: RecoverPasswordUpRepository
private val signInObservable = MediatorLiveData<Resource<Oauth>>()
private val signUpObservable = MediatorLiveData<Resource<Oauth>>()
private val recoverPasswordObservable = MediatorLiveData<Resource<PasswordRecoveryModel>>()
init {
signInRepository = SignInRepository(application)
signUpRepository = SignUpRepository(application)
recoverPasswordUpRepository = RecoverPasswordUpRepository(application)
signInObservable.addSource(signInRepository.signInObservable) { data -> signInObservable.setValue(data) }
signUpObservable.addSource(signUpRepository.signUpObservable) { data -> signUpObservable.setValue(data) }
recoverPasswordObservable.addSource(recoverPasswordUpRepository.recoverPasswordObservable) { data -> recoverPasswordObservable.setValue(data) }
}
fun signIn(parameters: Oauth) {
signInRepository.signIn(parameters)
}
fun observeSignIn(): LiveData<Resource<Oauth>> {
return signInObservable
}
fun signUp(parameters: Oauth) {
signUpRepository.signUp(parameters)
}
fun observeSignUp(): LiveData<Resource<Oauth>> {
return signUpObservable
}
fun recoverPassword(parameters: Oauth) {
recoverPasswordUpRepository.recoverPassword(parameters)
}
fun observeRecoverPassword(): LiveData<Resource<PasswordRecoveryModel>> {
return recoverPasswordObservable
}
fun saveProfile(data: Oauth) {
signInRepository.saveProfile(data)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment