From 331fe7b96ff8db62325ad0e3b9d5a2b27f877acd Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 9 Apr 2022 12:05:49 +0200 Subject: [PATCH] Added doze setup fallback --- .../java/eu/faircode/email/FragmentSetup.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index a8b51482ab..2552428e71 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -488,13 +488,21 @@ public class FragmentSetup extends FragmentBase { @RequiresApi(api = Build.VERSION_CODES.M) public void onClick(View v) { if (hasPermission(Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)) { - Intent intent = new Intent(); - if (Boolean.FALSE.equals(Helper.isIgnoringOptimizations(v.getContext()))) - intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) + if (Boolean.FALSE.equals(Helper.isIgnoringOptimizations(v.getContext()))) { + Intent intent = new Intent() + .setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS) .setData(Uri.parse("package:" + v.getContext().getPackageName())); - else - intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); - v.getContext().startActivity(intent); + + PackageManager pm = v.getContext().getPackageManager(); + if (intent.resolveActivity(pm) == null) + new FragmentDialogDoze().show(getParentFragmentManager(), "setup:doze"); + else + v.getContext().startActivity(intent); + } else { + Intent intent = new Intent() + .setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS); + v.getContext().startActivity(intent); + } } else new FragmentDialogDoze().show(getParentFragmentManager(), "setup:doze"); }