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