2021-07-24 02:37:17 +00:00
|
|
|
package androidx.core.app;
|
|
|
|
|
|
|
|
import android.app.Activity;
|
|
|
|
import android.app.SharedElementCallback;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.IntentSender;
|
|
|
|
import android.content.pm.PackageManager;
|
|
|
|
import android.graphics.Matrix;
|
|
|
|
import android.graphics.RectF;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.os.Build;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Handler;
|
|
|
|
import android.os.Looper;
|
|
|
|
import android.os.Parcelable;
|
2021-09-15 06:33:54 +00:00
|
|
|
import android.text.TextUtils;
|
2021-07-24 02:37:17 +00:00
|
|
|
import android.view.DragEvent;
|
|
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.IdRes;
|
|
|
|
import androidx.annotation.IntRange;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
|
import androidx.annotation.RestrictTo;
|
|
|
|
import androidx.core.app.SharedElementCallback;
|
|
|
|
import androidx.core.content.ContextCompat;
|
2021-09-15 06:33:54 +00:00
|
|
|
import androidx.core.content.LocusIdCompat;
|
2021-07-24 02:37:17 +00:00
|
|
|
import androidx.core.view.DragAndDropPermissionsCompat;
|
2021-09-15 06:33:54 +00:00
|
|
|
import c.d.b.a.a;
|
|
|
|
import java.util.Arrays;
|
2021-07-24 02:37:17 +00:00
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
public class ActivityCompat extends ContextCompat {
|
|
|
|
private static PermissionCompatDelegate sDelegate;
|
|
|
|
|
|
|
|
/* renamed from: androidx.core.app.ActivityCompat$1 reason: invalid class name */
|
|
|
|
public class AnonymousClass1 implements Runnable {
|
|
|
|
public final /* synthetic */ Activity val$activity;
|
|
|
|
public final /* synthetic */ String[] val$permissions;
|
|
|
|
public final /* synthetic */ int val$requestCode;
|
|
|
|
|
|
|
|
public AnonymousClass1(String[] strArr, Activity activity, int i) {
|
|
|
|
this.val$permissions = strArr;
|
|
|
|
this.val$activity = activity;
|
|
|
|
this.val$requestCode = i;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // java.lang.Runnable
|
|
|
|
public void run() {
|
|
|
|
int[] iArr = new int[this.val$permissions.length];
|
|
|
|
PackageManager packageManager = this.val$activity.getPackageManager();
|
|
|
|
String packageName = this.val$activity.getPackageName();
|
|
|
|
int length = this.val$permissions.length;
|
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
|
iArr[i] = packageManager.checkPermission(this.val$permissions[i], packageName);
|
|
|
|
}
|
|
|
|
((OnRequestPermissionsResultCallback) this.val$activity).onRequestPermissionsResult(this.val$requestCode, this.val$permissions, iArr);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* renamed from: androidx.core.app.ActivityCompat$2 reason: invalid class name */
|
|
|
|
public class AnonymousClass2 implements Runnable {
|
|
|
|
public final /* synthetic */ Activity val$activity;
|
|
|
|
|
|
|
|
public AnonymousClass2(Activity activity) {
|
|
|
|
this.val$activity = activity;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // java.lang.Runnable
|
|
|
|
public void run() {
|
|
|
|
if (!this.val$activity.isFinishing() && !ActivityRecreator.recreate(this.val$activity)) {
|
|
|
|
this.val$activity.recreate();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-15 06:33:54 +00:00
|
|
|
@RequiresApi(30)
|
|
|
|
public static class Api30Impl {
|
|
|
|
private Api30Impl() {
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void setLocusContext(@NonNull Activity activity, @Nullable LocusIdCompat locusIdCompat, @Nullable Bundle bundle) {
|
|
|
|
activity.setLocusContext(locusIdCompat == null ? null : locusIdCompat.toLocusId(), bundle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-24 02:37:17 +00:00
|
|
|
public interface OnRequestPermissionsResultCallback {
|
|
|
|
void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr);
|
|
|
|
}
|
|
|
|
|
|
|
|
public interface PermissionCompatDelegate {
|
|
|
|
boolean onActivityResult(@NonNull Activity activity, @IntRange(from = 0) int i, int i2, @Nullable Intent intent);
|
|
|
|
|
|
|
|
boolean requestPermissions(@NonNull Activity activity, @NonNull String[] strArr, @IntRange(from = 0) int i);
|
|
|
|
}
|
|
|
|
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
|
|
public interface RequestPermissionsRequestCodeValidator {
|
|
|
|
void validateRequestPermissionsRequestCode(int i);
|
|
|
|
}
|
|
|
|
|
|
|
|
@RequiresApi(21)
|
|
|
|
public static class SharedElementCallback21Impl extends SharedElementCallback {
|
|
|
|
private final SharedElementCallback mCallback;
|
|
|
|
|
|
|
|
/* renamed from: androidx.core.app.ActivityCompat$SharedElementCallback21Impl$1 reason: invalid class name */
|
|
|
|
public class AnonymousClass1 implements SharedElementCallback.OnSharedElementsReadyListener {
|
|
|
|
public final /* synthetic */ SharedElementCallback.OnSharedElementsReadyListener val$listener;
|
|
|
|
|
|
|
|
public AnonymousClass1(SharedElementCallback.OnSharedElementsReadyListener onSharedElementsReadyListener) {
|
|
|
|
this.val$listener = onSharedElementsReadyListener;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener
|
|
|
|
public void onSharedElementsReady() {
|
|
|
|
this.val$listener.onSharedElementsReady();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public SharedElementCallback21Impl(SharedElementCallback sharedElementCallback) {
|
|
|
|
this.mCallback = sharedElementCallback;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public Parcelable onCaptureSharedElementSnapshot(View view, Matrix matrix, RectF rectF) {
|
|
|
|
return this.mCallback.onCaptureSharedElementSnapshot(view, matrix, rectF);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public View onCreateSnapshotView(Context context, Parcelable parcelable) {
|
|
|
|
return this.mCallback.onCreateSnapshotView(context, parcelable);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public void onMapSharedElements(List<String> list, Map<String, View> map) {
|
|
|
|
this.mCallback.onMapSharedElements(list, map);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public void onRejectSharedElements(List<View> list) {
|
|
|
|
this.mCallback.onRejectSharedElements(list);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public void onSharedElementEnd(List<String> list, List<View> list2, List<View> list3) {
|
|
|
|
this.mCallback.onSharedElementEnd(list, list2, list3);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
public void onSharedElementStart(List<String> list, List<View> list2, List<View> list3) {
|
|
|
|
this.mCallback.onSharedElementStart(list, list2, list3);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // android.app.SharedElementCallback
|
|
|
|
@RequiresApi(23)
|
|
|
|
public void onSharedElementsArrived(List<String> list, List<View> list2, SharedElementCallback.OnSharedElementsReadyListener onSharedElementsReadyListener) {
|
|
|
|
this.mCallback.onSharedElementsArrived(list, list2, new AnonymousClass1(onSharedElementsReadyListener));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void finishAffinity(@NonNull Activity activity) {
|
|
|
|
activity.finishAffinity();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void finishAfterTransition(@NonNull Activity activity) {
|
|
|
|
activity.finishAfterTransition();
|
|
|
|
}
|
|
|
|
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
|
|
public static PermissionCompatDelegate getPermissionCompatDelegate() {
|
|
|
|
return sDelegate;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Nullable
|
|
|
|
public static Uri getReferrer(@NonNull Activity activity) {
|
|
|
|
if (Build.VERSION.SDK_INT >= 22) {
|
|
|
|
return activity.getReferrer();
|
|
|
|
}
|
|
|
|
Intent intent = activity.getIntent();
|
|
|
|
Uri uri = (Uri) intent.getParcelableExtra("android.intent.extra.REFERRER");
|
|
|
|
if (uri != null) {
|
|
|
|
return uri;
|
|
|
|
}
|
|
|
|
String stringExtra = intent.getStringExtra("android.intent.extra.REFERRER_NAME");
|
|
|
|
if (stringExtra != null) {
|
|
|
|
return Uri.parse(stringExtra);
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
|
public static boolean invalidateOptionsMenu(Activity activity) {
|
|
|
|
activity.invalidateOptionsMenu();
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void postponeEnterTransition(@NonNull Activity activity) {
|
|
|
|
activity.postponeEnterTransition();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void recreate(@NonNull Activity activity) {
|
|
|
|
int i = Build.VERSION.SDK_INT;
|
|
|
|
if (i >= 28) {
|
|
|
|
activity.recreate();
|
|
|
|
} else if (i <= 23) {
|
|
|
|
new Handler(activity.getMainLooper()).post(new AnonymousClass2(activity));
|
|
|
|
} else if (!ActivityRecreator.recreate(activity)) {
|
|
|
|
activity.recreate();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Nullable
|
|
|
|
public static DragAndDropPermissionsCompat requestDragAndDropPermissions(Activity activity, DragEvent dragEvent) {
|
|
|
|
return DragAndDropPermissionsCompat.request(activity, dragEvent);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void requestPermissions(@NonNull Activity activity, @NonNull String[] strArr, @IntRange(from = 0) int i) {
|
|
|
|
PermissionCompatDelegate permissionCompatDelegate = sDelegate;
|
2021-09-15 06:33:54 +00:00
|
|
|
if (permissionCompatDelegate == null || !permissionCompatDelegate.requestPermissions(activity, strArr, i)) {
|
|
|
|
for (String str : strArr) {
|
|
|
|
if (TextUtils.isEmpty(str)) {
|
2021-11-05 06:48:17 +00:00
|
|
|
throw new IllegalArgumentException(a.H(a.R("Permission request for permissions "), Arrays.toString(strArr), " must not contain null or empty values"));
|
2021-09-15 06:33:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
if (Build.VERSION.SDK_INT >= 23) {
|
|
|
|
if (activity instanceof RequestPermissionsRequestCodeValidator) {
|
|
|
|
((RequestPermissionsRequestCodeValidator) activity).validateRequestPermissionsRequestCode(i);
|
|
|
|
}
|
|
|
|
activity.requestPermissions(strArr, i);
|
|
|
|
} else if (activity instanceof OnRequestPermissionsResultCallback) {
|
|
|
|
new Handler(Looper.getMainLooper()).post(new AnonymousClass1(strArr, activity, i));
|
2021-07-24 02:37:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
public static <T extends View> T requireViewById(@NonNull Activity activity, @IdRes int i) {
|
|
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
|
|
return (T) activity.requireViewById(i);
|
|
|
|
}
|
|
|
|
T t = (T) activity.findViewById(i);
|
|
|
|
if (t != null) {
|
|
|
|
return t;
|
|
|
|
}
|
|
|
|
throw new IllegalArgumentException("ID does not reference a View inside this Activity");
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void setEnterSharedElementCallback(@NonNull Activity activity, @Nullable SharedElementCallback sharedElementCallback) {
|
|
|
|
activity.setEnterSharedElementCallback(sharedElementCallback != null ? new SharedElementCallback21Impl(sharedElementCallback) : null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void setExitSharedElementCallback(@NonNull Activity activity, @Nullable SharedElementCallback sharedElementCallback) {
|
|
|
|
activity.setExitSharedElementCallback(sharedElementCallback != null ? new SharedElementCallback21Impl(sharedElementCallback) : null);
|
|
|
|
}
|
|
|
|
|
2021-09-15 06:33:54 +00:00
|
|
|
public static void setLocusContext(@NonNull Activity activity, @Nullable LocusIdCompat locusIdCompat, @Nullable Bundle bundle) {
|
|
|
|
if (Build.VERSION.SDK_INT >= 30) {
|
|
|
|
Api30Impl.setLocusContext(activity, locusIdCompat, bundle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-24 02:37:17 +00:00
|
|
|
public static void setPermissionCompatDelegate(@Nullable PermissionCompatDelegate permissionCompatDelegate) {
|
|
|
|
sDelegate = permissionCompatDelegate;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean shouldShowRequestPermissionRationale(@NonNull Activity activity, @NonNull String str) {
|
|
|
|
if (Build.VERSION.SDK_INT >= 23) {
|
|
|
|
return activity.shouldShowRequestPermissionRationale(str);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void startActivityForResult(@NonNull Activity activity, @NonNull Intent intent, int i, @Nullable Bundle bundle) {
|
|
|
|
activity.startActivityForResult(intent, i, bundle);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void startIntentSenderForResult(@NonNull Activity activity, @NonNull IntentSender intentSender, int i, @Nullable Intent intent, int i2, int i3, int i4, @Nullable Bundle bundle) throws IntentSender.SendIntentException {
|
|
|
|
activity.startIntentSenderForResult(intentSender, i, intent, i2, i3, i4, bundle);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void startPostponedEnterTransition(@NonNull Activity activity) {
|
|
|
|
activity.startPostponedEnterTransition();
|
|
|
|
}
|
|
|
|
}
|