Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8f7654b authored by Sooraj Sasindran's avatar Sooraj Sasindran
Browse files

Use builder to pass profile network preference

Use builder to pass profile network preference

Bug: 194332512
Test: CTS
Change-Id: I19360dcdda62d99290f21e4e9d127af4d1332fc7
parent eb22eb4e
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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<ProfileNetworkPreference> 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 */));
    }
+41 −25
Original line number Diff line number Diff line
@@ -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<ProfileNetworkPreference> 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<ProfileNetworkPreference> 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<ProfileNetworkPreference> 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<ProfileNetworkPreference> preferences2 = new ArrayList<>();
        preferences2.add(preferenceDetails);
        verify(getServices().connectivityManager, times(1))
                .setProfileNetworkPreferences(UserHandle.of(managedProfileUserId), preferences2,
                        null, null);
    }

    @Test