diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 777e4281764..79e01940ecd 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -343,7 +343,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements final String stateString; final String footerString; - if (!mBatteryOptimizeUtils.isValidPackageName()) { + if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) { // Present optimized only string when the package name is invalid. stateString = context.getString(R.string.manager_battery_usage_optimized_only); footerString = context.getString( diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java index 00611de7817..589e1fd4055 100644 --- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java @@ -128,11 +128,10 @@ public class BatteryOptimizeUtils { mContext, mode, mUid, mPackageName, mBatteryUtils, mPowerAllowListBackend, action); } - /** - * Return {@code true} if package name is valid (can get an uid). - */ - public boolean isValidPackageName() { - return mBatteryUtils.getPackageUid(mPackageName) != BatteryUtils.UID_NULL; + /** Return {@code true} if it is disabled for default optimized mode only. */ + public boolean isDisabledForOptimizeModeOnly() { + return getAllowList(mContext).contains(mPackageName) + || mBatteryUtils.getPackageUid(mPackageName) == BatteryUtils.UID_NULL; } /** diff --git a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java b/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java index 88241b6ff39..ca75b0e8d22 100644 --- a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java +++ b/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java @@ -46,8 +46,8 @@ public class OptimizedPreferenceController extends AbstractPreferenceController @Override public void updateState(Preference preference) { - if (!mBatteryOptimizeUtils.isValidPackageName()) { - Log.d(TAG, "invalid package name, optimized states only"); + if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) { + Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName()); preference.setEnabled(true); ((SelectorWithWidgetPreference) preference).setChecked(true); return; diff --git a/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java index fe896a6aed0..7db77f15e40 100644 --- a/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java +++ b/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java @@ -14,7 +14,6 @@ * limitations under the License. */ - package com.android.settings.fuelgauge; import android.content.Context; @@ -43,8 +42,8 @@ public class RestrictedPreferenceController extends AbstractPreferenceController @Override public void updateState(Preference preference) { - if (!mBatteryOptimizeUtils.isValidPackageName()) { - Log.d(TAG, "invalid package name, disable pref"); + if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) { + Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName()); preference.setEnabled(false); return; } else { diff --git a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java b/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java index be4091c782f..4578723ce5e 100644 --- a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java +++ b/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java @@ -42,8 +42,8 @@ public class UnrestrictedPreferenceController extends AbstractPreferenceControll @Override public void updateState(Preference preference) { - if (!mBatteryOptimizeUtils.isValidPackageName()) { - Log.d(TAG, "invalid package name, disable pref"); + if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) { + Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName()); preference.setEnabled(false); return; } else { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index 0278553b2a5..5e9fb738672 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -710,7 +710,7 @@ public class AdvancedPowerUsageDetailTest { @Test public void initPreferenceForTriState_isValidPackageName_hasCorrectString() { - when(mBatteryOptimizeUtils.isValidPackageName()).thenReturn(false); + when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true); mFragment.initPreferenceForTriState(mContext); @@ -720,7 +720,7 @@ public class AdvancedPowerUsageDetailTest { @Test public void initPreferenceForTriState_isSystemOrDefaultApp_hasCorrectString() { - when(mBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); mFragment.initPreferenceForTriState(mContext); @@ -731,7 +731,7 @@ public class AdvancedPowerUsageDetailTest { @Test public void initPreferenceForTriState_hasCorrectString() { - when(mBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false); mFragment.initPreferenceForTriState(mContext); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java index 83a75f61e96..f9d3108f904 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java @@ -136,16 +136,16 @@ public class BatteryOptimizeUtilsTest { } @Test - public void testIsValidPackageName_InvalidPackageName_returnFalse() { + public void isDisabledForOptimizeModeOnly_invalidPackageName_returnTrue() { final BatteryOptimizeUtils testBatteryOptimizeUtils = new BatteryOptimizeUtils(mContext, UID, null); - assertThat(testBatteryOptimizeUtils.isValidPackageName()).isFalse(); + assertThat(testBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).isTrue(); } @Test - public void testIsValidPackageName_validPackageName_returnTrue() { - assertThat(mBatteryOptimizeUtils.isValidPackageName()).isTrue(); + public void isDisabledForOptimizeModeOnly_validPackageName_returnFalse() { + assertThat(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).isFalse(); } @Test diff --git a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java index 1fec92a8134..71bb998e4b8 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java @@ -52,7 +52,7 @@ public class OptimizedPreferenceControllerTest { @Test public void testUpdateState_invalidPackage_prefEnabled() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(false); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true); mController.updateState(mPreference); @@ -62,7 +62,7 @@ public class OptimizedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultAppAndOptimizeStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_OPTIMIZED); @@ -74,7 +74,7 @@ public class OptimizedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); mController.updateState(mPreference); @@ -85,7 +85,7 @@ public class OptimizedPreferenceControllerTest { @Test public void testUpdateState_isOptimizedStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_OPTIMIZED); @@ -96,7 +96,7 @@ public class OptimizedPreferenceControllerTest { @Test public void testUpdateState_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); mController.updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java index 944376c77dd..bcddbc2500b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java @@ -52,7 +52,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_isValidPackage_prefEnabled() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); mController.updateState(mPreference); @@ -61,7 +61,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_invalidPackage_prefDisabled() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(false); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true); mController.updateState(mPreference); @@ -70,7 +70,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultAppAndRestrictedStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_RESTRICTED); @@ -82,7 +82,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); mController.updateState(mPreference); @@ -93,7 +93,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_isRestrictedStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_RESTRICTED); @@ -104,7 +104,7 @@ public class RestrictedPreferenceControllerTest { @Test public void testUpdateState_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); mController.updateState(mPreference); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java index c5642df576c..9bed9bad152 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java @@ -14,7 +14,6 @@ * limitations under the License. */ - package com.android.settings.fuelgauge; import static com.google.common.truth.Truth.assertThat; @@ -53,7 +52,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_isValidPackage_prefEnabled() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); mController.updateState(mPreference); @@ -62,7 +61,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_invalidPackage_prefDisabled() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(false); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true); mController.updateState(mPreference); @@ -71,7 +70,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultAppAndUnrestrictedStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_UNRESTRICTED); @@ -83,7 +82,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true); mController.updateState(mPreference); @@ -94,7 +93,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_isUnrestrictedStates_prefChecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn( BatteryOptimizeUtils.MODE_UNRESTRICTED); @@ -105,7 +104,7 @@ public class UnrestrictedPreferenceControllerTest { @Test public void testUpdateState_prefUnchecked() { - when(mockBatteryOptimizeUtils.isValidPackageName()).thenReturn(true); + when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false); mController.updateState(mPreference);