Apply dynamic deny list into data usage state

- Initiate and sync existing network policy when creating the instance
 - Imple a method to suggest list of packages to set as POLICY_REJECT
 - Reset/clear the policy settings once clear storage or reset
   preference

Bug: 306329984
Test: make SettingsRoboTests
Change-Id: I10ba28fee08c29bc2092820fbc8d8ac0e61d30e7
This commit is contained in:
Wesley Wang
2023-11-08 20:29:45 +08:00
parent 855307c73e
commit f0b67ef0f9
8 changed files with 432 additions and 59 deletions

View File

@@ -39,6 +39,7 @@ import androidx.appcompat.app.AlertDialog;
import com.android.settings.R;
import com.android.settings.fuelgauge.BatteryOptimizeUtils;
import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
import java.util.Arrays;
import java.util.List;
@@ -155,6 +156,8 @@ public class ResetAppsHelper implements DialogInterface.OnClickListener,
}
mAom.resetAllModes();
BatteryOptimizeUtils.resetAppOptimizationMode(mContext, mIPm, mAom);
DynamicDenylistManager.getInstance(mContext)
.resetDenylistIfNeeded(/* packageName= */ null, /* force= */ true);
final int[] restrictedUids = mNpm.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
final int currentUserId = ActivityManager.getCurrentUser();
for (int uid : restrictedUids) {