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

Commit 8faef89a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Removed excludePreCreated from internal getUsers() methods." into main

parents fe339d38 f6af55ce
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