package androidx.lifecycle; import android.app.Application; import androidx.annotation.MainThread; import androidx.annotation.NonNull; import java.lang.reflect.InvocationTargetException; public class ViewModelProvider { private static final String DEFAULT_KEY = "androidx.lifecycle.ViewModelProvider.DefaultKey"; private final Factory mFactory; private final ViewModelStore mViewModelStore; public static class AndroidViewModelFactory extends NewInstanceFactory { private static AndroidViewModelFactory sInstance; private Application mApplication; public AndroidViewModelFactory(@NonNull Application application) { this.mApplication = application; } @NonNull public static AndroidViewModelFactory getInstance(@NonNull Application application) { if (sInstance == null) { sInstance = new AndroidViewModelFactory(application); } return sInstance; } @Override // androidx.lifecycle.ViewModelProvider.NewInstanceFactory, androidx.lifecycle.ViewModelProvider.Factory @NonNull public T create(@NonNull Class cls) { if (!AndroidViewModel.class.isAssignableFrom(cls)) { return (T) super.create(cls); } try { return cls.getConstructor(Application.class).newInstance(this.mApplication); } catch (NoSuchMethodException e) { throw new RuntimeException("Cannot create an instance of " + cls, e); } catch (IllegalAccessException e2) { throw new RuntimeException("Cannot create an instance of " + cls, e2); } catch (InstantiationException e3) { throw new RuntimeException("Cannot create an instance of " + cls, e3); } catch (InvocationTargetException e4) { throw new RuntimeException("Cannot create an instance of " + cls, e4); } } } public interface Factory { @NonNull T create(@NonNull Class cls); } public static abstract class KeyedFactory extends OnRequeryFactory implements Factory { @Override // androidx.lifecycle.ViewModelProvider.Factory @NonNull public T create(@NonNull Class cls) { throw new UnsupportedOperationException("create(String, Class) must be called on implementaions of KeyedFactory"); } @NonNull public abstract T create(@NonNull String str, @NonNull Class cls); } public static class NewInstanceFactory implements Factory { private static NewInstanceFactory sInstance; @NonNull public static NewInstanceFactory getInstance() { if (sInstance == null) { sInstance = new NewInstanceFactory(); } return sInstance; } @Override // androidx.lifecycle.ViewModelProvider.Factory @NonNull public T create(@NonNull Class cls) { try { return cls.newInstance(); } catch (InstantiationException e) { throw new RuntimeException("Cannot create an instance of " + cls, e); } catch (IllegalAccessException e2) { throw new RuntimeException("Cannot create an instance of " + cls, e2); } } } public static class OnRequeryFactory { public void onRequery(@NonNull ViewModel viewModel) { } } public ViewModelProvider(@NonNull ViewModelStore viewModelStore, @NonNull Factory factory) { this.mFactory = factory; this.mViewModelStore = viewModelStore; } /* JADX INFO: this call moved to the top of the method (can break code semantics) */ public ViewModelProvider(@NonNull ViewModelStoreOwner viewModelStoreOwner) { this(viewModelStoreOwner.getViewModelStore(), viewModelStoreOwner instanceof HasDefaultViewModelProviderFactory ? ((HasDefaultViewModelProviderFactory) viewModelStoreOwner).getDefaultViewModelProviderFactory() : NewInstanceFactory.getInstance()); } public ViewModelProvider(@NonNull ViewModelStoreOwner viewModelStoreOwner, @NonNull Factory factory) { this(viewModelStoreOwner.getViewModelStore(), factory); } @NonNull @MainThread public T get(@NonNull Class cls) { String canonicalName = cls.getCanonicalName(); if (canonicalName != null) { return (T) get("androidx.lifecycle.ViewModelProvider.DefaultKey:" + canonicalName, cls); } throw new IllegalArgumentException("Local and anonymous classes can not be ViewModels"); } @NonNull @MainThread public T get(@NonNull String str, @NonNull Class cls) { T t = (T) this.mViewModelStore.get(str); if (cls.isInstance(t)) { Factory factory = this.mFactory; if (factory instanceof OnRequeryFactory) { ((OnRequeryFactory) factory).onRequery(t); } return t; } Factory factory2 = this.mFactory; T t2 = factory2 instanceof KeyedFactory ? (T) ((KeyedFactory) factory2).create(str, cls) : (T) factory2.create(cls); this.mViewModelStore.put(str, t2); return t2; } }