Rabbit-R1/android (non root)/java/sources/androidx/lifecycle/SavedStateHandle.java

307 lines
20 KiB
Java
Raw Permalink Normal View History

2024-05-21 16:08:36 -05:00
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.exifinterface.media.ExifInterface;
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", ExifInterface.GPS_DIRECTION_TRUE, "(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: classes2.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) {
this.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);
throw new IllegalArgumentException(sb.append(value.getClass()).append(" into saved state").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;", ExifInterface.GPS_DIRECTION_TRUE, "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)
/* loaded from: classes2.dex */
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)
/* loaded from: classes2.dex */
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);
}
ArrayList parcelableArrayList = restoredState.getParcelableArrayList(SavedStateHandle.KEYS);
ArrayList parcelableArrayList2 = restoredState.getParcelableArrayList("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;
}
}