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

Commit f6af55ce authored by Felipe Leme's avatar Felipe Leme
Browse files

Removed excludePreCreated from internal getUsers() methods.

Pre-created users are deprecated and shouldn't be returned on any
getUsers() method anymore.

Test: atest FrameworksMockingServicesTests --test-filter=".*UserManagerServiceMockedTest#testGetUsers.*"
Flag: EXEMPT refactoring
Fix: 419586881

Change-Id: Id0cba5f4873740db050e0a524e1ed7efb2016f04
parent 58b7d28a
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -2217,10 +2217,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService

            t.traceBegin("read user settings");
            mFirstBoot = !mSettings.readLPw(computer,
                    mInjector.getUserManagerInternal().getUsers(
                    /* excludePartial= */ true,
                    /* excludeDying= */ false,
                    /* excludePreCreated= */ false));
                    mInjector.getUserManagerInternal().getUsers(/* excludeDying= */ false));
            t.traceEnd();

            if (mFirstBoot) {
@@ -4384,9 +4381,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService

        int[] grantPermissionsUserIds = EMPTY_INT_ARRAY;
        final List<UserInfo> livingUsers = mInjector.getUserManagerInternal().getUsers(
                /* excludePartial= */ true,
                /* excludeDying= */ true,
                /* excludePreCreated= */ false);
                /* excludeDying= */ true);
        final int livingUserCount = livingUsers.size();
        for (int i = 0; i < livingUserCount; i++) {
            final int userId = livingUsers.get(i).id;
+0 −8
Original line number Diff line number Diff line
@@ -297,14 +297,6 @@ public abstract class UserManagerInternal {
     */
    public abstract @NonNull List<UserInfo> getUsers(boolean excludeDying);

    /**
     * Internal implementation of getUsers does not check permissions.
     * This improves performance for calls from inside system server which already have permissions
     * checked.
     */
    public abstract @NonNull List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying,
            boolean excludePreCreated);

    /**
     * Returns a list of the users that are associated with the specified user, including the user
     * itself. This includes the user, its profiles, its parent, and its parent's other profiles,
+11 −19
Original line number Diff line number Diff line
@@ -1588,16 +1588,15 @@ public class UserManagerService extends IUserManager.Stub {
    @Override
    public @NonNull List<UserInfo> getUsers(boolean excludeDying) {
        checkCreateUsersPermission("query users");
        return getUsersInternal(/* excludePartial= */ true, excludeDying, /* excludePreCreated= */
                true, /* resolveNullNames= */ true);
        return getUsersInternal(/* excludePartial= */ true, excludeDying,
                /* resolveNullNames= */ true);
    }

    // Used by cmd users
    @NonNull List<UserInfo> getUsersWithUnresolvedNames(boolean excludePartial,
            boolean excludeDying, boolean excludePreCreated) {
            boolean excludeDying) {
        checkCreateUsersPermission("get users with unresolved names");
        return getUsersInternal(excludePartial, excludeDying, excludePreCreated,
                /* resolveNullNames= */ false);
        return getUsersInternal(excludePartial, excludeDying, /* resolveNullNames= */ false);
    }

    /**
@@ -1606,7 +1605,7 @@ public class UserManagerService extends IUserManager.Stub {
    @Deprecated
    @VisibleForTesting
    List<UserInfo> getUsersInternal(boolean excludePartial, boolean excludeDying,
            boolean excludePreCreated, boolean resolveNullNames) {
            boolean resolveNullNames) {
        synchronized (mUsersLock) {
            ArrayList<UserInfo> users = new ArrayList<>(mUsers.size());
            final int userSize = mUsers.size();
@@ -1614,7 +1613,8 @@ public class UserManagerService extends IUserManager.Stub {
                UserInfo ui = mUsers.valueAt(i).info;
                if ((excludePartial && ui.partial)
                        || (excludeDying && mRemovingUserIds.get(ui.id))
                        || (excludePreCreated && ui.preCreated)) {
                        // NOTE: preCreated users are not supported anymore
                        || ui.preCreated) {
                    continue;
                }
                var user = resolveNullNames ? userWithName(ui) : ui;
@@ -5309,8 +5309,7 @@ public class UserManagerService extends IUserManager.Stub {
    /** Returns the oldest Full Admin user, or null is if there none. */
    private @Nullable UserInfo getEarliestCreatedFullUser() {
        List<UserInfo> users = getUsersInternal(/* excludePartial= */ true,
                /* excludeDying= */ true, /* excludePreCreated= */ true,
                /* resolveNullNames= */ false);
                /* excludeDying= */ true, /* resolveNullNames= */ false);
        UserInfo earliestUser = null;
        long earliestCreationTime = Long.MAX_VALUE;
        for (int i = 0; i < users.size(); i++) {
@@ -6622,8 +6621,7 @@ public class UserManagerService extends IUserManager.Stub {
    private int onPullAtom(int atomTag, List<StatsEvent> data) {
        if (atomTag == FrameworkStatsLog.USER_INFO) {
            final List<UserInfo> users = getUsersInternal(/* excludePartial= */ true,
                    /* excludeDying= */ true, /* excludePreCreated= */ true,
                    /* resolveNullNames= */ false);
                    /* excludeDying= */ true, /* resolveNullNames= */ false);
            final int size = users.size();
            if (size > 1) {
                for (int idx = 0; idx < size; idx++) {
@@ -8336,14 +8334,8 @@ public class UserManagerService extends IUserManager.Stub {

        @Override
        public @NonNull List<UserInfo> getUsers(boolean excludeDying) {
            return getUsers(/*excludePartial= */ true, excludeDying, /* excludePreCreated= */ true);
        }

        @Override
        public @NonNull List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying,
                boolean excludePreCreated) {
            return UserManagerService.this.getUsersInternal(excludePartial, excludeDying,
                    excludePreCreated, /* resolveNullNames= */ true);
            return UserManagerService.this.getUsersInternal(/*excludePartial= */ true, excludeDying,
                    /* resolveNullNames= */ true);
        }

        @Override
+1 −2
Original line number Diff line number Diff line
@@ -191,8 +191,7 @@ public class UserManagerServiceShellCommand extends ShellCommand {
        }
        final IActivityManager am = ActivityManager.getService();
        final List<UserInfo> users = mService.getUsersWithUnresolvedNames(
                /* excludePartial= */ !all, /* excludeDying= */ false,
                /* excludePreCreated= */ !all);
                /* excludePartial= */ !all, /* excludeDying= */ false);
        if (users == null) {
            pw.println("Error: couldn't get users");
            return 1;
+1 −1
Original line number Diff line number Diff line
@@ -355,7 +355,7 @@ class MockSystem(withSession: (StaticMockitoSessionBuilder) -> Unit = {}) {
            android.util.Pair(PackageAbiHelper.Abis("", ""),
                    PackageAbiHelper.NativeLibraryPaths("", false, "", ""))
        }
        whenever(mocks.userManagerInternal.getUsers(true, false, false)).thenReturn(DEFAULT_USERS)
        whenever(mocks.userManagerInternal.getUsers(false)).thenReturn(DEFAULT_USERS)
        whenever(mocks.userManagerService.userIds).thenReturn(intArrayOf(0))
        whenever(mocks.userManagerService.exists(0)).thenReturn(true)
        whenever(mocks.packageAbiHelper.deriveNativeLibraryPaths(any(AndroidPackage::class.java),
Loading