Loading src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +0 −9 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.widget.LayoutPreference; import java.util.ArrayList; Loading Loading @@ -272,7 +271,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment public void onPause() { super.onPause(); notifyBackupManager(); final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode(); mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode); logMetricCategory(currentOptimizeMode); Loading @@ -289,13 +287,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment Log.d(TAG, "Leave with mode: " + currentOptimizeMode); } @VisibleForTesting void notifyBackupManager() { if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) { BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE); } } @VisibleForTesting void initHeader() { final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header); Loading src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +12 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; import java.lang.annotation.Retention; Loading Loading @@ -222,6 +223,10 @@ public class BatteryOptimizeUtils { return; } // App preferences are already clear when code reach here, and there may be no // setAppUsageStateInternal call to notifyChange. So always trigger notifyChange here. BatterySettingsStorage.get(context).notifyChange(ChangeReason.DELETE); allowlistBackend.refreshList(); // Resets optimization mode for each application. for (ApplicationInfo info : applications) { Loading Loading @@ -351,6 +356,9 @@ public class BatteryOptimizeUtils { } BatteryOptimizeLogUtils.writeLog( context, action, packageNameKey, createLogEvent(appStandbyMode, allowListed)); if (action != Action.RESET) { // reset has been notified in resetAppOptimizationMode BatterySettingsStorage.get(context).notifyChange(toChangeReason(action)); } } private static String createLogEvent(int appStandbyMode, boolean allowListed) { Loading @@ -362,4 +370,8 @@ public class BatteryOptimizeUtils { allowListed, getAppOptimizationMode(appStandbyMode, allowListed)); } private static @ChangeReason int toChangeReason(Action action) { return action == Action.RESTORE ? ChangeReason.RESTORE : ChangeReason.UPDATE; } } src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java +0 −9 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import com.android.settingslib.HelpUtils; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.widget.MainSwitchPreference; Loading Loading @@ -116,7 +115,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment public void onPause() { super.onPause(); notifyBackupManager(); final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode(); mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode); logMetricCategory(currentOptimizeMode); Loading Loading @@ -183,13 +181,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment onRadioButtonClicked(isEnabled ? mOptimizePreference : null); } @VisibleForTesting void notifyBackupManager() { if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) { BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE); } } @VisibleForTesting int getSelectedPreference() { if (!mMainSwitchPreference.isChecked()) { Loading tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +0 −31 Original line number Diff line number Diff line Loading @@ -60,12 +60,8 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.datastore.Observer; import com.android.settingslib.widget.LayoutPreference; import com.google.common.util.concurrent.MoreExecutors; import org.junit.After; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -119,10 +115,8 @@ public class AdvancedPowerUsageDetailTest { @Mock private AppOpsManager mAppOpsManager; @Mock private LoaderManager mLoaderManager; @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils; @Mock private Observer mObserver; private Context mContext; private BatterySettingsStorage mBatterySettingsStorage; private PrimarySwitchPreference mAllowBackgroundUsagePreference; private AdvancedPowerUsageDetail mFragment; private SettingsActivity mTestActivity; Loading @@ -134,7 +128,6 @@ public class AdvancedPowerUsageDetailTest { @Before public void setUp() { mContext = spy(ApplicationProvider.getApplicationContext()); mBatterySettingsStorage = BatterySettingsStorage.get(mContext); when(mContext.getPackageName()).thenReturn("foo"); mFeatureFactory = FakeFeatureFactory.setupForTest(); mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider; Loading Loading @@ -448,28 +441,4 @@ public class AdvancedPowerUsageDetailTest { TimeUnit.SECONDS.sleep(1); verifyNoInteractions(mMetricsFeatureProvider); } @Test public void notifyBackupManager_optimizationModeIsNotChanged_notInvokeDataChanged() { mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); final int mode = BatteryOptimizeUtils.MODE_RESTRICTED; mFragment.mOptimizationMode = mode; when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode); mFragment.notifyBackupManager(); verifyNoInteractions(mObserver); } @Test public void notifyBackupManager_optimizationModeIsChanged_invokeDataChanged() { mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_RESTRICTED; when(mBatteryOptimizeUtils.getAppOptimizationMode()) .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED); mFragment.notifyBackupManager(); verify(mObserver).onChanged(ChangeReason.UPDATE); } } tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -49,8 +49,12 @@ import android.os.UserManager; import android.util.ArraySet; import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.datastore.Observer; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; import com.google.common.util.concurrent.MoreExecutors; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -74,14 +78,18 @@ public class BatteryOptimizeUtilsTest { @Mock private PowerAllowlistBackend mMockBackend; @Mock private IPackageManager mMockIPackageManager; @Mock private UserManager mMockUserManager; @Mock private Observer mObserver; private Context mContext; private BatteryOptimizeUtils mBatteryOptimizeUtils; private BatterySettingsStorage mBatterySettingsStorage; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mBatterySettingsStorage = BatterySettingsStorage.get(mContext); mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME)); mBatteryOptimizeUtils.mAppOpsManager = mMockAppOpsManager; mBatteryOptimizeUtils.mBatteryUtils = mMockBatteryUtils; Loading Loading @@ -156,6 +164,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -169,6 +178,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -182,6 +192,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -197,6 +208,7 @@ public class BatteryOptimizeUtilsTest { verify(mMockBatteryUtils, never()).setForceAppStandby(anyInt(), anyString(), anyInt()); verify(mMockBackend, never()).addApp(anyString()); verify(mMockBackend, never()).removeApp(anyString()); verifyNoInteractions(mObserver); } @Test Loading Loading @@ -288,6 +300,7 @@ public class BatteryOptimizeUtilsTest { inOrder.verify(mMockBackend).isAllowlisted(PACKAGE_NAME, UID); inOrder.verify(mMockBackend).isSysAllowlisted(PACKAGE_NAME); verifyNoMoreInteractions(mMockBackend); verify(mObserver).onChanged(ChangeReason.DELETE); } @Test Loading @@ -298,6 +311,7 @@ public class BatteryOptimizeUtilsTest { /* isSystemOrDefaultApp */ false); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.DELETE); } @Test Loading @@ -308,6 +322,7 @@ public class BatteryOptimizeUtilsTest { /* isSystemOrDefaultApp */ false); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.DELETE); } private void runTestForResetWithMode( Loading Loading
src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +0 −9 Original line number Diff line number Diff line Loading @@ -52,7 +52,6 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.widget.LayoutPreference; import java.util.ArrayList; Loading Loading @@ -272,7 +271,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment public void onPause() { super.onPause(); notifyBackupManager(); final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode(); mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode); logMetricCategory(currentOptimizeMode); Loading @@ -289,13 +287,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment Log.d(TAG, "Leave with mode: " + currentOptimizeMode); } @VisibleForTesting void notifyBackupManager() { if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) { BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE); } } @VisibleForTesting void initHeader() { final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header); Loading
src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +12 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; import java.lang.annotation.Retention; Loading Loading @@ -222,6 +223,10 @@ public class BatteryOptimizeUtils { return; } // App preferences are already clear when code reach here, and there may be no // setAppUsageStateInternal call to notifyChange. So always trigger notifyChange here. BatterySettingsStorage.get(context).notifyChange(ChangeReason.DELETE); allowlistBackend.refreshList(); // Resets optimization mode for each application. for (ApplicationInfo info : applications) { Loading Loading @@ -351,6 +356,9 @@ public class BatteryOptimizeUtils { } BatteryOptimizeLogUtils.writeLog( context, action, packageNameKey, createLogEvent(appStandbyMode, allowListed)); if (action != Action.RESET) { // reset has been notified in resetAppOptimizationMode BatterySettingsStorage.get(context).notifyChange(toChangeReason(action)); } } private static String createLogEvent(int appStandbyMode, boolean allowListed) { Loading @@ -362,4 +370,8 @@ public class BatteryOptimizeUtils { allowListed, getAppOptimizationMode(appStandbyMode, allowListed)); } private static @ChangeReason int toChangeReason(Action action) { return action == Action.RESTORE ? ChangeReason.RESTORE : ChangeReason.UPDATE; } }
src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java +0 −9 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import com.android.settingslib.HelpUtils; import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.widget.MainSwitchPreference; Loading Loading @@ -116,7 +115,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment public void onPause() { super.onPause(); notifyBackupManager(); final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode(); mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode); logMetricCategory(currentOptimizeMode); Loading Loading @@ -183,13 +181,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment onRadioButtonClicked(isEnabled ? mOptimizePreference : null); } @VisibleForTesting void notifyBackupManager() { if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) { BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE); } } @VisibleForTesting int getSelectedPreference() { if (!mMainSwitchPreference.isChecked()) { Loading
tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +0 −31 Original line number Diff line number Diff line Loading @@ -60,12 +60,8 @@ import com.android.settingslib.applications.AppUtils; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.instantapps.InstantAppDataProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.datastore.Observer; import com.android.settingslib.widget.LayoutPreference; import com.google.common.util.concurrent.MoreExecutors; import org.junit.After; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -119,10 +115,8 @@ public class AdvancedPowerUsageDetailTest { @Mock private AppOpsManager mAppOpsManager; @Mock private LoaderManager mLoaderManager; @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils; @Mock private Observer mObserver; private Context mContext; private BatterySettingsStorage mBatterySettingsStorage; private PrimarySwitchPreference mAllowBackgroundUsagePreference; private AdvancedPowerUsageDetail mFragment; private SettingsActivity mTestActivity; Loading @@ -134,7 +128,6 @@ public class AdvancedPowerUsageDetailTest { @Before public void setUp() { mContext = spy(ApplicationProvider.getApplicationContext()); mBatterySettingsStorage = BatterySettingsStorage.get(mContext); when(mContext.getPackageName()).thenReturn("foo"); mFeatureFactory = FakeFeatureFactory.setupForTest(); mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider; Loading Loading @@ -448,28 +441,4 @@ public class AdvancedPowerUsageDetailTest { TimeUnit.SECONDS.sleep(1); verifyNoInteractions(mMetricsFeatureProvider); } @Test public void notifyBackupManager_optimizationModeIsNotChanged_notInvokeDataChanged() { mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); final int mode = BatteryOptimizeUtils.MODE_RESTRICTED; mFragment.mOptimizationMode = mode; when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode); mFragment.notifyBackupManager(); verifyNoInteractions(mObserver); } @Test public void notifyBackupManager_optimizationModeIsChanged_invokeDataChanged() { mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_RESTRICTED; when(mBatteryOptimizeUtils.getAppOptimizationMode()) .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED); mFragment.notifyBackupManager(); verify(mObserver).onChanged(ChangeReason.UPDATE); } }
tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -49,8 +49,12 @@ import android.os.UserManager; import android.util.ArraySet; import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action; import com.android.settingslib.datastore.ChangeReason; import com.android.settingslib.datastore.Observer; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; import com.google.common.util.concurrent.MoreExecutors; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -74,14 +78,18 @@ public class BatteryOptimizeUtilsTest { @Mock private PowerAllowlistBackend mMockBackend; @Mock private IPackageManager mMockIPackageManager; @Mock private UserManager mMockUserManager; @Mock private Observer mObserver; private Context mContext; private BatteryOptimizeUtils mBatteryOptimizeUtils; private BatterySettingsStorage mBatterySettingsStorage; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mBatterySettingsStorage = BatterySettingsStorage.get(mContext); mBatterySettingsStorage.addObserver(mObserver, MoreExecutors.directExecutor()); mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME)); mBatteryOptimizeUtils.mAppOpsManager = mMockAppOpsManager; mBatteryOptimizeUtils.mBatteryUtils = mMockBatteryUtils; Loading Loading @@ -156,6 +164,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -169,6 +178,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -182,6 +192,7 @@ public class BatteryOptimizeUtilsTest { TimeUnit.SECONDS.sleep(1); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.UPDATE); } @Test Loading @@ -197,6 +208,7 @@ public class BatteryOptimizeUtilsTest { verify(mMockBatteryUtils, never()).setForceAppStandby(anyInt(), anyString(), anyInt()); verify(mMockBackend, never()).addApp(anyString()); verify(mMockBackend, never()).removeApp(anyString()); verifyNoInteractions(mObserver); } @Test Loading Loading @@ -288,6 +300,7 @@ public class BatteryOptimizeUtilsTest { inOrder.verify(mMockBackend).isAllowlisted(PACKAGE_NAME, UID); inOrder.verify(mMockBackend).isSysAllowlisted(PACKAGE_NAME); verifyNoMoreInteractions(mMockBackend); verify(mObserver).onChanged(ChangeReason.DELETE); } @Test Loading @@ -298,6 +311,7 @@ public class BatteryOptimizeUtilsTest { /* isSystemOrDefaultApp */ false); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.DELETE); } @Test Loading @@ -308,6 +322,7 @@ public class BatteryOptimizeUtilsTest { /* isSystemOrDefaultApp */ false); verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); verify(mObserver).onChanged(ChangeReason.DELETE); } private void runTestForResetWithMode( Loading