Clear app optimized mode sharedpreferences when Reset all app preferences.

- Clear events when user click Settings > Apps > All apps > top-right button > "Reset app preferences"
- Update AppOptModeSharedPreferencesUtilsTest from robotest to unit test.

Bug: 338965652
Test: atest + manual
Change-Id: Ib0a1bd113ab31fea247e5a5430ab35b252c6e1f5
This commit is contained in:
mxyyiyi
2024-06-05 17:58:14 +08:00
parent 665b2a586e
commit 35282888d9
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(