Fix request permission

This commit is contained in:
tehcneko 2021-01-28 20:08:35 +08:00
parent 205090bdce
commit d9612a733c
4 changed files with 41 additions and 10 deletions

View File

@ -51,22 +51,22 @@ public class App extends Application implements Application.ActivityLifecycleCal
}
}
public static boolean checkPermission(int code) {
public static int checkPermission(int code) {
try {
if (!Shizuku.isPreV11() && Shizuku.getVersion() >= 11) {
if (Shizuku.checkSelfPermission() == PERMISSION_GRANTED) {
return true;
return 0;
} else if (Shizuku.shouldShowRequestPermissionRationale()) {
return false;
return -1;
} else {
Shizuku.requestPermission(code);
return false;
return -1;
}
}
} catch (Throwable e) {
e.printStackTrace();
}
return false;
return -2;
}
public static App getInstance() {

View File

@ -126,7 +126,15 @@ public class CompileDialogFragment extends AppCompatDialogFragment {
int type = arguments.getInt(KEY_TYPE);
appInfo = arguments.getParcelable(KEY_APP_INFO);
type = type * 10 + 1;
onRequestPermissionsResult(type, App.checkPermission(type) ? PERMISSION_GRANTED : PERMISSION_DENIED);
int result = App.checkPermission(type);
switch (result){
case 0:
onRequestPermissionsResult(type, PERMISSION_GRANTED);
break;
case -2:
onRequestPermissionsResult(type, PERMISSION_DENIED);
break;
}
} else {
dismissAllowingStateLoss();
}

View File

@ -126,13 +126,29 @@ public class CompileUtil {
public static void compileAllDexopt(Activity activity) {
sActivity = activity;
int type = CompileType.DEXOPT_ALL.ordinal() * 10 + 1;
onRequestPermissionsResult(type, App.checkPermission(type) ? PERMISSION_GRANTED : PERMISSION_DENIED);
int result = App.checkPermission(type);
switch (result){
case 0:
onRequestPermissionsResult(type, PERMISSION_GRANTED);
break;
case -2:
onRequestPermissionsResult(type, PERMISSION_DENIED);
break;
}
}
public static void compileAllSpeed(Activity activity) {
sActivity = activity;
int type = CompileType.SPEED_ALL.ordinal() * 10 + 1;
onRequestPermissionsResult(type, App.checkPermission(type) ? PERMISSION_GRANTED : PERMISSION_DENIED);
int result = App.checkPermission(type);
switch (result){
case 0:
onRequestPermissionsResult(type, PERMISSION_GRANTED);
break;
case -2:
onRequestPermissionsResult(type, PERMISSION_DENIED);
break;
}
}
private static void compilePackageInBg(FragmentManager fragmentManager,

View File

@ -61,8 +61,15 @@ public class RebootUtil {
public static void reboot(RebootType mode) {
onRequestPermissionsResult(mode.ordinal(), App.checkPermission(mode.ordinal()) ? PERMISSION_GRANTED : PERMISSION_DENIED);
int result = App.checkPermission(mode.ordinal());
switch (result){
case 0:
onRequestPermissionsResult(mode.ordinal(), PERMISSION_GRANTED);
break;
case -2:
onRequestPermissionsResult(mode.ordinal(), PERMISSION_DENIED);
break;
}
}
private static void rebootWithShell(RebootType mode) {