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

Commit 6afa666c authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Only skip unrecognized tags.

This fixes policy loss seen on device reboot when device admins
applied certain policies.

Bug: 20516960
Change-Id: I6e2a3b8de610c00ea1a2edbb026523bfdc365775
parent 5dbaefad
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -771,10 +771,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                    permittedInputMethods = readPackageList(parser, tag);
                } else {
                    Slog.w(LOG_TAG, "Unknown admin tag: " + tag);
                }
                    XmlUtils.skipCurrentTag(parser);
                }
            }
        }

        private List<String> readPackageList(XmlPullParser parser,
                String tag) throws XmlPullParserException, IOException {
@@ -1565,11 +1565,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                } else if ("failed-password-attempts".equals(tag)) {
                    policy.mFailedPasswordAttempts = Integer.parseInt(
                            parser.getAttributeValue(null, "value"));
                    XmlUtils.skipCurrentTag(parser);
                } else if ("password-owner".equals(tag)) {
                    policy.mPasswordOwner = Integer.parseInt(
                            parser.getAttributeValue(null, "value"));
                    XmlUtils.skipCurrentTag(parser);
                } else if ("active-password".equals(tag)) {
                    policy.mActivePasswordQuality = Integer.parseInt(
                            parser.getAttributeValue(null, "quality"));
@@ -1587,14 +1585,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                            parser.getAttributeValue(null, "symbols"));
                    policy.mActivePasswordNonLetter = Integer.parseInt(
                            parser.getAttributeValue(null, "nonletter"));
                    XmlUtils.skipCurrentTag(parser);
                } else if (TAG_LOCK_TASK_COMPONENTS.equals(tag)) {
                    policy.mLockTaskPackages.add(parser.getAttributeValue(null, "name"));
                    XmlUtils.skipCurrentTag(parser);
                } else if (TAG_STATUS_BAR.equals(tag)) {
                    policy.mStatusBarEnabledState = Boolean.parseBoolean(
                            parser.getAttributeValue(null, ATTR_ENABLED));
                    XmlUtils.skipCurrentTag(parser);
                } else if (DO_NOT_ASK_CREDENTIALS_ON_BOOT_XML.equals(tag)) {
                    policy.doNotAskCredentialsOnBoot = true;
                } else {