diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerAllowlistBackend.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerAllowlistBackend.java index c501b3aab4d43..2e8f368345842 100644 --- a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerAllowlistBackend.java +++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/PowerAllowlistBackend.java @@ -109,6 +109,18 @@ public class PowerAllowlistBackend { return false; } + /** + * Check if target package is in allow list except idle app + */ + public boolean isAllowlistedExceptIdle(String pkg) { + try { + return mDeviceIdleService.isPowerSaveWhitelistExceptIdleApp(pkg); + } catch (RemoteException e) { + Log.w(TAG, "Unable to reach IDeviceIdleController", e); + return true; + } + } + /** * * @param pkgs a list of packageName diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerAllowlistBackendTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerAllowlistBackendTest.java index 4f11fb1f782f4..6caf7624e1bcd 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerAllowlistBackendTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerAllowlistBackendTest.java @@ -151,4 +151,14 @@ public class PowerAllowlistBackendTest { assertThat(mPowerAllowlistBackend.isSysAllowlisted(PACKAGE_TWO)).isFalse(); assertThat(mPowerAllowlistBackend.isAllowlisted(PACKAGE_ONE)).isFalse(); } + + @Test + public void testIsPowerSaveWhitelistExceptIdleApp() throws Exception { + doReturn(true).when(mDeviceIdleService) + .isPowerSaveWhitelistExceptIdleApp(PACKAGE_ONE); + + mPowerAllowlistBackend.refreshList(); + + assertThat(mPowerAllowlistBackend.isAllowlistedExceptIdle(PACKAGE_ONE)).isTrue(); + } }