124 lines
3.9 KiB
Java
124 lines
3.9 KiB
Java
package com.yanzhenjie.permission;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.view.KeyEvent;
|
|
import com.yanzhenjie.permission.overlay.setting.AlertWindowSettingPage;
|
|
import com.yanzhenjie.permission.overlay.setting.OverlaySettingPage;
|
|
import com.yanzhenjie.permission.runtime.setting.RuntimeSettingPage;
|
|
import com.yanzhenjie.permission.source.ContextSource;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class PermissionActivity extends Activity {
|
|
private static RequestListener a;
|
|
|
|
public interface RequestListener {
|
|
void a();
|
|
}
|
|
|
|
public static void a(Context context, String[] strArr, RequestListener requestListener) {
|
|
a = requestListener;
|
|
Intent intent = new Intent(context, (Class<?>) PermissionActivity.class);
|
|
intent.putExtra("KEY_INPUT_OPERATION", 1);
|
|
intent.putExtra("KEY_INPUT_PERMISSIONS", strArr);
|
|
intent.setFlags(268435456);
|
|
context.startActivity(intent);
|
|
}
|
|
|
|
@Override // android.app.Activity
|
|
public void finish() {
|
|
a = null;
|
|
super.finish();
|
|
}
|
|
|
|
@Override // android.app.Activity
|
|
protected void onActivityResult(int i, int i2, Intent intent) {
|
|
RequestListener requestListener = a;
|
|
if (requestListener != null) {
|
|
requestListener.a();
|
|
}
|
|
finish();
|
|
}
|
|
|
|
@Override // android.app.Activity
|
|
protected void onCreate(Bundle bundle) {
|
|
super.onCreate(bundle);
|
|
Intent intent = getIntent();
|
|
int intExtra = intent.getIntExtra("KEY_INPUT_OPERATION", 0);
|
|
if (intExtra == 1) {
|
|
String[] stringArrayExtra = intent.getStringArrayExtra("KEY_INPUT_PERMISSIONS");
|
|
if (stringArrayExtra == null || a == null) {
|
|
finish();
|
|
return;
|
|
} else {
|
|
requestPermissions(stringArrayExtra, 1);
|
|
return;
|
|
}
|
|
}
|
|
if (intExtra == 2) {
|
|
if (a != null) {
|
|
new RuntimeSettingPage(new ContextSource(this)).a(2);
|
|
return;
|
|
} else {
|
|
finish();
|
|
return;
|
|
}
|
|
}
|
|
if (intExtra == 3) {
|
|
if (a == null) {
|
|
finish();
|
|
return;
|
|
}
|
|
Intent intent2 = new Intent("android.settings.MANAGE_UNKNOWN_APP_SOURCES");
|
|
intent2.setData(Uri.fromParts("package", getPackageName(), null));
|
|
startActivityForResult(intent2, 3);
|
|
return;
|
|
}
|
|
if (intExtra == 4) {
|
|
if (a != null) {
|
|
new OverlaySettingPage(new ContextSource(this)).a(4);
|
|
return;
|
|
} else {
|
|
finish();
|
|
return;
|
|
}
|
|
}
|
|
if (intExtra != 5) {
|
|
throw new AssertionError("This should not be the case.");
|
|
}
|
|
if (a != null) {
|
|
new AlertWindowSettingPage(new ContextSource(this)).a(5);
|
|
} else {
|
|
finish();
|
|
}
|
|
}
|
|
|
|
@Override // android.app.Activity, android.view.KeyEvent.Callback
|
|
public boolean onKeyDown(int i, KeyEvent keyEvent) {
|
|
if (i == 4) {
|
|
return true;
|
|
}
|
|
return super.onKeyDown(i, keyEvent);
|
|
}
|
|
|
|
@Override // android.app.Activity
|
|
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
|
|
RequestListener requestListener = a;
|
|
if (requestListener != null) {
|
|
requestListener.a();
|
|
}
|
|
finish();
|
|
}
|
|
|
|
public static void a(Context context, RequestListener requestListener) {
|
|
a = requestListener;
|
|
Intent intent = new Intent(context, (Class<?>) PermissionActivity.class);
|
|
intent.putExtra("KEY_INPUT_OPERATION", 2);
|
|
intent.setFlags(268435456);
|
|
context.startActivity(intent);
|
|
}
|
|
}
|