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

Commit 236c03b5 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: Ibd93f353ff3cb1f0b7073ebbeae17fe5194b046b
parent 1f5d9af0
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@ import android.util.ArrayMap;
import android.util.DisplayMetrics;
import android.util.Singleton;
import android.util.Size;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.view.Surface;
import android.view.WindowInsetsController.Appearance;

@@ -1502,7 +1504,7 @@ public class ActivityManager {
        }

        /** @hide */
        public void saveToXml(XmlSerializer out) throws IOException {
        public void saveToXml(TypedXmlSerializer out) throws IOException {
            if (mLabel != null) {
                out.attribute(null, ATTR_TASKDESCRIPTIONLABEL, mLabel);
            }
@@ -1526,7 +1528,7 @@ public class ActivityManager {
        }

        /** @hide */
        public void restoreFromXml(XmlPullParser in) {
        public void restoreFromXml(TypedXmlPullParser in) {
            final String label = in.getAttributeValue(null, ATTR_TASKDESCRIPTIONLABEL);
            if (label != null) {
                setLabel(label);
+14 −11
Original line number Diff line number Diff line
@@ -32,9 +32,12 @@ import android.os.Parcelable;
import android.provider.Settings;
import android.service.notification.NotificationListenerService;
import android.text.TextUtils;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.util.proto.ProtoOutputStream;

import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;

import org.json.JSONException;
import org.json.JSONObject;
@@ -869,7 +872,7 @@ public final class NotificationChannel implements Parcelable {
     * @hide
     */
    public void populateFromXmlForRestore(XmlPullParser parser, Context context) {
        populateFromXml(parser, true, context);
        populateFromXml(XmlUtils.makeTyped(parser), true, context);
    }

    /**
@@ -877,13 +880,13 @@ public final class NotificationChannel implements Parcelable {
     */
    @SystemApi
    public void populateFromXml(XmlPullParser parser) {
        populateFromXml(parser, false, null);
        populateFromXml(XmlUtils.makeTyped(parser), false, null);
    }

    /**
     * If {@param forRestore} is true, {@param Context} MUST be non-null.
     */
    private void populateFromXml(XmlPullParser parser, boolean forRestore,
    private void populateFromXml(TypedXmlPullParser parser, boolean forRestore,
            @Nullable Context context) {
        Preconditions.checkArgument(!forRestore || context != null,
                "forRestore is true but got null context");
@@ -941,14 +944,14 @@ public final class NotificationChannel implements Parcelable {
     */
    @SystemApi
    public void writeXml(XmlSerializer out) throws IOException {
        writeXml(out, false, null);
        writeXml(XmlUtils.makeTyped(out), false, null);
    }

    /**
     * @hide
     */
    public void writeXmlForBackup(XmlSerializer out, Context context) throws IOException {
        writeXml(out, true, context);
        writeXml(XmlUtils.makeTyped(out), true, context);
    }

    private Uri getSoundForBackup(Context context) {
@@ -967,7 +970,7 @@ public final class NotificationChannel implements Parcelable {
    /**
     * If {@param forBackup} is true, {@param Context} MUST be non-null.
     */
    private void writeXml(XmlSerializer out, boolean forBackup, @Nullable Context context)
    private void writeXml(TypedXmlSerializer out, boolean forBackup, @Nullable Context context)
            throws IOException {
        Preconditions.checkArgument(!forBackup || context != null,
                "forBackup is true but got null context");
@@ -1099,7 +1102,7 @@ public final class NotificationChannel implements Parcelable {
        return record;
    }

    private static AudioAttributes safeAudioAttributes(XmlPullParser parser) {
    private static AudioAttributes safeAudioAttributes(TypedXmlPullParser parser) {
        int usage = safeInt(parser, ATT_USAGE, AudioAttributes.USAGE_NOTIFICATION);
        int contentType = safeInt(parser, ATT_CONTENT_TYPE,
                AudioAttributes.CONTENT_TYPE_SONIFICATION);
@@ -1111,12 +1114,12 @@ public final class NotificationChannel implements Parcelable {
                .build();
    }

    private static Uri safeUri(XmlPullParser parser, String att) {
    private static Uri safeUri(TypedXmlPullParser parser, String att) {
        final String val = parser.getAttributeValue(null, att);
        return val == null ? null : Uri.parse(val);
    }

    private static int safeInt(XmlPullParser parser, String att, int defValue) {
    private static int safeInt(TypedXmlPullParser parser, String att, int defValue) {
        final String val = parser.getAttributeValue(null, att);
        return tryParseInt(val, defValue);
    }
@@ -1130,13 +1133,13 @@ public final class NotificationChannel implements Parcelable {
        }
    }

    private static boolean safeBool(XmlPullParser parser, String att, boolean defValue) {
    private static boolean safeBool(TypedXmlPullParser parser, String att, boolean defValue) {
        final String value = parser.getAttributeValue(null, att);
        if (TextUtils.isEmpty(value)) return defValue;
        return Boolean.parseBoolean(value);
    }

    private static long[] safeLongArray(XmlPullParser parser, String att, long[] defValue) {
    private static long[] safeLongArray(TypedXmlPullParser parser, String att, long[] defValue) {
        final String attributeValue = parser.getAttributeValue(null, att);
        if (TextUtils.isEmpty(attributeValue)) return defValue;
        String[] values = attributeValue.split(DELIMITER);
+5 −5
Original line number Diff line number Diff line
@@ -23,12 +23,12 @@ import android.content.Intent;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.util.proto.ProtoOutputStream;

import org.json.JSONException;
import org.json.JSONObject;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;

import java.io.IOException;
import java.util.ArrayList;
@@ -228,13 +228,13 @@ public final class NotificationChannelGroup implements Parcelable {
    /**
     * @hide
     */
    public void populateFromXml(XmlPullParser parser) {
    public void populateFromXml(TypedXmlPullParser parser) {
        // Name, id, and importance are set in the constructor.
        setDescription(parser.getAttributeValue(null, ATT_DESC));
        setBlocked(safeBool(parser, ATT_BLOCKED, false));
    }

    private static boolean safeBool(XmlPullParser parser, String att, boolean defValue) {
    private static boolean safeBool(TypedXmlPullParser parser, String att, boolean defValue) {
        final String value = parser.getAttributeValue(null, att);
        if (TextUtils.isEmpty(value)) return defValue;
        return Boolean.parseBoolean(value);
@@ -243,7 +243,7 @@ public final class NotificationChannelGroup implements Parcelable {
    /**
     * @hide
     */
    public void writeXml(XmlSerializer out) throws IOException {
    public void writeXml(TypedXmlSerializer out) throws IOException {
        out.startTag(null, TAG_GROUP);

        out.attribute(null, ATT_ID, getId());
+4 −3
Original line number Diff line number Diff line
@@ -37,11 +37,12 @@ import android.util.AttributeSet;
import android.util.Log;
import android.util.Printer;
import android.util.SparseArray;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.util.Xml;

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

import java.io.IOException;
import java.util.ArrayList;
@@ -472,13 +473,13 @@ public final class DeviceAdminInfo implements Parcelable {
    }

    /** @hide */
    public void writePoliciesToXml(XmlSerializer out)
    public void writePoliciesToXml(TypedXmlSerializer out)
            throws IllegalArgumentException, IllegalStateException, IOException {
        out.attribute(null, "flags", Integer.toString(mUsesPolicies));
    }

    /** @hide */
    public void readPoliciesFromXml(XmlPullParser parser)
    public void readPoliciesFromXml(TypedXmlPullParser parser)
            throws XmlPullParserException, IOException {
        mUsesPolicies = Integer.parseInt(
                parser.getAttributeValue(null, "flags"));
+4 −4
Original line number Diff line number Diff line
@@ -26,10 +26,10 @@ import android.content.ComponentName;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;
import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;

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

import java.io.IOException;
import java.util.ArrayList;
@@ -201,7 +201,7 @@ public final class FactoryResetProtectionPolicy implements Parcelable {
     * @hide
     */
    @Nullable
    public static FactoryResetProtectionPolicy readFromXml(@NonNull XmlPullParser parser) {
    public static FactoryResetProtectionPolicy readFromXml(@NonNull TypedXmlPullParser parser) {
        try {
            boolean factoryResetProtectionEnabled = Boolean.parseBoolean(
                    parser.getAttributeValue(null, KEY_FACTORY_RESET_PROTECTION_ENABLED));
@@ -232,7 +232,7 @@ public final class FactoryResetProtectionPolicy implements Parcelable {
    /**
     * @hide
     */
    public void writeToXml(@NonNull XmlSerializer out) throws IOException {
    public void writeToXml(@NonNull TypedXmlSerializer out) throws IOException {
        out.attribute(null, KEY_FACTORY_RESET_PROTECTION_ENABLED,
                Boolean.toString(mFactoryResetProtectionEnabled));
        for (String account : mFactoryResetProtectionAccounts) {
Loading