Loading services/core/java/com/android/server/ConnectivityService.java +19 −2 Original line number Diff line number Diff line Loading @@ -5049,10 +5049,16 @@ public class ConnectivityService extends IConnectivityManager.Stub private void onUserAdded(UserHandle user) { mPermissionMonitor.onUserAdded(user); if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) { handleSetOemNetworkPreference(mOemNetworkPreferences, null); } } private void onUserRemoved(UserHandle user) { mPermissionMonitor.onUserRemoved(user); if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) { handleSetOemNetworkPreference(mOemNetworkPreferences, null); } } private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { Loading Loading @@ -9076,7 +9082,7 @@ public class ConnectivityService extends IConnectivityManager.Stub try { listener.onComplete(); } catch (RemoteException e) { loge("handleMessage.EVENT_SET_OEM_NETWORK_PREFERENCE failed", e); loge("Can't send onComplete in handleSetOemNetworkPreference", e); } } } Loading Loading @@ -9203,6 +9209,14 @@ public class ConnectivityService extends IConnectivityManager.Stub @NonNull final OemNetworkPreferences preference) { final SparseArray<Set<Integer>> uids = new SparseArray<>(); final PackageManager pm = mContext.getPackageManager(); final List<UserHandle> users = mContext.getSystemService(UserManager.class).getUserHandles(true); if (null == users || users.size() == 0) { if (VDBG || DDBG) { log("No users currently available for setting the OEM network preference."); } return uids; } for (final Map.Entry<String, Integer> entry : preference.getNetworkPreferences().entrySet()) { @OemNetworkPreferences.OemNetworkPreference final int pref = entry.getValue(); Loading @@ -9211,7 +9225,10 @@ public class ConnectivityService extends IConnectivityManager.Stub if (!uids.contains(pref)) { uids.put(pref, new ArraySet<>()); } uids.get(pref).add(uid); for (final UserHandle ui : users) { // Add the rules for all users as this policy is device wide. uids.get(pref).add(UserHandle.getUid(ui, uid)); } } catch (PackageManager.NameNotFoundException e) { // Although this may seem like an error scenario, it is ok that uninstalled // packages are sent on a network preference as the system will watch for Loading tests/net/java/com/android/server/ConnectivityServiceTest.java +189 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
services/core/java/com/android/server/ConnectivityService.java +19 −2 Original line number Diff line number Diff line Loading @@ -5049,10 +5049,16 @@ public class ConnectivityService extends IConnectivityManager.Stub private void onUserAdded(UserHandle user) { mPermissionMonitor.onUserAdded(user); if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) { handleSetOemNetworkPreference(mOemNetworkPreferences, null); } } private void onUserRemoved(UserHandle user) { mPermissionMonitor.onUserRemoved(user); if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) { handleSetOemNetworkPreference(mOemNetworkPreferences, null); } } private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { Loading Loading @@ -9076,7 +9082,7 @@ public class ConnectivityService extends IConnectivityManager.Stub try { listener.onComplete(); } catch (RemoteException e) { loge("handleMessage.EVENT_SET_OEM_NETWORK_PREFERENCE failed", e); loge("Can't send onComplete in handleSetOemNetworkPreference", e); } } } Loading Loading @@ -9203,6 +9209,14 @@ public class ConnectivityService extends IConnectivityManager.Stub @NonNull final OemNetworkPreferences preference) { final SparseArray<Set<Integer>> uids = new SparseArray<>(); final PackageManager pm = mContext.getPackageManager(); final List<UserHandle> users = mContext.getSystemService(UserManager.class).getUserHandles(true); if (null == users || users.size() == 0) { if (VDBG || DDBG) { log("No users currently available for setting the OEM network preference."); } return uids; } for (final Map.Entry<String, Integer> entry : preference.getNetworkPreferences().entrySet()) { @OemNetworkPreferences.OemNetworkPreference final int pref = entry.getValue(); Loading @@ -9211,7 +9225,10 @@ public class ConnectivityService extends IConnectivityManager.Stub if (!uids.contains(pref)) { uids.put(pref, new ArraySet<>()); } uids.get(pref).add(uid); for (final UserHandle ui : users) { // Add the rules for all users as this policy is device wide. uids.get(pref).add(UserHandle.getUid(ui, uid)); } } catch (PackageManager.NameNotFoundException e) { // Although this may seem like an error scenario, it is ok that uninstalled // packages are sent on a network preference as the system will watch for Loading
tests/net/java/com/android/server/ConnectivityServiceTest.java +189 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes