Loading src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +3 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ public interface PowerUsageFeatureProvider { /** Check whether the battery tips card is enabled in the battery usage page */ boolean isBatteryTipsEnabled(); /** Check whether force expire the app optimization mode. */ boolean isForceExpireAppOptimizationModeEnabled(); /** Check whether to log the optimization mode of app entry in period job */ boolean isAppOptimizationModeLogged(); Loading src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return false; } @Override public boolean isForceExpireAppOptimizationModeEnabled() { return false; } @Override public boolean isAppOptimizationModeLogged() { return false; Loading src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt +6 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action import com.android.settings.fuelgauge.BatteryOptimizeUtils import com.android.settings.fuelgauge.BatteryUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory /** A util to store and update app optimization mode expiration event data. */ object AppOptModeSharedPreferencesUtils { Loading Loading @@ -74,10 +75,14 @@ object AppOptModeSharedPreferencesUtils { @JvmStatic fun resetExpiredAppOptModeBeforeTimestamp(context: Context, queryTimestampMs: Long) = synchronized(appOptimizationModeLock) { val forceExpireEnabled = featureFactory .powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled val eventsMap = getAppOptModeEventsMap(context) val expirationUids = ArrayList<Int>(eventsMap.size) for ((uid, event) in eventsMap) { if (event.expirationTime > queryTimestampMs) { // Not reset the mode if forceExpireEnabled is false and not expired. if (!forceExpireEnabled && event.expirationTime > queryTimestampMs) { continue } updateBatteryOptimizationMode( Loading tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,11 @@ public class PowerUsageFeatureProviderImplTest { assertThat(mPowerFeatureProvider.isBatteryTipsEnabled()).isFalse(); } @Test public void isForceExpireAppOptimizationModeEnabled_returnFalse() { assertThat(mPowerFeatureProvider.isForceExpireAppOptimizationModeEnabled()).isFalse(); } @Test public void isAppOptimizationModeLogged_returnFalse() { assertThat(mPowerFeatureProvider.isAppOptimizationModeLogged()).isFalse(); Loading tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_RESTRICTED import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNKNOWN import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNRESTRICTED import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils.UNLIMITED_EXPIRE_TIME import com.android.settings.testutils.FakeFeatureFactory import com.google.common.truth.Truth.assertThat import org.junit.After import org.junit.Before Loading @@ -51,9 +52,14 @@ class AppOptModeSharedPreferencesUtilsTest { @Spy private var testBatteryOptimizeUtils = spy(BatteryOptimizeUtils(context, UID, PACKAGE_NAME)) private lateinit var featureFactory: FakeFeatureFactory @Before fun setup() { AppOptModeSharedPreferencesUtils.clearAll(context) featureFactory = FakeFeatureFactory.setupForTest() whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled) .thenReturn(false) } @After Loading Loading @@ -126,6 +132,20 @@ class AppOptModeSharedPreferencesUtilsTest { assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun resetExpiredAppOptModeBeforeTimestamp_forceExpiredData_verifyEmptyList() { whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled) .thenReturn(true) insertAppOptModeEventForTest(expirationTime = 1000L) AppOptModeSharedPreferencesUtils.resetExpiredAppOptModeBeforeTimestamp( context, queryTimestampMs = 999L ) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun resetExpiredAppOptModeBeforeTimestamp_noExpiredData_verifyData() { insertAppOptModeEventForTest(expirationTime = 1000L) Loading Loading
src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +3 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,9 @@ public interface PowerUsageFeatureProvider { /** Check whether the battery tips card is enabled in the battery usage page */ boolean isBatteryTipsEnabled(); /** Check whether force expire the app optimization mode. */ boolean isForceExpireAppOptimizationModeEnabled(); /** Check whether to log the optimization mode of app entry in period job */ boolean isAppOptimizationModeLogged(); Loading
src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +5 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider return false; } @Override public boolean isForceExpireAppOptimizationModeEnabled() { return false; } @Override public boolean isAppOptimizationModeLogged() { return false; Loading
src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt +6 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action import com.android.settings.fuelgauge.BatteryOptimizeUtils import com.android.settings.fuelgauge.BatteryUtils import com.android.settings.overlay.FeatureFactory.Companion.featureFactory /** A util to store and update app optimization mode expiration event data. */ object AppOptModeSharedPreferencesUtils { Loading Loading @@ -74,10 +75,14 @@ object AppOptModeSharedPreferencesUtils { @JvmStatic fun resetExpiredAppOptModeBeforeTimestamp(context: Context, queryTimestampMs: Long) = synchronized(appOptimizationModeLock) { val forceExpireEnabled = featureFactory .powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled val eventsMap = getAppOptModeEventsMap(context) val expirationUids = ArrayList<Int>(eventsMap.size) for ((uid, event) in eventsMap) { if (event.expirationTime > queryTimestampMs) { // Not reset the mode if forceExpireEnabled is false and not expired. if (!forceExpireEnabled && event.expirationTime > queryTimestampMs) { continue } updateBatteryOptimizationMode( Loading
tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,11 @@ public class PowerUsageFeatureProviderImplTest { assertThat(mPowerFeatureProvider.isBatteryTipsEnabled()).isFalse(); } @Test public void isForceExpireAppOptimizationModeEnabled_returnFalse() { assertThat(mPowerFeatureProvider.isForceExpireAppOptimizationModeEnabled()).isFalse(); } @Test public void isAppOptimizationModeLogged_returnFalse() { assertThat(mPowerFeatureProvider.isAppOptimizationModeLogged()).isFalse(); Loading
tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt +20 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_RESTRICTED import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNKNOWN import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNRESTRICTED import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils.UNLIMITED_EXPIRE_TIME import com.android.settings.testutils.FakeFeatureFactory import com.google.common.truth.Truth.assertThat import org.junit.After import org.junit.Before Loading @@ -51,9 +52,14 @@ class AppOptModeSharedPreferencesUtilsTest { @Spy private var testBatteryOptimizeUtils = spy(BatteryOptimizeUtils(context, UID, PACKAGE_NAME)) private lateinit var featureFactory: FakeFeatureFactory @Before fun setup() { AppOptModeSharedPreferencesUtils.clearAll(context) featureFactory = FakeFeatureFactory.setupForTest() whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled) .thenReturn(false) } @After Loading Loading @@ -126,6 +132,20 @@ class AppOptModeSharedPreferencesUtilsTest { assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun resetExpiredAppOptModeBeforeTimestamp_forceExpiredData_verifyEmptyList() { whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled) .thenReturn(true) insertAppOptModeEventForTest(expirationTime = 1000L) AppOptModeSharedPreferencesUtils.resetExpiredAppOptModeBeforeTimestamp( context, queryTimestampMs = 999L ) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun resetExpiredAppOptModeBeforeTimestamp_noExpiredData_verifyData() { insertAppOptModeEventForTest(expirationTime = 1000L) Loading