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

Commit 659cdfef authored by liulvping's avatar liulvping Committed by android-build-merger
Browse files

Merge "Skip uninstalled package for getPackagesForUid()"

am: f4c8c359

Change-Id: I1e4f7913cc00635611440faabcab4faff7f35dc5
parents 6f02f57f f4c8c359
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -4578,6 +4578,7 @@ public class PackageManagerService extends IPackageManager.Stub {
    @Override
    public String[] getPackagesForUid(int uid) {
        final int userId = UserHandle.getUserId(uid);
        uid = UserHandle.getAppId(uid);
        // reader
        synchronized (mPackages) {
@@ -4585,9 +4586,16 @@ public class PackageManagerService extends IPackageManager.Stub {
            if (obj instanceof SharedUserSetting) {
                final SharedUserSetting sus = (SharedUserSetting) obj;
                final int N = sus.packages.size();
                final String[] res = new String[N];
                for (int i = 0; i < N; i++) {
                    res[i] = sus.packages.valueAt(i).name;
                String[] res = new String[N];
                final Iterator<PackageSetting> it = sus.packages.iterator();
                int i = 0;
                while (it.hasNext()) {
                    PackageSetting ps = it.next();
                    if (ps.getInstalled(userId)) {
                        res[i++] = ps.name;
                    } else {
                        res = ArrayUtils.removeElement(String.class, res, res[i]);
                    }
                }
                return res;
            } else if (obj instanceof PackageSetting) {