正在查看: 医路轻松 v1.1.3 应用的 XXPermissions.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 医路轻松 v1.1.3 应用的 XXPermissions.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.hjq.permissions;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import java.util.ArrayList;
import java.util.List;
public final class XXPermissions {
public static final int REQUEST_CODE = 1025;
private static Boolean sCheckMode;
private static OnPermissionInterceptor sInterceptor;
private Boolean mCheckMode;
private final Context mContext;
private OnPermissionInterceptor mInterceptor;
private final List<String> mPermissions = new ArrayList();
public static XXPermissions with(Context context) {
return new XXPermissions(context);
}
public static XXPermissions with(Fragment fragment) {
return with(fragment.getActivity());
}
public static XXPermissions with(android.support.v4.app.Fragment fragment) {
return with((Context) fragment.getActivity());
}
public static void setCheckMode(boolean z) {
sCheckMode = Boolean.valueOf(z);
}
public static void setInterceptor(OnPermissionInterceptor onPermissionInterceptor) {
sInterceptor = onPermissionInterceptor;
}
public static OnPermissionInterceptor getInterceptor() {
if (sInterceptor == null) {
sInterceptor = new OnPermissionInterceptor() {
};
}
return sInterceptor;
}
private XXPermissions(Context context) {
this.mContext = context;
}
public XXPermissions permission(String str) {
if (str == null || PermissionUtils.containsPermission(this.mPermissions, str)) {
return this;
}
this.mPermissions.add(str);
return this;
}
public XXPermissions permission(String... strArr) {
return permission(PermissionUtils.asArrayList(strArr));
}
public XXPermissions permission(String[]... strArr) {
return permission(PermissionUtils.asArrayLists(strArr));
}
public XXPermissions permission(List<String> list) {
if (list != null && !list.isEmpty()) {
for (String str : list) {
if (!PermissionUtils.containsPermission(this.mPermissions, str)) {
this.mPermissions.add(str);
}
}
}
return this;
}
public XXPermissions interceptor(OnPermissionInterceptor onPermissionInterceptor) {
this.mInterceptor = onPermissionInterceptor;
return this;
}
public XXPermissions unchecked() {
this.mCheckMode = false;
return this;
}
public void request(OnPermissionCallback onPermissionCallback) {
if (this.mContext == null) {
return;
}
if (this.mInterceptor == null) {
this.mInterceptor = getInterceptor();
}
Context context = this.mContext;
OnPermissionInterceptor onPermissionInterceptor = this.mInterceptor;
ArrayList arrayList = new ArrayList(this.mPermissions);
boolean isCheckMode = isCheckMode(context);
Activity findActivity = PermissionUtils.findActivity(context);
if (PermissionChecker.checkActivityStatus(findActivity, isCheckMode) && PermissionChecker.checkPermissionArgument(arrayList, isCheckMode)) {
if (isCheckMode) {
AndroidManifestInfo androidManifestInfo = PermissionUtils.getAndroidManifestInfo(context);
PermissionChecker.checkMediaLocationPermission(context, arrayList);
PermissionChecker.checkStoragePermission(context, arrayList, androidManifestInfo);
PermissionChecker.checkBodySensorsPermission(arrayList);
PermissionChecker.checkLocationPermission(arrayList);
PermissionChecker.checkPictureInPicturePermission(findActivity, arrayList, androidManifestInfo);
PermissionChecker.checkNotificationListenerPermission(arrayList, androidManifestInfo);
PermissionChecker.checkNearbyDevicesPermission(arrayList, androidManifestInfo);
PermissionChecker.checkReadMediaVisualUserSelectedPermission(arrayList);
PermissionChecker.checkGetInstallAppsPermission(context, arrayList, androidManifestInfo);
PermissionChecker.checkTargetSdkVersion(context, arrayList);
PermissionChecker.checkManifestPermissions(context, arrayList, androidManifestInfo);
}
List<String> compatibleOldPermissionByNewPermission = PermissionApi.compatibleOldPermissionByNewPermission(arrayList);
if (PermissionApi.isGrantedPermissions(context, compatibleOldPermissionByNewPermission)) {
onPermissionInterceptor.grantedPermissionRequest(findActivity, compatibleOldPermissionByNewPermission, compatibleOldPermissionByNewPermission, true, onPermissionCallback);
onPermissionInterceptor.finishPermissionRequest(findActivity, compatibleOldPermissionByNewPermission, true, onPermissionCallback);
} else {
onPermissionInterceptor.launchPermissionRequest(findActivity, compatibleOldPermissionByNewPermission, onPermissionCallback);
}
}
}
public boolean revokeOnKill() {
Context context = this.mContext;
if (context == null) {
return false;
}
List<String> list = this.mPermissions;
if (list.isEmpty() || !AndroidVersion.isAndroid13()) {
return false;
}
try {
if (list.size() == 1) {
context.revokeSelfPermissionOnKill(list.get(0));
} else {
context.revokeSelfPermissionsOnKill(list);
}
return true;
} catch (IllegalArgumentException e) {
if (isCheckMode(context)) {
throw e;
}
e.printStackTrace();
return false;
}
}
private boolean isCheckMode(Context context) {
if (this.mCheckMode == null) {
if (sCheckMode == null) {
sCheckMode = Boolean.valueOf(PermissionUtils.isDebugMode(context));
}
this.mCheckMode = sCheckMode;
}
return this.mCheckMode.booleanValue();
}
public static boolean isGranted(Context context, String... strArr) {
return isGranted(context, PermissionUtils.asArrayList(strArr));
}
public static boolean isGranted(Context context, String[]... strArr) {
return isGranted(context, PermissionUtils.asArrayLists(strArr));
}
public static boolean isGranted(Context context, List<String> list) {
return PermissionApi.isGrantedPermissions(context, list);
}
public static List<String> getDenied(Context context, String... strArr) {
return getDenied(context, PermissionUtils.asArrayList(strArr));
}
public static List<String> getDenied(Context context, String[]... strArr) {
return getDenied(context, PermissionUtils.asArrayLists(strArr));
}
public static List<String> getDenied(Context context, List<String> list) {
return PermissionApi.getDeniedPermissions(context, list);
}
public static boolean isSpecial(String str) {
return PermissionApi.isSpecialPermission(str);
}
public static boolean containsSpecial(String... strArr) {
return containsSpecial(PermissionUtils.asArrayList(strArr));
}
public static boolean containsSpecial(List<String> list) {
return PermissionApi.containsSpecialPermission(list);
}
public static boolean isDoNotAskAgainPermissions(Activity activity, String... strArr) {
return isDoNotAskAgainPermissions(activity, PermissionUtils.asArrayList(strArr));
}
public static boolean isDoNotAskAgainPermissions(Activity activity, String[]... strArr) {
return isDoNotAskAgainPermissions(activity, PermissionUtils.asArrayLists(strArr));
}
public static boolean isDoNotAskAgainPermissions(Activity activity, List<String> list) {
return PermissionApi.isDoNotAskAgainPermissions(activity, list);
}
public static void startPermissionActivity(Context context) {
startPermissionActivity(context, new ArrayList(0));
}
public static void startPermissionActivity(Context context, String... strArr) {
startPermissionActivity(context, PermissionUtils.asArrayList(strArr));
}
public static void startPermissionActivity(Context context, String[]... strArr) {
startPermissionActivity(context, PermissionUtils.asArrayLists(strArr));
}
public static void startPermissionActivity(Context context, List<String> list) {
Activity findActivity = PermissionUtils.findActivity(context);
if (findActivity != null) {
startPermissionActivity(findActivity, list);
return;
}
Intent smartPermissionIntent = PermissionApi.getSmartPermissionIntent(context, list);
if (!(context instanceof Activity)) {
smartPermissionIntent.addFlags(268435456);
}
PermissionActivityIntentHandler.startActivity(context, smartPermissionIntent);
}
public static void startPermissionActivity(Activity activity) {
startPermissionActivity(activity, (List<String>) new ArrayList(0));
}
public static void startPermissionActivity(Activity activity, String... strArr) {
startPermissionActivity(activity, (List<String>) PermissionUtils.asArrayList(strArr));
}
public static void startPermissionActivity(Activity activity, String[]... strArr) {
startPermissionActivity(activity, (List<String>) PermissionUtils.asArrayLists(strArr));
}
public static void startPermissionActivity(Activity activity, List<String> list) {
startPermissionActivity(activity, list, REQUEST_CODE);
}
public static void startPermissionActivity(Activity activity, List<String> list, int i) {
PermissionActivityIntentHandler.startActivityForResult(activity, PermissionApi.getSmartPermissionIntent(activity, list), i);
}
public static void startPermissionActivity(Activity activity, String str, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(activity, PermissionUtils.asArrayList(str), onPermissionPageCallback);
}
public static void startPermissionActivity(Activity activity, String[] strArr, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(activity, PermissionUtils.asArrayLists(strArr), onPermissionPageCallback);
}
public static void startPermissionActivity(Activity activity, List<String> list, OnPermissionPageCallback onPermissionPageCallback) {
if (list.isEmpty()) {
PermissionActivityIntentHandler.startActivity(activity, PermissionIntentManager.getApplicationDetailsIntent(activity));
} else {
RequestSpecialPermissionFragment.launch(activity, list, onPermissionPageCallback);
}
}
public static void startPermissionActivity(Fragment fragment) {
startPermissionActivity(fragment, new ArrayList(0));
}
public static void startPermissionActivity(Fragment fragment, String... strArr) {
startPermissionActivity(fragment, PermissionUtils.asArrayList(strArr));
}
public static void startPermissionActivity(Fragment fragment, String[]... strArr) {
startPermissionActivity(fragment, PermissionUtils.asArrayLists(strArr));
}
public static void startPermissionActivity(Fragment fragment, List<String> list) {
startPermissionActivity(fragment, list, REQUEST_CODE);
}
public static void startPermissionActivity(Fragment fragment, List<String> list, int i) {
Activity activity = fragment.getActivity();
if (activity == null) {
return;
}
if (list.isEmpty()) {
PermissionActivityIntentHandler.startActivity(fragment, PermissionIntentManager.getApplicationDetailsIntent(activity));
} else {
PermissionActivityIntentHandler.startActivityForResult(fragment, PermissionApi.getSmartPermissionIntent(activity, list), i);
}
}
public static void startPermissionActivity(Fragment fragment, String str, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(fragment, PermissionUtils.asArrayList(str), onPermissionPageCallback);
}
public static void startPermissionActivity(Fragment fragment, String[] strArr, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(fragment, PermissionUtils.asArrayLists(strArr), onPermissionPageCallback);
}
public static void startPermissionActivity(Fragment fragment, List<String> list, OnPermissionPageCallback onPermissionPageCallback) {
Activity activity = fragment.getActivity();
if (activity == null || activity.isFinishing()) {
return;
}
if (AndroidVersion.isAndroid4_2() && activity.isDestroyed()) {
return;
}
if (list.isEmpty()) {
PermissionActivityIntentHandler.startActivity(fragment, PermissionIntentManager.getApplicationDetailsIntent(activity));
} else {
RequestSpecialPermissionFragment.launch(activity, list, onPermissionPageCallback);
}
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment) {
startPermissionActivity(fragment, new ArrayList());
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, String... strArr) {
startPermissionActivity(fragment, PermissionUtils.asArrayList(strArr));
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, String[]... strArr) {
startPermissionActivity(fragment, PermissionUtils.asArrayLists(strArr));
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, List<String> list) {
startPermissionActivity(fragment, list, REQUEST_CODE);
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, List<String> list, int i) {
FragmentActivity activity = fragment.getActivity();
if (activity == null) {
return;
}
if (list.isEmpty()) {
PermissionActivityIntentHandler.startActivity(fragment, PermissionIntentManager.getApplicationDetailsIntent(activity));
} else {
PermissionActivityIntentHandler.startActivityForResult(fragment, PermissionApi.getSmartPermissionIntent(activity, list), i);
}
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, String str, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(fragment, PermissionUtils.asArrayList(str), onPermissionPageCallback);
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, String[] strArr, OnPermissionPageCallback onPermissionPageCallback) {
startPermissionActivity(fragment, PermissionUtils.asArrayLists(strArr), onPermissionPageCallback);
}
public static void startPermissionActivity(android.support.v4.app.Fragment fragment, List<String> list, OnPermissionPageCallback onPermissionPageCallback) {
FragmentActivity activity = fragment.getActivity();
if (activity == null || activity.isFinishing()) {
return;
}
if (AndroidVersion.isAndroid4_2() && activity.isDestroyed()) {
return;
}
if (list.isEmpty()) {
PermissionActivityIntentHandler.startActivity(fragment, PermissionIntentManager.getApplicationDetailsIntent(activity));
} else {
RequestSpecialPermissionFragment.launch(activity, list, onPermissionPageCallback);
}
}
}