diff --git a/app/src/main/java/org/meowcat/edxposed/manager/App.java b/app/src/main/java/org/meowcat/edxposed/manager/App.java index 65903118..d088a5db 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/App.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/App.java @@ -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() { diff --git a/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java index 9cc5dd51..099581be 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/ui/fragment/CompileDialogFragment.java @@ -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(); } diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java index 8e987347..ea328ea9 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/util/CompileUtil.java @@ -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, diff --git a/app/src/main/java/org/meowcat/edxposed/manager/util/RebootUtil.java b/app/src/main/java/org/meowcat/edxposed/manager/util/RebootUtil.java index 503ca98e..b1bd05ad 100644 --- a/app/src/main/java/org/meowcat/edxposed/manager/util/RebootUtil.java +++ b/app/src/main/java/org/meowcat/edxposed/manager/util/RebootUtil.java @@ -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) {