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

Commit 0d8750d7 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Allow requiredForAllUsers to work on updates to system apps

Bug: 8736380

Also set the default type as the constructor docs imply in RestrictionEntry.

Change-Id: I446504fad8822804d68f09b45ef62f6d79c4b8df
parent 48f2b548
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ public class RestrictionEntry implements Parcelable {
     */
    public RestrictionEntry(String key, String selectedString) {
        this.key = key;
        this.type = TYPE_CHOICE;
        this.currentValue = selectedString;
    }

@@ -119,6 +120,7 @@ public class RestrictionEntry implements Parcelable {
     */
    public RestrictionEntry(String key, boolean selectedState) {
        this.key = key;
        this.type = TYPE_BOOLEAN;
        setSelectedState(selectedState);
    }

@@ -129,6 +131,7 @@ public class RestrictionEntry implements Parcelable {
     */
    public RestrictionEntry(String key, String[] selectedStrings) {
        this.key = key;
        this.type = TYPE_MULTI_SELECT;
        this.currentValues = selectedStrings;
    }

+10 −6
Original line number Diff line number Diff line
@@ -287,7 +287,10 @@ public class PackageParser {
        pi.sharedUserLabel = p.mSharedUserLabel;
        pi.applicationInfo = generateApplicationInfo(p, flags, state, userId);
        pi.installLocation = p.installLocation;
        if ((pi.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0
                || (pi.applicationInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
            pi.requiredForAllUsers = p.mRequiredForAllUsers;
        }
        pi.restrictedAccountType = p.mRestrictedAccountType;
        pi.requiredAccountType = p.mRequiredAccountType;
        pi.firstInstallTime = firstInstallTime;
@@ -1812,12 +1815,13 @@ public class PackageParser {
                    false)) {
                ai.flags |= ApplicationInfo.FLAG_PERSISTENT;
            }
        }

        if (sa.getBoolean(
                com.android.internal.R.styleable.AndroidManifestApplication_requiredForAllUsers,
                false)) {
            owner.mRequiredForAllUsers = true;
        }
        }

        String restrictedAccountType = sa.getString(com.android.internal.R.styleable
                .AndroidManifestApplication_restrictedAccountType);