Merge "Clear app optimized mode sharedpreferences when Reset all app preferences." into main
This commit is contained in:
@@ -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,
|
||||
|
@@ -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(
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
Reference in New Issue
Block a user