LoginViewModelFactory.java 879 B

1234567891011121314151617181920212223242526
  1. package me.yoqi.android.netauth.ui.login;
  2. import androidx.lifecycle.ViewModel;
  3. import androidx.lifecycle.ViewModelProvider;
  4. import androidx.annotation.NonNull;
  5. import me.yoqi.android.netauth.data.LoginDataSource;
  6. import me.yoqi.android.netauth.data.LoginRepository;
  7. /**
  8. * ViewModel provider factory to instantiate LoginViewModel.
  9. * Required given LoginViewModel has a non-empty constructor
  10. */
  11. public class LoginViewModelFactory implements ViewModelProvider.Factory {
  12. @NonNull
  13. @Override
  14. @SuppressWarnings("unchecked")
  15. public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
  16. if (modelClass.isAssignableFrom(LoginViewModel.class)) {
  17. return (T) new LoginViewModel(LoginRepository.getInstance(new LoginDataSource()));
  18. } else {
  19. throw new IllegalArgumentException("Unknown ViewModel class");
  20. }
  21. }
  22. }