Reset the dynamic set denylist after reboot the device

Reset the uids which are set into the POLICY_REJECT_METERED_BACKGROUND
from the dynamic configured mechanism, rather than set by users
manually, to avoid it still take effect after rebooting the device.

Bug: 306329984
Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: Idc0c21350cad7e48e6a5c7190565d5364236c2cd
This commit is contained in:
ykhung
2023-11-24 13:25:53 +08:00
parent 7007b11228
commit 65260c7f5e
3 changed files with 35 additions and 6 deletions

View File

@@ -393,6 +393,27 @@ public class DynamicDenylistManagerTest {
assertThat(dumpResults.contains("DynamicDenylist: null")).isTrue();
}
@Test
public void onBootComplete_resetIntoManualMode() {
initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
setDenylist(new ArraySet<>(List.of(FAKE_UID_2_INT)));
// Ensure the testing environment for manual denylist.
assertThat(mManualDenyListPref.getAll()).hasSize(2);
assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
// Ensure the testing environment for dynamic denylist.
assertThat(mDynamicDenyListPref.getAll()).hasSize(1);
mDynamicDenylistManager.onBootComplete();
// Keep the users set uids in the manual denylist.
assertThat(mManualDenyListPref.getAll()).hasSize(2);
assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
// Clear the uids in the dynamic denylist.
assertThat(mDynamicDenyListPref.getAll()).isEmpty();
}
private void initDynamicDenylistManager(int[] preload) {
initDynamicDenylistManager(preload, preload);
}