INNER CODE UNIT · Java

ViewModelProviderFactory

janishar/android-mvvm-architecture · app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java:15

public class ViewModelProviderFactory<T extends  ViewModel> extends ViewModelProvider.NewInstanceFactory {

    private final Class<T> viewModelClass;
    private final Supplier<T> viewModelSupplier;

    public ViewModelProviderFactory(Class<T> viewModelClass, Supplier<T> viewModelSupplier){
        this.viewModelClass = viewModelClass;
        this.viewModelSupplier = viewModelSupplier;
    }

    @NonNull
    @Override
    public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {

        if(modelClass.isAssignableFrom(viewModelClass)){
            return (T) viewModelSupplier.get();
        }else {
            throw new IllegalArgumentException("Unknown Class name "+viewModelClass.getName());

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…