55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
package com.yanzhenjie.permission.source;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.os.Build;
|
|
import java.lang.reflect.Method;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class ContextSource extends Source {
|
|
private Context a;
|
|
|
|
public ContextSource(Context context) {
|
|
this.a = context;
|
|
}
|
|
|
|
@Override // com.yanzhenjie.permission.source.Source
|
|
public Context a() {
|
|
return this.a;
|
|
}
|
|
|
|
@Override // com.yanzhenjie.permission.source.Source
|
|
public void a(Intent intent, int i) {
|
|
Context context = this.a;
|
|
if (context instanceof Activity) {
|
|
((Activity) context).startActivityForResult(intent, i);
|
|
} else {
|
|
intent.addFlags(268435456);
|
|
this.a.startActivity(intent);
|
|
}
|
|
}
|
|
|
|
@Override // com.yanzhenjie.permission.source.Source
|
|
public boolean a(String str) {
|
|
if (Build.VERSION.SDK_INT < 23) {
|
|
return false;
|
|
}
|
|
Context context = this.a;
|
|
if (context instanceof Activity) {
|
|
return ((Activity) context).shouldShowRequestPermissionRationale(str);
|
|
}
|
|
PackageManager packageManager = context.getPackageManager();
|
|
try {
|
|
Method method = packageManager.getClass().getMethod("shouldShowRequestPermissionRationale", String.class);
|
|
if (!method.isAccessible()) {
|
|
method.setAccessible(true);
|
|
}
|
|
return ((Boolean) method.invoke(packageManager, str)).booleanValue();
|
|
} catch (Exception unused) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|