diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/utils/Compatibility.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/utils/Compatibility.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/Compatibility.java b/src/main/java/de/pixart/messenger/utils/Compatibility.java index c8922e18b..728c6298a 100644 --- a/src/main/java/de/pixart/messenger/utils/Compatibility.java +++ b/src/main/java/de/pixart/messenger/utils/Compatibility.java @@ -42,6 +42,10 @@ public class Compatibility { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; } + public static boolean runsTwentyFour() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N; + } + public static boolean twentyEight() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.P; } @@ -66,10 +70,24 @@ public class Compatibility { } } + private static boolean targetsTwentyFour(Context context) { + try { + final PackageManager packageManager = context.getPackageManager(); + final ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0); + return applicationInfo == null || applicationInfo.targetSdkVersion >= 24; + } catch (PackageManager.NameNotFoundException | RuntimeException e) { + return true; //when in doubt… + } + } + public static boolean runsAndTargetsTwentySix(Context context) { return runsTwentySix() && targetsTwentySix(context); } + public static boolean runsAndTargetsTwentyFour(Context context) { + return runsTwentyFour() && targetsTwentyFour(context); + } + public static boolean keepForegroundService(Context context) { return runsTwentySix() || getBooleanPreference(context, SettingsActivity.SHOW_FOREGROUND_SERVICE, R.bool.show_foreground_service); } |