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

Commit 13ddd0d3 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Mechanical refactoring to new typed XML classes.

Related changes are introducing new TypedXmlSerializer and
TypedXmlPullParser interfaces which offer efficient access to
primitive attributes.

Bug: 171832118
Test: manual
Exempt-From-Owner-Approval: trivial refactoring
Change-Id: Iae4dca6924cf1badfb9217a725798068eb602a32
parent 845d2dc1
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1107,7 +1107,7 @@ public class PackageWatchdog {
         * Does not persist any package failure thresholds.
         */
        @GuardedBy("mLock")
        public boolean writeLocked(XmlSerializer out) {
        public boolean writeLocked(TypedXmlSerializer out) {
            try {
                out.startTag(null, TAG_OBSERVER);
                out.attribute(null, ATTR_NAME, name);
@@ -1225,7 +1225,7 @@ public class PackageWatchdog {
         * #loadFromFile which in turn is only called on construction of the
         * singleton PackageWatchdog.
         **/
        public static ObserverInternal read(XmlPullParser parser, PackageWatchdog watchdog) {
        public static ObserverInternal read(TypedXmlPullParser parser, PackageWatchdog watchdog) {
            String observerName = null;
            if (TAG_OBSERVER.equals(parser.getName())) {
                observerName = parser.getAttributeValue(null, ATTR_NAME);
@@ -1364,7 +1364,7 @@ public class PackageWatchdog {

        /** Writes the salient fields to disk using {@code out}. */
        @GuardedBy("mLock")
        public void writeLocked(XmlSerializer out) throws IOException {
        public void writeLocked(TypedXmlSerializer out) throws IOException {
            out.startTag(null, TAG_PACKAGE);
            out.attribute(null, ATTR_NAME, getName());
            out.attribute(null, ATTR_DURATION, String.valueOf(mDurationMs));
+3 −2
Original line number Diff line number Diff line
@@ -2085,7 +2085,7 @@ class StorageManagerService extends IStorageManager.Stub
        }
    }

    public static VolumeRecord readVolumeRecord(XmlPullParser in) throws IOException {
    public static VolumeRecord readVolumeRecord(TypedXmlPullParser in) throws IOException {
        final int type = readIntAttribute(in, ATTR_TYPE);
        final String fsUuid = readStringAttribute(in, ATTR_FS_UUID);
        final VolumeRecord meta = new VolumeRecord(type, fsUuid);
@@ -2099,7 +2099,8 @@ class StorageManagerService extends IStorageManager.Stub
        return meta;
    }

    public static void writeVolumeRecord(XmlSerializer out, VolumeRecord rec) throws IOException {
    public static void writeVolumeRecord(TypedXmlSerializer out, VolumeRecord rec)
            throws IOException {
        out.startTag(null, TAG_VOLUME);
        writeIntAttribute(out, ATTR_TYPE, rec.type);
        writeStringAttribute(out, ATTR_FS_UUID, rec.fsUuid);
+1 −1
Original line number Diff line number Diff line
@@ -201,7 +201,7 @@ public class SystemUpdateManagerService extends ISystemUpdateManager.Stub {

    // Performs I/O work only, without validating the loaded info.
    @Nullable
    private PersistableBundle readInfoFileLocked(XmlPullParser parser)
    private PersistableBundle readInfoFileLocked(TypedXmlPullParser parser)
            throws XmlPullParserException, IOException {
        int type;
        while ((type = parser.next()) != END_DOCUMENT) {
+5 −9
Original line number Diff line number Diff line
@@ -23,25 +23,21 @@ import android.annotation.IntRange;
import android.annotation.NonNull;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
import android.util.PackageUtils;
import android.util.Pair;
import android.util.Slog;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.util.Xml;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.content.PackageMonitor;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.XmlUtils;
import com.android.server.accounts.AccountsDb.DeDatabaseHelper;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -163,7 +159,7 @@ public final class AccountManagerBackupHelper {
                }
                try {
                    ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
                    final XmlSerializer serializer = new FastXmlSerializer();
                    final TypedXmlSerializer serializer = Xml.newFastSerializer();
                    serializer.setOutput(dataStream, StandardCharsets.UTF_8.name());
                    serializer.startDocument(null, true);
                    serializer.startTag(null, TAG_PERMISSIONS);
@@ -216,7 +212,7 @@ public final class AccountManagerBackupHelper {
    public void restoreAccountAccessPermissions(byte[] data, int userId) {
        try {
            ByteArrayInputStream dataStream = new ByteArrayInputStream(data);
            XmlPullParser parser = Xml.newPullParser();
            TypedXmlPullParser parser = Xml.newFastPullParser();
            parser.setInput(dataStream, StandardCharsets.UTF_8.name());
            PackageManager packageManager = mAccountManagerService.mContext.getPackageManager();

+7 −7
Original line number Diff line number Diff line
@@ -4388,7 +4388,7 @@ public class AppOpsService extends IAppOpsService.Stub {
        scheduleFastWriteLocked();
    }

    private void readUidOps(XmlPullParser parser) throws NumberFormatException,
    private void readUidOps(TypedXmlPullParser parser) throws NumberFormatException,
            XmlPullParserException, IOException {
        final int uid = Integer.parseInt(parser.getAttributeValue(null, "n"));
        int outerDepth = parser.getDepth();
@@ -4412,7 +4412,7 @@ public class AppOpsService extends IAppOpsService.Stub {
        }
    }

    private void readPackage(XmlPullParser parser)
    private void readPackage(TypedXmlPullParser parser)
            throws NumberFormatException, XmlPullParserException, IOException {
        String pkgName = parser.getAttributeValue(null, "n");
        int outerDepth = parser.getDepth();
@@ -4434,7 +4434,7 @@ public class AppOpsService extends IAppOpsService.Stub {
        }
    }

    private void readUid(XmlPullParser parser, String pkgName)
    private void readUid(TypedXmlPullParser parser, String pkgName)
            throws NumberFormatException, XmlPullParserException, IOException {
        int uid = Integer.parseInt(parser.getAttributeValue(null, "n"));
        final UidState uidState = getUidStateLocked(uid, true);
@@ -4457,7 +4457,7 @@ public class AppOpsService extends IAppOpsService.Stub {
        uidState.evalForegroundOps(mOpModeWatchers);
    }

    private void readAttributionOp(XmlPullParser parser, @NonNull Op parent,
    private void readAttributionOp(TypedXmlPullParser parser, @NonNull Op parent,
            @Nullable String attribution) throws NumberFormatException, IOException {
        final AttributedOp attributedOp = parent.getOrCreateAttribution(parent, attribution);

@@ -4481,9 +4481,9 @@ public class AppOpsService extends IAppOpsService.Stub {
        }
    }

    private void readOp(XmlPullParser parser, @NonNull UidState uidState, @NonNull String pkgName)
            throws NumberFormatException,
        XmlPullParserException, IOException {
    private void readOp(TypedXmlPullParser parser,
            @NonNull UidState uidState, @NonNull String pkgName)
            throws NumberFormatException, XmlPullParserException, IOException {
        int opCode = Integer.parseInt(parser.getAttributeValue(null, "n"));
        Op op = new Op(uidState, pkgName, opCode, uidState.uid);

Loading