discord-jadx/app/src/main/java/androidx/activity/result/ActivityResultRegistry.java

309 lines
15 KiB
Java

package androidx.activity.result;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import androidx.activity.result.contract.ActivityResultContract;
import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityOptionsCompat;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleEventObserver;
import androidx.lifecycle.LifecycleOwner;
import c.d.b.a.a;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
public abstract class ActivityResultRegistry {
private static final int INITIAL_REQUEST_CODE_VALUE = 65536;
private static final String KEY_COMPONENT_ACTIVITY_PENDING_RESULTS = "KEY_COMPONENT_ACTIVITY_PENDING_RESULT";
private static final String KEY_COMPONENT_ACTIVITY_RANDOM_OBJECT = "KEY_COMPONENT_ACTIVITY_RANDOM_OBJECT";
private static final String KEY_COMPONENT_ACTIVITY_REGISTERED_KEYS = "KEY_COMPONENT_ACTIVITY_REGISTERED_KEYS";
private static final String KEY_COMPONENT_ACTIVITY_REGISTERED_RCS = "KEY_COMPONENT_ACTIVITY_REGISTERED_RCS";
private static final String LOG_TAG = "ActivityResultRegistry";
public final transient Map<String, CallbackAndContract<?>> mKeyToCallback = new HashMap();
private final Map<String, LifecycleContainer> mKeyToLifecycleContainers = new HashMap();
private final Map<String, Integer> mKeyToRc = new HashMap();
public final Map<String, Object> mParsedPendingResults = new HashMap();
public final Bundle mPendingResults = new Bundle();
private Random mRandom = new Random();
private final Map<Integer, String> mRcToKey = new HashMap();
/* renamed from: androidx.activity.result.ActivityResultRegistry$1 reason: invalid class name */
public class AnonymousClass1 implements LifecycleEventObserver {
public final /* synthetic */ ActivityResultCallback val$callback;
public final /* synthetic */ ActivityResultContract val$contract;
public final /* synthetic */ String val$key;
public AnonymousClass1(String str, ActivityResultCallback activityResultCallback, ActivityResultContract activityResultContract) {
this.val$key = str;
this.val$callback = activityResultCallback;
this.val$contract = activityResultContract;
}
@Override // androidx.lifecycle.LifecycleEventObserver
public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner, @NonNull Lifecycle.Event event) {
if (Lifecycle.Event.ON_START.equals(event)) {
ActivityResultRegistry.this.mKeyToCallback.put(this.val$key, new CallbackAndContract<>(this.val$callback, this.val$contract));
if (ActivityResultRegistry.this.mParsedPendingResults.containsKey(this.val$key)) {
Object obj = ActivityResultRegistry.this.mParsedPendingResults.get(this.val$key);
ActivityResultRegistry.this.mParsedPendingResults.remove(this.val$key);
this.val$callback.onActivityResult(obj);
}
ActivityResult activityResult = (ActivityResult) ActivityResultRegistry.this.mPendingResults.getParcelable(this.val$key);
if (activityResult != null) {
ActivityResultRegistry.this.mPendingResults.remove(this.val$key);
this.val$callback.onActivityResult(this.val$contract.parseResult(activityResult.getResultCode(), activityResult.getData()));
}
} else if (Lifecycle.Event.ON_STOP.equals(event)) {
ActivityResultRegistry.this.mKeyToCallback.remove(this.val$key);
} else if (Lifecycle.Event.ON_DESTROY.equals(event)) {
ActivityResultRegistry.this.unregister(this.val$key);
}
}
}
/* renamed from: androidx.activity.result.ActivityResultRegistry$2 reason: invalid class name */
public class AnonymousClass2 extends ActivityResultLauncher<I> {
public final /* synthetic */ ActivityResultContract val$contract;
public final /* synthetic */ String val$key;
public final /* synthetic */ int val$requestCode;
public AnonymousClass2(int i, ActivityResultContract activityResultContract, String str) {
this.val$requestCode = i;
this.val$contract = activityResultContract;
this.val$key = str;
}
@Override // androidx.activity.result.ActivityResultLauncher
@NonNull
public ActivityResultContract<I, ?> getContract() {
return this.val$contract;
}
@Override // androidx.activity.result.ActivityResultLauncher
public void launch(I i, @Nullable ActivityOptionsCompat activityOptionsCompat) {
ActivityResultRegistry.this.onLaunch(this.val$requestCode, this.val$contract, i, activityOptionsCompat);
}
@Override // androidx.activity.result.ActivityResultLauncher
public void unregister() {
ActivityResultRegistry.this.unregister(this.val$key);
}
}
/* renamed from: androidx.activity.result.ActivityResultRegistry$3 reason: invalid class name */
public class AnonymousClass3 extends ActivityResultLauncher<I> {
public final /* synthetic */ ActivityResultContract val$contract;
public final /* synthetic */ String val$key;
public final /* synthetic */ int val$requestCode;
public AnonymousClass3(int i, ActivityResultContract activityResultContract, String str) {
this.val$requestCode = i;
this.val$contract = activityResultContract;
this.val$key = str;
}
@Override // androidx.activity.result.ActivityResultLauncher
@NonNull
public ActivityResultContract<I, ?> getContract() {
return this.val$contract;
}
@Override // androidx.activity.result.ActivityResultLauncher
public void launch(I i, @Nullable ActivityOptionsCompat activityOptionsCompat) {
ActivityResultRegistry.this.onLaunch(this.val$requestCode, this.val$contract, i, activityOptionsCompat);
}
@Override // androidx.activity.result.ActivityResultLauncher
public void unregister() {
ActivityResultRegistry.this.unregister(this.val$key);
}
}
public static class CallbackAndContract<O> {
public final ActivityResultCallback<O> mCallback;
public final ActivityResultContract<?, O> mContract;
public CallbackAndContract(ActivityResultCallback<O> activityResultCallback, ActivityResultContract<?, O> activityResultContract) {
this.mCallback = activityResultCallback;
this.mContract = activityResultContract;
}
}
public static class LifecycleContainer {
public final Lifecycle mLifecycle;
private final ArrayList<LifecycleEventObserver> mObservers = new ArrayList<>();
public LifecycleContainer(@NonNull Lifecycle lifecycle) {
this.mLifecycle = lifecycle;
}
public void addObserver(@NonNull LifecycleEventObserver lifecycleEventObserver) {
this.mLifecycle.addObserver(lifecycleEventObserver);
this.mObservers.add(lifecycleEventObserver);
}
public void clearObservers() {
Iterator<LifecycleEventObserver> it = this.mObservers.iterator();
while (it.hasNext()) {
this.mLifecycle.removeObserver(it.next());
}
this.mObservers.clear();
}
}
private void bindRcKey(int i, String str) {
this.mRcToKey.put(Integer.valueOf(i), str);
this.mKeyToRc.put(str, Integer.valueOf(i));
}
private <O> void doDispatch(String str, int i, @Nullable Intent intent, @Nullable CallbackAndContract<O> callbackAndContract) {
ActivityResultCallback<O> activityResultCallback;
if (callbackAndContract == null || (activityResultCallback = callbackAndContract.mCallback) == null) {
this.mParsedPendingResults.remove(str);
this.mPendingResults.putParcelable(str, new ActivityResult(i, intent));
return;
}
activityResultCallback.onActivityResult(callbackAndContract.mContract.parseResult(i, intent));
}
private int generateRandomNumber() {
int nextInt = this.mRandom.nextInt(2147418112);
while (true) {
int i = nextInt + 65536;
if (!this.mRcToKey.containsKey(Integer.valueOf(i))) {
return i;
}
nextInt = this.mRandom.nextInt(2147418112);
}
}
private int registerKey(String str) {
Integer num = this.mKeyToRc.get(str);
if (num != null) {
return num.intValue();
}
int generateRandomNumber = generateRandomNumber();
bindRcKey(generateRandomNumber, str);
return generateRandomNumber;
}
@MainThread
public final boolean dispatchResult(int i, int i2, @Nullable Intent intent) {
String str = this.mRcToKey.get(Integer.valueOf(i));
if (str == null) {
return false;
}
doDispatch(str, i2, intent, this.mKeyToCallback.get(str));
return true;
}
@MainThread
public final <O> boolean dispatchResult(int i, @SuppressLint({"UnknownNullness"}) O o) {
ActivityResultCallback<?> activityResultCallback;
String str = this.mRcToKey.get(Integer.valueOf(i));
if (str == null) {
return false;
}
CallbackAndContract<?> callbackAndContract = this.mKeyToCallback.get(str);
if (callbackAndContract == null || (activityResultCallback = callbackAndContract.mCallback) == null) {
this.mPendingResults.remove(str);
this.mParsedPendingResults.put(str, o);
return true;
}
activityResultCallback.onActivityResult(o);
return true;
}
@MainThread
public abstract <I, O> void onLaunch(int i, @NonNull ActivityResultContract<I, O> activityResultContract, @SuppressLint({"UnknownNullness"}) I i2, @Nullable ActivityOptionsCompat activityOptionsCompat);
public final void onRestoreInstanceState(@Nullable Bundle bundle) {
if (bundle != null) {
ArrayList<Integer> integerArrayList = bundle.getIntegerArrayList(KEY_COMPONENT_ACTIVITY_REGISTERED_RCS);
ArrayList<String> stringArrayList = bundle.getStringArrayList(KEY_COMPONENT_ACTIVITY_REGISTERED_KEYS);
if (!(stringArrayList == null || integerArrayList == null)) {
int size = stringArrayList.size();
for (int i = 0; i < size; i++) {
bindRcKey(integerArrayList.get(i).intValue(), stringArrayList.get(i));
}
this.mRandom = (Random) bundle.getSerializable(KEY_COMPONENT_ACTIVITY_RANDOM_OBJECT);
this.mPendingResults.putAll(bundle.getBundle(KEY_COMPONENT_ACTIVITY_PENDING_RESULTS));
}
}
}
public final void onSaveInstanceState(@NonNull Bundle bundle) {
bundle.putIntegerArrayList(KEY_COMPONENT_ACTIVITY_REGISTERED_RCS, new ArrayList<>(this.mRcToKey.keySet()));
bundle.putStringArrayList(KEY_COMPONENT_ACTIVITY_REGISTERED_KEYS, new ArrayList<>(this.mRcToKey.values()));
bundle.putBundle(KEY_COMPONENT_ACTIVITY_PENDING_RESULTS, (Bundle) this.mPendingResults.clone());
bundle.putSerializable(KEY_COMPONENT_ACTIVITY_RANDOM_OBJECT, this.mRandom);
}
/* JADX DEBUG: Multi-variable search result rejected for r6v0, resolved type: androidx.activity.result.ActivityResultCallback<O> */
/* JADX WARN: Multi-variable type inference failed */
@NonNull
public final <I, O> ActivityResultLauncher<I> register(@NonNull String str, @NonNull ActivityResultContract<I, O> activityResultContract, @NonNull ActivityResultCallback<O> activityResultCallback) {
int registerKey = registerKey(str);
this.mKeyToCallback.put(str, new CallbackAndContract<>(activityResultCallback, activityResultContract));
if (this.mParsedPendingResults.containsKey(str)) {
Object obj = this.mParsedPendingResults.get(str);
this.mParsedPendingResults.remove(str);
activityResultCallback.onActivityResult(obj);
}
ActivityResult activityResult = (ActivityResult) this.mPendingResults.getParcelable(str);
if (activityResult != null) {
this.mPendingResults.remove(str);
activityResultCallback.onActivityResult(activityResultContract.parseResult(activityResult.getResultCode(), activityResult.getData()));
}
return new AnonymousClass3(registerKey, activityResultContract, str);
}
@NonNull
public final <I, O> ActivityResultLauncher<I> register(@NonNull String str, @NonNull LifecycleOwner lifecycleOwner, @NonNull ActivityResultContract<I, O> activityResultContract, @NonNull ActivityResultCallback<O> activityResultCallback) {
Lifecycle lifecycle = lifecycleOwner.getLifecycle();
if (!lifecycle.getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
int registerKey = registerKey(str);
LifecycleContainer lifecycleContainer = this.mKeyToLifecycleContainers.get(str);
if (lifecycleContainer == null) {
lifecycleContainer = new LifecycleContainer(lifecycle);
}
lifecycleContainer.addObserver(new AnonymousClass1(str, activityResultCallback, activityResultContract));
this.mKeyToLifecycleContainers.put(str, lifecycleContainer);
return new AnonymousClass2(registerKey, activityResultContract, str);
}
throw new IllegalStateException("LifecycleOwner " + lifecycleOwner + " is attempting to register while current state is " + lifecycle.getCurrentState() + ". LifecycleOwners must call register before they are STARTED.");
}
@MainThread
public final void unregister(@NonNull String str) {
Integer remove = this.mKeyToRc.remove(str);
if (remove != null) {
this.mRcToKey.remove(remove);
}
this.mKeyToCallback.remove(str);
if (this.mParsedPendingResults.containsKey(str)) {
StringBuilder Q = a.Q("Dropping pending result for request ", str, ": ");
Q.append(this.mParsedPendingResults.get(str));
Log.w(LOG_TAG, Q.toString());
this.mParsedPendingResults.remove(str);
}
if (this.mPendingResults.containsKey(str)) {
StringBuilder Q2 = a.Q("Dropping pending result for request ", str, ": ");
Q2.append(this.mPendingResults.getParcelable(str));
Log.w(LOG_TAG, Q2.toString());
this.mPendingResults.remove(str);
}
LifecycleContainer lifecycleContainer = this.mKeyToLifecycleContainers.get(str);
if (lifecycleContainer != null) {
lifecycleContainer.clearObservers();
this.mKeyToLifecycleContainers.remove(str);
}
}
}