Loading src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +4 −2 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.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils; import com.android.settingslib.datastore.DataChangeReason; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; Loading Loading @@ -138,7 +139,8 @@ public class BatteryOptimizeUtils { /** Resets optimization mode for all applications. */ public static void resetAppOptimizationMode( Context context, IPackageManager ipm, AppOpsManager aom) { resetAppOptimizationMode( AppOptModeSharedPreferencesUtils.clearAll(context); resetAppOptimizationModeInternal( context, ipm, aom, Loading Loading @@ -219,7 +221,7 @@ public class BatteryOptimizeUtils { } @VisibleForTesting static void resetAppOptimizationMode( static void resetAppOptimizationModeInternal( Context context, IPackageManager ipm, AppOpsManager aom, Loading src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ object AppOptModeSharedPreferencesUtils { fun getAllEvents(context: Context): List<AppOptimizationModeEvent> = synchronized(appOptimizationModeLock) { getAppOptModeEventsMap(context).values.toList() } /** Removes all app optimization mode events. */ @JvmStatic fun clearAll(context: Context) = synchronized(appOptimizationModeLock) { getSharedPreferences(context).edit().clear().apply() } /** Updates the app optimization mode event data. */ @JvmStatic fun updateAppOptModeExpiration( Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java +6 −5 Original line number Diff line number Diff line Loading @@ -272,7 +272,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Optimized_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Optimized_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ false, Loading @@ -287,7 +287,8 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_SystemOrDefault_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_SystemOrDefault_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ true, Loading @@ -304,7 +305,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Restricted_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Restricted_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_IGNORED, /* allowListed */ false, Loading @@ -315,7 +316,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Unrestricted_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Unrestricted_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ true, Loading Loading @@ -346,7 +347,7 @@ public class BatteryOptimizeUtilsTest { doReturn(isSystemOrDefaultApp).when(mMockBackend).isSysAllowlisted(anyString()); doReturn(isSystemOrDefaultApp).when(mMockBackend).isDefaultActiveApp(anyString(), anyInt()); BatteryOptimizeUtils.resetAppOptimizationMode( BatteryOptimizeUtils.resetAppOptimizationModeInternal( mContext, mMockIPackageManager, mMockAppOpsManager, Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt→tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt +19 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.fuelgauge.batteryusage import android.content.Context import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action import com.android.settings.fuelgauge.BatteryOptimizeUtils import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_OPTIMIZED Loading @@ -26,6 +27,7 @@ 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.google.common.truth.Truth.assertThat import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test Loading @@ -39,9 +41,8 @@ import org.mockito.Mockito.`when` as whenever import org.mockito.Spy import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule import org.robolectric.RobolectricTestRunner @RunWith(RobolectricTestRunner::class) @RunWith(AndroidJUnit4::class) class AppOptModeSharedPreferencesUtilsTest { @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule() Loading @@ -52,7 +53,12 @@ class AppOptModeSharedPreferencesUtilsTest { @Before fun setup() { AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(context, UID) AppOptModeSharedPreferencesUtils.clearAll(context) } @After fun tearDown() { AppOptModeSharedPreferencesUtils.clearAll(context) } @Test Loading @@ -60,6 +66,16 @@ class AppOptModeSharedPreferencesUtilsTest { assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun clearAll_withData_verifyCleared() { insertAppOptModeEventForTest(expirationTime = 1000L) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).hasSize(1) AppOptModeSharedPreferencesUtils.clearAll(context) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun updateAppOptModeExpirationInternal_withExpirationTime_verifyData() { insertAppOptModeEventForTest(expirationTime = 1000L) Loading Loading
src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +4 −2 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.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils; import com.android.settingslib.datastore.DataChangeReason; import com.android.settingslib.fuelgauge.PowerAllowlistBackend; Loading Loading @@ -138,7 +139,8 @@ public class BatteryOptimizeUtils { /** Resets optimization mode for all applications. */ public static void resetAppOptimizationMode( Context context, IPackageManager ipm, AppOpsManager aom) { resetAppOptimizationMode( AppOptModeSharedPreferencesUtils.clearAll(context); resetAppOptimizationModeInternal( context, ipm, aom, Loading Loading @@ -219,7 +221,7 @@ public class BatteryOptimizeUtils { } @VisibleForTesting static void resetAppOptimizationMode( static void resetAppOptimizationModeInternal( Context context, IPackageManager ipm, AppOpsManager aom, Loading
src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt +7 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,13 @@ object AppOptModeSharedPreferencesUtils { fun getAllEvents(context: Context): List<AppOptimizationModeEvent> = synchronized(appOptimizationModeLock) { getAppOptModeEventsMap(context).values.toList() } /** Removes all app optimization mode events. */ @JvmStatic fun clearAll(context: Context) = synchronized(appOptimizationModeLock) { getSharedPreferences(context).edit().clear().apply() } /** Updates the app optimization mode event data. */ @JvmStatic fun updateAppOptModeExpiration( Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java +6 −5 Original line number Diff line number Diff line Loading @@ -272,7 +272,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Optimized_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Optimized_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ false, Loading @@ -287,7 +287,8 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_SystemOrDefault_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_SystemOrDefault_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ true, Loading @@ -304,7 +305,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Restricted_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Restricted_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_IGNORED, /* allowListed */ false, Loading @@ -315,7 +316,7 @@ public class BatteryOptimizeUtilsTest { } @Test public void testResetAppOptimizationMode_Unrestricted_verifyAction() throws Exception { public void testResetAppOptimizationModeInternal_Unrestricted_verifyAction() throws Exception { runTestForResetWithMode( AppOpsManager.MODE_ALLOWED, /* allowListed */ true, Loading Loading @@ -346,7 +347,7 @@ public class BatteryOptimizeUtilsTest { doReturn(isSystemOrDefaultApp).when(mMockBackend).isSysAllowlisted(anyString()); doReturn(isSystemOrDefaultApp).when(mMockBackend).isDefaultActiveApp(anyString(), anyInt()); BatteryOptimizeUtils.resetAppOptimizationMode( BatteryOptimizeUtils.resetAppOptimizationModeInternal( mContext, mMockIPackageManager, mMockAppOpsManager, Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt→tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt +19 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.fuelgauge.batteryusage import android.content.Context import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action import com.android.settings.fuelgauge.BatteryOptimizeUtils import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_OPTIMIZED Loading @@ -26,6 +27,7 @@ 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.google.common.truth.Truth.assertThat import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test Loading @@ -39,9 +41,8 @@ import org.mockito.Mockito.`when` as whenever import org.mockito.Spy import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule import org.robolectric.RobolectricTestRunner @RunWith(RobolectricTestRunner::class) @RunWith(AndroidJUnit4::class) class AppOptModeSharedPreferencesUtilsTest { @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule() Loading @@ -52,7 +53,12 @@ class AppOptModeSharedPreferencesUtilsTest { @Before fun setup() { AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(context, UID) AppOptModeSharedPreferencesUtils.clearAll(context) } @After fun tearDown() { AppOptModeSharedPreferencesUtils.clearAll(context) } @Test Loading @@ -60,6 +66,16 @@ class AppOptModeSharedPreferencesUtilsTest { assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun clearAll_withData_verifyCleared() { insertAppOptModeEventForTest(expirationTime = 1000L) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).hasSize(1) AppOptModeSharedPreferencesUtils.clearAll(context) assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty() } @Test fun updateAppOptModeExpirationInternal_withExpirationTime_verifyData() { insertAppOptModeEventForTest(expirationTime = 1000L) Loading