ADD week 5
This commit is contained in:
		| @@ -0,0 +1,55 @@ | ||||
| package androidx.lifecycle; | ||||
|  | ||||
| import android.app.Application; | ||||
| import java.lang.reflect.Constructor; | ||||
| import java.lang.reflect.InvocationTargetException; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.collections.ArraysKt; | ||||
| import kotlin.collections.CollectionsKt; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
|  | ||||
| /* compiled from: SavedStateViewModelFactory.kt */ | ||||
| @Metadata(d1 = {"\u0000*\n\u0000\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0011\n\u0002\u0010\u0000\n\u0002\b\u0002\u001a6\u0010\u0004\u001a\n\u0012\u0004\u0012\u0002H\u0006\u0018\u00010\u0005\"\u0004\b\u0000\u0010\u00062\f\u0010\u0007\u001a\b\u0012\u0004\u0012\u0002H\u00060\u00022\u0010\u0010\b\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u00020\u0001H\u0000\u001aI\u0010\t\u001a\u0002H\u0006\"\n\b\u0000\u0010\u0006*\u0004\u0018\u00010\n2\f\u0010\u0007\u001a\b\u0012\u0004\u0012\u0002H\u00060\u00022\f\u0010\u000b\u001a\b\u0012\u0004\u0012\u0002H\u00060\u00052\u0012\u0010\f\u001a\n\u0012\u0006\b\u0001\u0012\u00020\u000e0\r\"\u00020\u000eH\u0000¢\u0006\u0002\u0010\u000f\"\u0018\u0010\u0000\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u00020\u0001X\u0082\u0004¢\u0006\u0002\n\u0000\"\u0018\u0010\u0003\u001a\f\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u00020\u0001X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u0010"}, d2 = {"ANDROID_VIEWMODEL_SIGNATURE", "", "Ljava/lang/Class;", "VIEWMODEL_SIGNATURE", "findMatchingConstructor", "Ljava/lang/reflect/Constructor;", "T", "modelClass", "signature", "newInstance", "Landroidx/lifecycle/ViewModel;", "constructor", "params", "", "", "(Ljava/lang/Class;Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Landroidx/lifecycle/ViewModel;", "lifecycle-viewmodel-savedstate_release"}, k = 2, mv = {1, 8, 0}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class SavedStateViewModelFactoryKt { | ||||
|     private static final List<Class<?>> ANDROID_VIEWMODEL_SIGNATURE = CollectionsKt.listOf((Object[]) new Class[]{Application.class, SavedStateHandle.class}); | ||||
|     private static final List<Class<?>> VIEWMODEL_SIGNATURE = CollectionsKt.listOf(SavedStateHandle.class); | ||||
|  | ||||
|     public static final <T extends ViewModel> T newInstance(Class<T> modelClass, Constructor<T> constructor, Object... params) { | ||||
|         Intrinsics.checkNotNullParameter(modelClass, "modelClass"); | ||||
|         Intrinsics.checkNotNullParameter(constructor, "constructor"); | ||||
|         Intrinsics.checkNotNullParameter(params, "params"); | ||||
|         try { | ||||
|             return constructor.newInstance(Arrays.copyOf(params, params.length)); | ||||
|         } catch (IllegalAccessException e) { | ||||
|             throw new RuntimeException("Failed to access " + modelClass, e); | ||||
|         } catch (InstantiationException e2) { | ||||
|             throw new RuntimeException("A " + modelClass + " cannot be instantiated.", e2); | ||||
|         } catch (InvocationTargetException e3) { | ||||
|             throw new RuntimeException("An exception happened in constructor of " + modelClass, e3.getCause()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final <T> Constructor<T> findMatchingConstructor(Class<T> modelClass, List<? extends Class<?>> signature) { | ||||
|         Intrinsics.checkNotNullParameter(modelClass, "modelClass"); | ||||
|         Intrinsics.checkNotNullParameter(signature, "signature"); | ||||
|         Object[] constructors = modelClass.getConstructors(); | ||||
|         Intrinsics.checkNotNullExpressionValue(constructors, "modelClass.constructors"); | ||||
|         for (Object obj : constructors) { | ||||
|             Constructor<T> constructor = (Constructor<T>) obj; | ||||
|             Class<?>[] parameterTypes = constructor.getParameterTypes(); | ||||
|             Intrinsics.checkNotNullExpressionValue(parameterTypes, "constructor.parameterTypes"); | ||||
|             List list = ArraysKt.toList(parameterTypes); | ||||
|             if (Intrinsics.areEqual(signature, list)) { | ||||
|                 Intrinsics.checkNotNull(constructor, "null cannot be cast to non-null type java.lang.reflect.Constructor<T of androidx.lifecycle.SavedStateViewModelFactoryKt.findMatchingConstructor>"); | ||||
|                 return constructor; | ||||
|             } | ||||
|             if (signature.size() == list.size() && list.containsAll(signature)) { | ||||
|                 throw new UnsupportedOperationException("Class " + modelClass.getSimpleName() + " must have parameters in the proper order: " + signature); | ||||
|             } | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user