Use builder to pass profile network preference

Use builder to pass profile network preference

Bug: 194332512
Test: CTS
Change-Id: I19360dcdda62d99290f21e4e9d127af4d1332fc7
This commit is contained in:
Sooraj Sasindran 2021-11-24 18:17:05 -08:00
parent eb22eb4e42
commit b8f7654bd3
2 changed files with 49 additions and 28 deletions

View File

@ -231,6 +231,7 @@ import android.media.IAudioService;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.ConnectivitySettingsManager; import android.net.ConnectivitySettingsManager;
import android.net.IIpConnectivityMetrics; import android.net.IIpConnectivityMetrics;
import android.net.ProfileNetworkPreference;
import android.net.ProxyInfo; import android.net.ProxyInfo;
import android.net.Uri; import android.net.Uri;
import android.net.VpnManager; import android.net.VpnManager;
@ -17538,10 +17539,14 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
} }
int networkPreference = preferentialNetworkServiceEnabled int networkPreference = preferentialNetworkServiceEnabled
? PROFILE_NETWORK_PREFERENCE_ENTERPRISE : PROFILE_NETWORK_PREFERENCE_DEFAULT; ? PROFILE_NETWORK_PREFERENCE_ENTERPRISE : PROFILE_NETWORK_PREFERENCE_DEFAULT;
ProfileNetworkPreference.Builder preferenceBuilder =
new ProfileNetworkPreference.Builder();
preferenceBuilder.setPreference(networkPreference);
List<ProfileNetworkPreference> preferences = new ArrayList<>();
preferences.add(preferenceBuilder.build());
mInjector.binderWithCleanCallingIdentity(() -> mInjector.binderWithCleanCallingIdentity(() ->
mInjector.getConnectivityManager().setProfileNetworkPreference( mInjector.getConnectivityManager().setProfileNetworkPreferences(
UserHandle.of(userId), UserHandle.of(userId), preferences,
networkPreference,
null /* executor */, null /* listener */)); null /* executor */, null /* listener */));
} }

View File

@ -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.DevicePolicyManager.WIPE_EUICC;
import static android.app.admin.PasswordMetrics.computeForPasswordOrPin; import static android.app.admin.PasswordMetrics.computeForPasswordOrPin;
import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE; 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 android.net.InetAddresses.parseNumericAddress;
import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE; 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.content.pm.UserInfo;
import android.graphics.Color; import android.graphics.Color;
import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager;
import android.net.ConnectivityManager; import android.net.ProfileNetworkPreference;
import android.net.Uri; import android.net.Uri;
import android.os.Build.VERSION_CODES; import android.os.Build.VERSION_CODES;
import android.os.Bundle; import android.os.Bundle;
@ -4044,12 +4046,15 @@ public class DevicePolicyManagerTest extends DpmTestBase {
mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL); mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL);
dpms.handleStartUser(managedProfileUserId); dpms.handleStartUser(managedProfileUserId);
verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( ProfileNetworkPreference preferenceDetails =
eq(UserHandle.of(managedProfileUserId)), new ProfileNetworkPreference.Builder()
anyInt(), .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT)
any(), .build();
any() List<ProfileNetworkPreference> preferences = new ArrayList<>();
); preferences.add(preferenceDetails);
verify(getServices().connectivityManager, times(1))
.setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences,
null, null);
} }
@Test @Test
@ -4061,12 +4066,15 @@ public class DevicePolicyManagerTest extends DpmTestBase {
mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL); mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL);
dpms.handleStopUser(managedProfileUserId); dpms.handleStopUser(managedProfileUserId);
verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference( ProfileNetworkPreference preferenceDetails =
eq(UserHandle.of(managedProfileUserId)), new ProfileNetworkPreference.Builder()
eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT), .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT)
any(), .build();
any() List<ProfileNetworkPreference> preferences = new ArrayList<>();
); preferences.add(preferenceDetails);
verify(getServices().connectivityManager, times(1))
.setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences,
null, null);
} }
@Test @Test
@ -4084,21 +4092,29 @@ public class DevicePolicyManagerTest extends DpmTestBase {
dpm.setPreferentialNetworkServiceEnabled(false); dpm.setPreferentialNetworkServiceEnabled(false);
assertThat(dpm.isPreferentialNetworkServiceEnabled()).isFalse(); assertThat(dpm.isPreferentialNetworkServiceEnabled()).isFalse();
verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
eq(UserHandle.of(managedProfileUserId)), ProfileNetworkPreference preferenceDetails =
eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT), new ProfileNetworkPreference.Builder()
any(), .setPreference(PROFILE_NETWORK_PREFERENCE_DEFAULT)
any() .build();
); List<ProfileNetworkPreference> preferences = new ArrayList<>();
preferences.add(preferenceDetails);
verify(getServices().connectivityManager, times(1))
.setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences,
null, null);
dpm.setPreferentialNetworkServiceEnabled(true); dpm.setPreferentialNetworkServiceEnabled(true);
assertThat(dpm.isPreferentialNetworkServiceEnabled()).isTrue(); assertThat(dpm.isPreferentialNetworkServiceEnabled()).isTrue();
verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
eq(UserHandle.of(managedProfileUserId)), ProfileNetworkPreference preferenceDetails2 =
eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_ENTERPRISE), new ProfileNetworkPreference.Builder()
any(), .setPreference(PROFILE_NETWORK_PREFERENCE_ENTERPRISE)
any() .build();
); List<ProfileNetworkPreference> preferences2 = new ArrayList<>();
preferences2.add(preferenceDetails);
verify(getServices().connectivityManager, times(1))
.setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences2,
null, null);
} }
@Test @Test