From b8f7654bd343b4facc0b63704378bc025aec3acd Mon Sep 17 00:00:00 2001 From: Sooraj Sasindran Date: Wed, 24 Nov 2021 18:17:05 -0800 Subject: [PATCH] Use builder to pass profile network preference Use builder to pass profile network preference Bug: 194332512 Test: CTS Change-Id: I19360dcdda62d99290f21e4e9d127af4d1332fc7 --- .../DevicePolicyManagerService.java | 11 +++- .../devicepolicy/DevicePolicyManagerTest.java | 66 ++++++++++++------- 2 files changed, 49 insertions(+), 28 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 0792d9bde4b4..df98390ddf05 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -231,6 +231,7 @@ import android.media.IAudioService; import android.net.ConnectivityManager; import android.net.ConnectivitySettingsManager; import android.net.IIpConnectivityMetrics; +import android.net.ProfileNetworkPreference; import android.net.ProxyInfo; import android.net.Uri; import android.net.VpnManager; @@ -17538,10 +17539,14 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } int networkPreference = preferentialNetworkServiceEnabled ? PROFILE_NETWORK_PREFERENCE_ENTERPRISE : PROFILE_NETWORK_PREFERENCE_DEFAULT; + ProfileNetworkPreference.Builder preferenceBuilder = + new ProfileNetworkPreference.Builder(); + preferenceBuilder.setPreference(networkPreference); + List preferences = new ArrayList<>(); + preferences.add(preferenceBuilder.build()); mInjector.binderWithCleanCallingIdentity(() -> - mInjector.getConnectivityManager().setProfileNetworkPreference( - UserHandle.of(userId), - networkPreference, + mInjector.getConnectivityManager().setProfileNetworkPreferences( + UserHandle.of(userId), preferences, null /* executor */, null /* listener */)); } diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index 3ac30d0258a5..a63aa6a918d7 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -37,6 +37,8 @@ import static android.app.admin.DevicePolicyManager.PRIVATE_DNS_SET_NO_ERROR; import static android.app.admin.DevicePolicyManager.WIPE_EUICC; import static android.app.admin.PasswordMetrics.computeForPasswordOrPin; import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE; +import static android.net.ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT; +import static android.net.ConnectivityManager.PROFILE_NETWORK_PREFERENCE_ENTERPRISE; import static android.net.InetAddresses.parseNumericAddress; import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE; @@ -99,7 +101,7 @@ import android.content.pm.StringParceledListSlice; import android.content.pm.UserInfo; import android.graphics.Color; import android.hardware.usb.UsbManager; -import android.net.ConnectivityManager; +import android.net.ProfileNetworkPreference; import android.net.Uri; import android.os.Build.VERSION_CODES; import android.os.Bundle; @@ -4044,12 +4046,15 @@ public class DevicePolicyManagerTest extends DpmTestBase { mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL); dpms.handleStartUser(managedProfileUserId); - verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( - eq(UserHandle.of(managedProfileUserId)), - anyInt(), - any(), - any() - ); + ProfileNetworkPreference preferenceDetails = + new ProfileNetworkPreference.Builder() + .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT) + .build(); + List preferences = new ArrayList<>(); + preferences.add(preferenceDetails); + verify(getServices().connectivityManager, times(1)) + .setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences, + null, null); } @Test @@ -4061,12 +4066,15 @@ public class DevicePolicyManagerTest extends DpmTestBase { mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL); dpms.handleStopUser(managedProfileUserId); - verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( - eq(UserHandle.of(managedProfileUserId)), - eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT), - any(), - any() - ); + ProfileNetworkPreference preferenceDetails = + new ProfileNetworkPreference.Builder() + .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT) + .build(); + List preferences = new ArrayList<>(); + preferences.add(preferenceDetails); + verify(getServices().connectivityManager, times(1)) + .setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences, + null, null); } @Test @@ -4084,21 +4092,29 @@ public class DevicePolicyManagerTest extends DpmTestBase { dpm.setPreferentialNetworkServiceEnabled(false); assertThat(dpm.isPreferentialNetworkServiceEnabled()).isFalse(); - verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( - eq(UserHandle.of(managedProfileUserId)), - eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT), - any(), - any() - ); + + ProfileNetworkPreference preferenceDetails = + new ProfileNetworkPreference.Builder() + .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT) + .build(); + List preferences = new ArrayList<>(); + preferences.add(preferenceDetails); + verify(getServices().connectivityManager, times(1)) + .setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences, + null, null); dpm.setPreferentialNetworkServiceEnabled(true); assertThat(dpm.isPreferentialNetworkServiceEnabled()).isTrue(); - verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( - eq(UserHandle.of(managedProfileUserId)), - eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_ENTERPRISE), - any(), - any() - ); + + ProfileNetworkPreference preferenceDetails2 = + new ProfileNetworkPreference.Builder() + .setPreference(PROFILE_NETWORK_PREFERENCE_ENTERPRISE) + .build(); + List preferences2 = new ArrayList<>(); + preferences2.add(preferenceDetails); + verify(getServices().connectivityManager, times(1)) + .setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences2, + null, null); } @Test