Add a protection for the null UID corner case
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.datasaver Fix: 324571889 Change-Id: Ia5a63dc360d4b518f2b86315b40bc2db12f007ed
This commit is contained in:
@@ -37,13 +37,14 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/** A class to dynamically manage per apps {@link NetworkPolicyManager} POLICY_ flags. */
|
||||
public final class DynamicDenylistManager {
|
||||
public class DynamicDenylistManager {
|
||||
|
||||
private static final String TAG = "DynamicDenylistManager";
|
||||
private static final String PREF_KEY_MANUAL_DENY = "manual_denylist_preference";
|
||||
private static final String PREF_KEY_DYNAMIC_DENY = "dynamic_denylist_preference";
|
||||
|
||||
private static DynamicDenylistManager sInstance;
|
||||
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
|
||||
public static DynamicDenylistManager sInstance = null;
|
||||
|
||||
private final Context mContext;
|
||||
private final NetworkPolicyManager mNetworkPolicyManager;
|
||||
@@ -115,7 +116,11 @@ public final class DynamicDenylistManager {
|
||||
final ArraySet<Integer> failedUids = new ArraySet<>();
|
||||
synchronized (mLock) {
|
||||
// Set new added UIDs into REJECT policy.
|
||||
for (int uid : denylistTargetUids) {
|
||||
for (Integer uidInteger : denylistTargetUids) {
|
||||
if (uidInteger == null) {
|
||||
continue;
|
||||
}
|
||||
final int uid = uidInteger.intValue();
|
||||
if (!lastDynamicDenylistUids.contains(uid)) {
|
||||
try {
|
||||
mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
|
||||
|
@@ -177,8 +177,11 @@ public class DynamicDenylistManagerTest {
|
||||
@Test
|
||||
public void setDenylist_uidDeniedAlready_doNothing() {
|
||||
initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
|
||||
final ArraySet uids = new ArraySet<>();
|
||||
uids.add(FAKE_UID_1_INT);
|
||||
uids.add(null);
|
||||
|
||||
setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT)));
|
||||
setDenylist(uids);
|
||||
|
||||
verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), anyInt());
|
||||
}
|
||||
|
Reference in New Issue
Block a user