ADD week 5
This commit is contained in:
		
							
								
								
									
										308
									
								
								02-Easy5/E5/sources/androidx/lifecycle/SavedStateHandle.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										308
									
								
								02-Easy5/E5/sources/androidx/lifecycle/SavedStateHandle.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,308 @@ | ||||
| package androidx.lifecycle; | ||||
|  | ||||
| import android.os.Binder; | ||||
| import android.os.Bundle; | ||||
| import android.os.Parcelable; | ||||
| import android.util.Size; | ||||
| import android.util.SizeF; | ||||
| import android.util.SparseArray; | ||||
| import androidx.core.os.BundleKt; | ||||
| import androidx.savedstate.SavedStateRegistry; | ||||
| import java.io.Serializable; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.LinkedHashMap; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.TuplesKt; | ||||
| import kotlin.collections.MapsKt; | ||||
| import kotlin.collections.SetsKt; | ||||
| import kotlin.jvm.JvmStatic; | ||||
| import kotlin.jvm.internal.DefaultConstructorMarker; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlinx.coroutines.flow.FlowKt; | ||||
| import kotlinx.coroutines.flow.MutableStateFlow; | ||||
| import kotlinx.coroutines.flow.StateFlow; | ||||
| import kotlinx.coroutines.flow.StateFlowKt; | ||||
|  | ||||
| /* compiled from: SavedStateHandle.kt */ | ||||
| @Metadata(d1 = {"\u0000X\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010$\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010%\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\"\n\u0002\b\t\u0018\u0000 *2\u00020\u0001:\u0002*+B\u001d\b\u0016\u0012\u0014\u0010\u0002\u001a\u0010\u0012\u0004\u0012\u00020\u0004\u0012\u0006\u0012\u0004\u0018\u00010\u00010\u0003¢\u0006\u0002\u0010\u0005B\u0007\b\u0016¢\u0006\u0002\u0010\u0006J\u0010\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0012\u001a\u00020\u0004H\u0007J\u0011\u0010\u0013\u001a\u00020\u00142\u0006\u0010\u0012\u001a\u00020\u0004H\u0087\u0002J\u001e\u0010\u0015\u001a\u0004\u0018\u0001H\u0016\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u0004H\u0087\u0002¢\u0006\u0002\u0010\u0017J\u001c\u0010\u0018\u001a\b\u0012\u0004\u0012\u0002H\u00160\u0019\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u0004H\u0007J)\u0010\u0018\u001a\b\u0012\u0004\u0012\u0002H\u00160\u0019\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u00042\u0006\u0010\u001a\u001a\u0002H\u0016H\u0007¢\u0006\u0002\u0010\u001bJ1\u0010\u001c\u001a\b\u0012\u0004\u0012\u0002H\u00160\u0019\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u00042\u0006\u0010\u001d\u001a\u00020\u00142\u0006\u0010\u001a\u001a\u0002H\u0016H\u0002¢\u0006\u0002\u0010\u001eJ)\u0010\u001f\u001a\b\u0012\u0004\u0012\u0002H\u00160 \"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u00042\u0006\u0010\u001a\u001a\u0002H\u0016H\u0007¢\u0006\u0002\u0010!J\u000e\u0010\"\u001a\b\u0012\u0004\u0012\u00020\u00040#H\u0007J\u001d\u0010$\u001a\u0004\u0018\u0001H\u0016\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u0004H\u0007¢\u0006\u0002\u0010\u0017J\b\u0010\r\u001a\u00020\u000eH\u0007J&\u0010%\u001a\u00020\u0011\"\u0004\b\u0000\u0010\u00162\u0006\u0010\u0012\u001a\u00020\u00042\b\u0010&\u001a\u0004\u0018\u0001H\u0016H\u0087\u0002¢\u0006\u0002\u0010'J\u0018\u0010(\u001a\u00020\u00112\u0006\u0010\u0012\u001a\u00020\u00042\u0006\u0010)\u001a\u00020\u000eH\u0007R\"\u0010\u0007\u001a\u0016\u0012\u0004\u0012\u00020\u0004\u0012\f\u0012\n\u0012\u0006\u0012\u0004\u0018\u00010\u00010\t0\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u001e\u0010\n\u001a\u0012\u0012\u0004\u0012\u00020\u0004\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u000b0\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u001c\u0010\f\u001a\u0010\u0012\u0004\u0012\u00020\u0004\u0012\u0006\u0012\u0004\u0018\u00010\u00010\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\r\u001a\u00020\u000eX\u0082\u0004¢\u0006\u0002\n\u0000R\u001a\u0010\u000f\u001a\u000e\u0012\u0004\u0012\u00020\u0004\u0012\u0004\u0012\u00020\u000e0\bX\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006,"}, d2 = {"Landroidx/lifecycle/SavedStateHandle;", "", "initialState", "", "", "(Ljava/util/Map;)V", "()V", "flows", "", "Lkotlinx/coroutines/flow/MutableStateFlow;", "liveDatas", "Landroidx/lifecycle/SavedStateHandle$SavingStateLiveData;", "regular", "savedStateProvider", "Landroidx/savedstate/SavedStateRegistry$SavedStateProvider;", "savedStateProviders", "clearSavedStateProvider", "", "key", "contains", "", "get", "T", "(Ljava/lang/String;)Ljava/lang/Object;", "getLiveData", "Landroidx/lifecycle/MutableLiveData;", "initialValue", "(Ljava/lang/String;Ljava/lang/Object;)Landroidx/lifecycle/MutableLiveData;", "getLiveDataInternal", "hasInitialValue", "(Ljava/lang/String;ZLjava/lang/Object;)Landroidx/lifecycle/MutableLiveData;", "getStateFlow", "Lkotlinx/coroutines/flow/StateFlow;", "(Ljava/lang/String;Ljava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;", SavedStateHandle.KEYS, "", "remove", "set", "value", "(Ljava/lang/String;Ljava/lang/Object;)V", "setSavedStateProvider", "provider", "Companion", "SavingStateLiveData", "lifecycle-viewmodel-savedstate_release"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public final class SavedStateHandle { | ||||
|     private static final String KEYS = "keys"; | ||||
|     private static final String VALUES = "values"; | ||||
|     private final Map<String, MutableStateFlow<Object>> flows; | ||||
|     private final Map<String, SavingStateLiveData<?>> liveDatas; | ||||
|     private final Map<String, Object> regular; | ||||
|     private final SavedStateRegistry.SavedStateProvider savedStateProvider; | ||||
|     private final Map<String, SavedStateRegistry.SavedStateProvider> savedStateProviders; | ||||
|  | ||||
|     /* renamed from: Companion, reason: from kotlin metadata */ | ||||
|     public static final Companion INSTANCE = new Companion(null); | ||||
|     private static final Class<? extends Object>[] ACCEPTABLE_CLASSES = {Boolean.TYPE, boolean[].class, Double.TYPE, double[].class, Integer.TYPE, int[].class, Long.TYPE, long[].class, String.class, String[].class, Binder.class, Bundle.class, Byte.TYPE, byte[].class, Character.TYPE, char[].class, CharSequence.class, CharSequence[].class, ArrayList.class, Float.TYPE, float[].class, Parcelable.class, Parcelable[].class, Serializable.class, Short.TYPE, short[].class, SparseArray.class, Size.class, SizeF.class}; | ||||
|  | ||||
|     @JvmStatic | ||||
|     public static final SavedStateHandle createHandle(Bundle bundle, Bundle bundle2) { | ||||
|         return INSTANCE.createHandle(bundle, bundle2); | ||||
|     } | ||||
|  | ||||
|     /* renamed from: savedStateProvider, reason: from getter */ | ||||
|     public final SavedStateRegistry.SavedStateProvider getSavedStateProvider() { | ||||
|         return this.savedStateProvider; | ||||
|     } | ||||
|  | ||||
|     /* JADX INFO: Access modifiers changed from: private */ | ||||
|     public static final Bundle savedStateProvider$lambda$0(SavedStateHandle this$0) { | ||||
|         Intrinsics.checkNotNullParameter(this$0, "this$0"); | ||||
|         for (Map.Entry entry : MapsKt.toMap(this$0.savedStateProviders).entrySet()) { | ||||
|             this$0.set((String) entry.getKey(), ((SavedStateRegistry.SavedStateProvider) entry.getValue()).saveState()); | ||||
|         } | ||||
|         Set<String> keySet = this$0.regular.keySet(); | ||||
|         ArrayList arrayList = new ArrayList(keySet.size()); | ||||
|         ArrayList arrayList2 = new ArrayList(arrayList.size()); | ||||
|         for (String str : keySet) { | ||||
|             arrayList.add(str); | ||||
|             arrayList2.add(this$0.regular.get(str)); | ||||
|         } | ||||
|         return BundleKt.bundleOf(TuplesKt.to(KEYS, arrayList), TuplesKt.to(VALUES, arrayList2)); | ||||
|     } | ||||
|  | ||||
|     public SavedStateHandle(Map<String, ? extends Object> initialState) { | ||||
|         Intrinsics.checkNotNullParameter(initialState, "initialState"); | ||||
|         LinkedHashMap linkedHashMap = new LinkedHashMap(); | ||||
|         this.regular = linkedHashMap; | ||||
|         this.savedStateProviders = new LinkedHashMap(); | ||||
|         this.liveDatas = new LinkedHashMap(); | ||||
|         this.flows = new LinkedHashMap(); | ||||
|         this.savedStateProvider = new SavedStateRegistry.SavedStateProvider() { // from class: androidx.lifecycle.SavedStateHandle$$ExternalSyntheticLambda0 | ||||
|             @Override // androidx.savedstate.SavedStateRegistry.SavedStateProvider | ||||
|             public final Bundle saveState() { | ||||
|                 Bundle savedStateProvider$lambda$0; | ||||
|                 savedStateProvider$lambda$0 = SavedStateHandle.savedStateProvider$lambda$0(SavedStateHandle.this); | ||||
|                 return savedStateProvider$lambda$0; | ||||
|             } | ||||
|         }; | ||||
|         linkedHashMap.putAll(initialState); | ||||
|     } | ||||
|  | ||||
|     public SavedStateHandle() { | ||||
|         this.regular = new LinkedHashMap(); | ||||
|         this.savedStateProviders = new LinkedHashMap(); | ||||
|         this.liveDatas = new LinkedHashMap(); | ||||
|         this.flows = new LinkedHashMap(); | ||||
|         this.savedStateProvider = new SavedStateRegistry.SavedStateProvider() { // from class: androidx.lifecycle.SavedStateHandle$$ExternalSyntheticLambda0 | ||||
|             @Override // androidx.savedstate.SavedStateRegistry.SavedStateProvider | ||||
|             public final Bundle saveState() { | ||||
|                 Bundle savedStateProvider$lambda$0; | ||||
|                 savedStateProvider$lambda$0 = SavedStateHandle.savedStateProvider$lambda$0(SavedStateHandle.this); | ||||
|                 return savedStateProvider$lambda$0; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public final boolean contains(String key) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         return this.regular.containsKey(key); | ||||
|     } | ||||
|  | ||||
|     public final <T> MutableLiveData<T> getLiveData(String key) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         MutableLiveData<T> liveDataInternal = getLiveDataInternal(key, false, null); | ||||
|         Intrinsics.checkNotNull(liveDataInternal, "null cannot be cast to non-null type androidx.lifecycle.MutableLiveData<T of androidx.lifecycle.SavedStateHandle.getLiveData>"); | ||||
|         return liveDataInternal; | ||||
|     } | ||||
|  | ||||
|     public final <T> MutableLiveData<T> getLiveData(String key, T initialValue) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         return getLiveDataInternal(key, true, initialValue); | ||||
|     } | ||||
|  | ||||
|     private final <T> MutableLiveData<T> getLiveDataInternal(String key, boolean hasInitialValue, T initialValue) { | ||||
|         SavingStateLiveData<?> savingStateLiveData; | ||||
|         SavingStateLiveData<?> savingStateLiveData2 = this.liveDatas.get(key); | ||||
|         SavingStateLiveData<?> savingStateLiveData3 = savingStateLiveData2 instanceof MutableLiveData ? savingStateLiveData2 : null; | ||||
|         if (savingStateLiveData3 != null) { | ||||
|             return savingStateLiveData3; | ||||
|         } | ||||
|         if (this.regular.containsKey(key)) { | ||||
|             savingStateLiveData = new SavingStateLiveData<>(this, key, this.regular.get(key)); | ||||
|         } else if (hasInitialValue) { | ||||
|             this.regular.put(key, initialValue); | ||||
|             savingStateLiveData = new SavingStateLiveData<>(this, key, initialValue); | ||||
|         } else { | ||||
|             savingStateLiveData = new SavingStateLiveData<>(this, key); | ||||
|         } | ||||
|         this.liveDatas.put(key, savingStateLiveData); | ||||
|         return savingStateLiveData; | ||||
|     } | ||||
|  | ||||
|     public final Set<String> keys() { | ||||
|         return SetsKt.plus(SetsKt.plus((Set) this.regular.keySet(), (Iterable) this.savedStateProviders.keySet()), (Iterable) this.liveDatas.keySet()); | ||||
|     } | ||||
|  | ||||
|     public final <T> T get(String key) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         try { | ||||
|             return (T) this.regular.get(key); | ||||
|         } catch (ClassCastException unused) { | ||||
|             remove(key); | ||||
|             return null; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public final <T> void set(String key, T value) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         if (!INSTANCE.validateValue(value)) { | ||||
|             StringBuilder sb = new StringBuilder("Can't put value with type "); | ||||
|             Intrinsics.checkNotNull(value); | ||||
|             sb.append(value.getClass()); | ||||
|             sb.append(" into saved state"); | ||||
|             throw new IllegalArgumentException(sb.toString()); | ||||
|         } | ||||
|         SavingStateLiveData<?> savingStateLiveData = this.liveDatas.get(key); | ||||
|         SavingStateLiveData<?> savingStateLiveData2 = savingStateLiveData instanceof MutableLiveData ? savingStateLiveData : null; | ||||
|         if (savingStateLiveData2 != null) { | ||||
|             savingStateLiveData2.setValue(value); | ||||
|         } else { | ||||
|             this.regular.put(key, value); | ||||
|         } | ||||
|         MutableStateFlow<Object> mutableStateFlow = this.flows.get(key); | ||||
|         if (mutableStateFlow == null) { | ||||
|             return; | ||||
|         } | ||||
|         mutableStateFlow.setValue(value); | ||||
|     } | ||||
|  | ||||
|     public final <T> T remove(String key) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         T t = (T) this.regular.remove(key); | ||||
|         SavingStateLiveData<?> remove = this.liveDatas.remove(key); | ||||
|         if (remove != null) { | ||||
|             remove.detach(); | ||||
|         } | ||||
|         this.flows.remove(key); | ||||
|         return t; | ||||
|     } | ||||
|  | ||||
|     public final void setSavedStateProvider(String key, SavedStateRegistry.SavedStateProvider provider) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         Intrinsics.checkNotNullParameter(provider, "provider"); | ||||
|         this.savedStateProviders.put(key, provider); | ||||
|     } | ||||
|  | ||||
|     public final void clearSavedStateProvider(String key) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         this.savedStateProviders.remove(key); | ||||
|     } | ||||
|  | ||||
|     /* compiled from: SavedStateHandle.kt */ | ||||
|     @Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0004\n\u0002\u0010\u0002\n\u0002\b\u0003\b\u0000\u0018\u0000*\u0004\b\u0000\u0010\u00012\b\u0012\u0004\u0012\u0002H\u00010\u0002B!\b\u0016\u0012\b\u0010\u0003\u001a\u0004\u0018\u00010\u0004\u0012\u0006\u0010\u0005\u001a\u00020\u0006\u0012\u0006\u0010\u0007\u001a\u00028\u0000¢\u0006\u0002\u0010\bB\u0019\b\u0016\u0012\b\u0010\u0003\u001a\u0004\u0018\u00010\u0004\u0012\u0006\u0010\u0005\u001a\u00020\u0006¢\u0006\u0002\u0010\tJ\u0006\u0010\n\u001a\u00020\u000bJ\u0015\u0010\f\u001a\u00020\u000b2\u0006\u0010\u0007\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\rR\u0010\u0010\u0003\u001a\u0004\u0018\u00010\u0004X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0006X\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\u000e"}, d2 = {"Landroidx/lifecycle/SavedStateHandle$SavingStateLiveData;", "T", "Landroidx/lifecycle/MutableLiveData;", "handle", "Landroidx/lifecycle/SavedStateHandle;", "key", "", "value", "(Landroidx/lifecycle/SavedStateHandle;Ljava/lang/String;Ljava/lang/Object;)V", "(Landroidx/lifecycle/SavedStateHandle;Ljava/lang/String;)V", "detach", "", "setValue", "(Ljava/lang/Object;)V", "lifecycle-viewmodel-savedstate_release"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     public static final class SavingStateLiveData<T> extends MutableLiveData<T> { | ||||
|         private SavedStateHandle handle; | ||||
|         private String key; | ||||
|  | ||||
|         public final void detach() { | ||||
|             this.handle = null; | ||||
|         } | ||||
|  | ||||
|         /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ | ||||
|         public SavingStateLiveData(SavedStateHandle savedStateHandle, String key, T t) { | ||||
|             super(t); | ||||
|             Intrinsics.checkNotNullParameter(key, "key"); | ||||
|             this.key = key; | ||||
|             this.handle = savedStateHandle; | ||||
|         } | ||||
|  | ||||
|         public SavingStateLiveData(SavedStateHandle savedStateHandle, String key) { | ||||
|             Intrinsics.checkNotNullParameter(key, "key"); | ||||
|             this.key = key; | ||||
|             this.handle = savedStateHandle; | ||||
|         } | ||||
|  | ||||
|         @Override // androidx.lifecycle.MutableLiveData, androidx.lifecycle.LiveData | ||||
|         public void setValue(T value) { | ||||
|             SavedStateHandle savedStateHandle = this.handle; | ||||
|             if (savedStateHandle != null) { | ||||
|                 savedStateHandle.regular.put(this.key, value); | ||||
|                 MutableStateFlow mutableStateFlow = (MutableStateFlow) savedStateHandle.flows.get(this.key); | ||||
|                 if (mutableStateFlow != null) { | ||||
|                     mutableStateFlow.setValue(value); | ||||
|                 } | ||||
|             } | ||||
|             super.setValue(value); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* compiled from: SavedStateHandle.kt */ | ||||
|     @Metadata(d1 = {"\u00006\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0011\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0002\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u001c\u0010\n\u001a\u00020\u000b2\b\u0010\f\u001a\u0004\u0018\u00010\r2\b\u0010\u000e\u001a\u0004\u0018\u00010\rH\u0007J\u0012\u0010\u000f\u001a\u00020\u00102\b\u0010\u0011\u001a\u0004\u0018\u00010\u0001H\u0007R \u0010\u0003\u001a\u0012\u0012\u000e\u0012\f\u0012\u0006\b\u0001\u0012\u00020\u0001\u0018\u00010\u00050\u0004X\u0082\u0004¢\u0006\u0004\n\u0002\u0010\u0006R\u000e\u0010\u0007\u001a\u00020\bX\u0082T¢\u0006\u0002\n\u0000R\u000e\u0010\t\u001a\u00020\bX\u0082T¢\u0006\u0002\n\u0000¨\u0006\u0012"}, d2 = {"Landroidx/lifecycle/SavedStateHandle$Companion;", "", "()V", "ACCEPTABLE_CLASSES", "", "Ljava/lang/Class;", "[Ljava/lang/Class;", "KEYS", "", "VALUES", "createHandle", "Landroidx/lifecycle/SavedStateHandle;", "restoredState", "Landroid/os/Bundle;", "defaultState", "validateValue", "", "value", "lifecycle-viewmodel-savedstate_release"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     public static final class Companion { | ||||
|         public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { | ||||
|             this(); | ||||
|         } | ||||
|  | ||||
|         private Companion() { | ||||
|         } | ||||
|  | ||||
|         @JvmStatic | ||||
|         public final SavedStateHandle createHandle(Bundle restoredState, Bundle defaultState) { | ||||
|             if (restoredState == null) { | ||||
|                 if (defaultState == null) { | ||||
|                     return new SavedStateHandle(); | ||||
|                 } | ||||
|                 HashMap hashMap = new HashMap(); | ||||
|                 for (String key : defaultState.keySet()) { | ||||
|                     Intrinsics.checkNotNullExpressionValue(key, "key"); | ||||
|                     hashMap.put(key, defaultState.get(key)); | ||||
|                 } | ||||
|                 return new SavedStateHandle(hashMap); | ||||
|             } | ||||
|             ClassLoader classLoader = SavedStateHandle.class.getClassLoader(); | ||||
|             Intrinsics.checkNotNull(classLoader); | ||||
|             restoredState.setClassLoader(classLoader); | ||||
|             ArrayList parcelableArrayList = restoredState.getParcelableArrayList(SavedStateHandle.KEYS); | ||||
|             ArrayList parcelableArrayList2 = restoredState.getParcelableArrayList(SavedStateHandle.VALUES); | ||||
|             if (parcelableArrayList == null || parcelableArrayList2 == null || parcelableArrayList.size() != parcelableArrayList2.size()) { | ||||
|                 throw new IllegalStateException("Invalid bundle passed as restored state".toString()); | ||||
|             } | ||||
|             LinkedHashMap linkedHashMap = new LinkedHashMap(); | ||||
|             int size = parcelableArrayList.size(); | ||||
|             for (int i = 0; i < size; i++) { | ||||
|                 Object obj = parcelableArrayList.get(i); | ||||
|                 Intrinsics.checkNotNull(obj, "null cannot be cast to non-null type kotlin.String"); | ||||
|                 linkedHashMap.put((String) obj, parcelableArrayList2.get(i)); | ||||
|             } | ||||
|             return new SavedStateHandle(linkedHashMap); | ||||
|         } | ||||
|  | ||||
|         public final boolean validateValue(Object value) { | ||||
|             if (value == null) { | ||||
|                 return true; | ||||
|             } | ||||
|             for (Class cls : SavedStateHandle.ACCEPTABLE_CLASSES) { | ||||
|                 Intrinsics.checkNotNull(cls); | ||||
|                 if (cls.isInstance(value)) { | ||||
|                     return true; | ||||
|                 } | ||||
|             } | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public final <T> StateFlow<T> getStateFlow(String key, T initialValue) { | ||||
|         Intrinsics.checkNotNullParameter(key, "key"); | ||||
|         Map<String, MutableStateFlow<Object>> map = this.flows; | ||||
|         MutableStateFlow<Object> mutableStateFlow = map.get(key); | ||||
|         if (mutableStateFlow == null) { | ||||
|             if (!this.regular.containsKey(key)) { | ||||
|                 this.regular.put(key, initialValue); | ||||
|             } | ||||
|             mutableStateFlow = StateFlowKt.MutableStateFlow(this.regular.get(key)); | ||||
|             this.flows.put(key, mutableStateFlow); | ||||
|             map.put(key, mutableStateFlow); | ||||
|         } | ||||
|         StateFlow<T> asStateFlow = FlowKt.asStateFlow(mutableStateFlow); | ||||
|         Intrinsics.checkNotNull(asStateFlow, "null cannot be cast to non-null type kotlinx.coroutines.flow.StateFlow<T of androidx.lifecycle.SavedStateHandle.getStateFlow>"); | ||||
|         return asStateFlow; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user