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

Commit 3e6ec900 authored by Steve Kondik's avatar Steve Kondik
Browse files

packagemanager: Use ArrayMap/ArraySet as per AOSP

 * To reduce memory consumption

Change-Id: I85bdf84d4a507532e41fe29668fef9b4eabfb04a
parent 7ae08785
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -89,8 +89,8 @@ public class SystemConfig {
    // These are the app package names that should not allow IME switching.
    final ArraySet<String> mFixedImeApps = new ArraySet<>();

    final HashMap<Signature, HashSet<String>> mSignatureAllowances
            = new HashMap<Signature, HashSet<String>>();
    final ArrayMap<Signature, ArraySet<String>> mSignatureAllowances
            = new ArrayMap<Signature, ArraySet<String>>();

    public static SystemConfig getInstance() {
        synchronized (SystemConfig.class) {
@@ -129,7 +129,7 @@ public class SystemConfig {
        return mFixedImeApps;
    }

    public HashMap<Signature, HashSet<String>> getSignatureAllowances() {
    public ArrayMap<Signature, ArraySet<String>> getSignatureAllowances() {
        return mSignatureAllowances;
    }

@@ -303,9 +303,9 @@ public class SystemConfig {
                        // sig will be null so we will log it below
                    }
                    if (sig != null) {
                        HashSet<String> perms = mSignatureAllowances.get(sig);
                        ArraySet<String> perms = mSignatureAllowances.get(sig);
                        if (perms == null) {
                            perms = new HashSet<String>();
                            perms = new ArraySet<String>();
                            mSignatureAllowances.put(sig, perms);
                        }
                        perms.add(perm);
+4 −9
Original line number Diff line number Diff line
@@ -455,11 +455,6 @@ public class PackageManagerService extends IPackageManager.Stub {
    final ArrayMap<String, ArrayMap<String, PackageParser.Package>> mOverlays =
        new ArrayMap<String, ArrayMap<String, PackageParser.Package>>();
    // Example: com.angrybirds -> (com.theme1 -> theme1pkg, com.theme2 -> theme2pkg)
    //          com.facebook   -> (com.theme1 -> theme1pkg)
    final ArrayMap<String, ArrayMap<String, PackageParser.Package>> mOverlays =
        new ArrayMap<String, ArrayMap<String, PackageParser.Package>>();
    final Settings mSettings;
    boolean mRestoredSettings;
@@ -467,7 +462,7 @@ public class PackageManagerService extends IPackageManager.Stub {
    final int[] mGlobalGids;
    final SparseArray<ArraySet<String>> mSystemPermissions;
    final ArrayMap<String, FeatureInfo> mAvailableFeatures;
    final ArrayMap<Signature, HashSet<String>> mSignatureAllowances;
    final ArrayMap<Signature, ArraySet<String>> mSignatureAllowances;
    // If mac_permissions.xml was found for seinfo labeling.
    boolean mFoundPolicyFile;
@@ -565,7 +560,7 @@ public class PackageManagerService extends IPackageManager.Stub {
    final ResolveInfo mPreLaunchCheckResolveInfo = new ResolveInfo();
    ComponentName mCustomPreLaunchComponentName;
    private Set<String> mPreLaunchCheckPackages =
            Collections.synchronizedSet(new HashSet<String>());
            Collections.synchronizedSet(new ArraySet<String>());
    boolean mPreLaunchCheckPackagesReplaced = false;
@@ -2798,7 +2793,7 @@ public class PackageManagerService extends IPackageManager.Stub {
    private boolean isAllowedSignature(PackageParser.Package pkg, String permissionName) {
        for (Signature pkgSig : pkg.mSignatures) {
            HashSet<String> perms = mSignatureAllowances.get(pkgSig);
            ArraySet<String> perms = mSignatureAllowances.get(pkgSig);
            if (perms != null && perms.contains(permissionName)) {
                return true;
            }
@@ -2980,7 +2975,7 @@ public class PackageManagerService extends IPackageManager.Stub {
            return PackageManager.SIGNATURE_NO_MATCH;
        }
        // Since both signature sets are of size 1, we can compare without HashSets.
        // Since both signature sets are of size 1, we can compare without ArraySets.
        if (s1.length == 1) {
            return s1[0].equals(s2[0]) ?
                    PackageManager.SIGNATURE_MATCH :
+3 −3
Original line number Diff line number Diff line
@@ -379,10 +379,10 @@ class PackageSettingBase extends GrantedPermissions {
    PackageUserState modifyUserStateComponents(int userId) {
        PackageUserState state = modifyUserState(userId);
        if (state.protectedComponents == null) {
           state.protectedComponents = new HashSet<String>(1);
           state.protectedComponents = new ArraySet<String>(1);
        }
        if (state.visibleComponents == null) {
            state.visibleComponents = new HashSet<String>(1);
            state.visibleComponents = new ArraySet<String>(1);
        }
        return state;
    }
@@ -448,7 +448,7 @@ class PackageSettingBase extends GrantedPermissions {
        return changed;
    }

    HashSet<String> getProtectedComponents(int userId) {
    ArraySet<String> getProtectedComponents(int userId) {
        PackageUserState state = modifyUserStateComponents(userId);
        return state.protectedComponents;
    }