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

Commit 60967ccf authored by Chalard Jean's avatar Chalard Jean
Browse files

Fix a bug where the wrong profile is queried

UserManager#isManagedProfile() is not aware of the user
handle of the context the UM instance is created on.
Instead, call isManagedProfile(int).

Bug: 183625645
Test: ConnectivityServiceTest
Change-Id: I1fef22d67d75df25a8c2d0694f857c3e1c1a1306
parent f88102ce
Loading
Loading
Loading
Loading
+2 −8
Original line number Original line Diff line number Diff line
@@ -9211,14 +9211,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
            throw new IllegalArgumentException("Must explicitly specify a user handle ("
            throw new IllegalArgumentException("Must explicitly specify a user handle ("
                    + "UserHandle.CURRENT not supported)");
                    + "UserHandle.CURRENT not supported)");
        }
        }
        final UserManager um;
        final UserManager um = mContext.getSystemService(UserManager.class);
        try {
        if (!um.isManagedProfile(profile.getIdentifier())) {
            um = mContext.createContextAsUser(profile, 0 /* flags */)
                    .getSystemService(UserManager.class);
        } catch (IllegalStateException e) {
            throw new IllegalArgumentException("Profile does not exist");
        }
        if (!um.isManagedProfile()) {
            throw new IllegalArgumentException("Profile must be a managed profile");
            throw new IllegalArgumentException("Profile must be a managed profile");
        }
        }
        // Strictly speaking, mOemNetworkPreferences should only be touched on the
        // Strictly speaking, mOemNetworkPreferences should only be touched on the
+1 −0
Original line number Original line Diff line number Diff line
@@ -572,6 +572,7 @@ public class ConnectivityServiceTest {
            final UserManager umMock = createContextAsUser(userHandle, 0 /* flags */)
            final UserManager umMock = createContextAsUser(userHandle, 0 /* flags */)
                    .getSystemService(UserManager.class);
                    .getSystemService(UserManager.class);
            doReturn(value).when(umMock).isManagedProfile();
            doReturn(value).when(umMock).isManagedProfile();
            doReturn(value).when(mUserManager).isManagedProfile(eq(userHandle.getIdentifier()));
        }
        }
        @Override
        @Override