Merge "Clear app optimized mode sharedpreferences when Reset all app preferences." into main

This commit is contained in:
YK Hung
2024-06-05 15:52:53 +00:00
committed by Android (Google) Code Review
4 changed files with 36 additions and 10 deletions

View File

@@ -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;
@@ -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,
@@ -219,7 +221,7 @@ public class BatteryOptimizeUtils {
}
@VisibleForTesting
static void resetAppOptimizationMode(
static void resetAppOptimizationModeInternal(
Context context,
IPackageManager ipm,
AppOpsManager aom,

View File

@@ -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(

View File

@@ -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,
@@ -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,
@@ -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,
@@ -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,
@@ -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,

View File

@@ -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
@@ -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
@@ -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()
@@ -52,7 +53,12 @@ class AppOptModeSharedPreferencesUtilsTest {
@Before
fun setup() {
AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(context, UID)
AppOptModeSharedPreferencesUtils.clearAll(context)
}
@After
fun tearDown() {
AppOptModeSharedPreferencesUtils.clearAll(context)
}
@Test
@@ -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)