From 41aaeafbe9b7ec334de453f6b67eec1e6f4ea6b7 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:51:39 +0900 Subject: [PATCH] fix(GmsCore support): Do not show battery optimization error on Android Automotive devices (Google built-in) --- .../extension/shared/patches/GmsCoreSupport.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/extensions/shared/src/main/java/app/revanced/extension/shared/patches/GmsCoreSupport.java b/extensions/shared/src/main/java/app/revanced/extension/shared/patches/GmsCoreSupport.java index 3b5004d3b..f0c5cd391 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/shared/patches/GmsCoreSupport.java +++ b/extensions/shared/src/main/java/app/revanced/extension/shared/patches/GmsCoreSupport.java @@ -120,7 +120,11 @@ public class GmsCoreSupport { } // Check if GmsCore is whitelisted from battery optimizations. - if (batteryOptimizationsEnabled(mActivity)) { + if (isAndroidAutomotive(mActivity)) { + // Ignore Android Automotive devices (Google built-in), + // as there is no way to disable battery optimizations. + Logger.printDebug(() -> "Device is Android Automotive"); + } else if (batteryOptimizationsEnabled(mActivity)) { Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations"); showBatteryOptimizationDialog(mActivity, "gms_core_dialog_not_whitelisted_using_battery_optimizations_message", @@ -220,6 +224,10 @@ public class GmsCoreSupport { return packageName; } + private static boolean isAndroidAutomotive(Context context) { + return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE); + } + private static String getGmsCoreDownload() { final String vendorGroupId = getGmsCoreVendorGroupId(); return switch (vendorGroupId) {