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

Commit 8fa32821 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add xml serialization of vendor vibration effects" into main

parents d42c8a52 5a4a8e0e
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -104,7 +104,7 @@ public final class VibrationXmlSerializer {
    public static void serialize(@NonNull VibrationEffect effect, @NonNull Writer writer,
    public static void serialize(@NonNull VibrationEffect effect, @NonNull Writer writer,
            @Flags int flags) throws IOException {
            @Flags int flags) throws IOException {
        // Serialize effect first to fail early.
        // Serialize effect first to fail early.
        XmlSerializedVibration<VibrationEffect> serializedVibration =
        XmlSerializedVibration<? extends VibrationEffect> serializedVibration =
                toSerializedVibration(effect, flags);
                toSerializedVibration(effect, flags);
        TypedXmlSerializer xmlSerializer = Xml.newFastSerializer();
        TypedXmlSerializer xmlSerializer = Xml.newFastSerializer();
        xmlSerializer.setFeature(XML_FEATURE_INDENT_OUTPUT, (flags & FLAG_PRETTY_PRINT) != 0);
        xmlSerializer.setFeature(XML_FEATURE_INDENT_OUTPUT, (flags & FLAG_PRETTY_PRINT) != 0);
@@ -114,9 +114,9 @@ public final class VibrationXmlSerializer {
        xmlSerializer.endDocument();
        xmlSerializer.endDocument();
    }
    }


    private static XmlSerializedVibration<VibrationEffect> toSerializedVibration(
    private static XmlSerializedVibration<? extends VibrationEffect> toSerializedVibration(
            VibrationEffect effect, @Flags int flags) throws SerializationFailedException {
            VibrationEffect effect, @Flags int flags) throws SerializationFailedException {
        XmlSerializedVibration<VibrationEffect> serializedVibration;
        XmlSerializedVibration<? extends VibrationEffect> serializedVibration;
        int serializerFlags = 0;
        int serializerFlags = 0;
        if ((flags & FLAG_ALLOW_HIDDEN_APIS) != 0) {
        if ((flags & FLAG_ALLOW_HIDDEN_APIS) != 0) {
            serializerFlags |= XmlConstants.FLAG_ALLOW_HIDDEN_APIS;
            serializerFlags |= XmlConstants.FLAG_ALLOW_HIDDEN_APIS;
+1 −1
Original line number Original line Diff line number Diff line
@@ -29,7 +29,7 @@ import android.os.VibrationEffect;
import android.util.IntArray;
import android.util.IntArray;
import android.util.LongArray;
import android.util.LongArray;


import com.android.internal.vibrator.persistence.SerializedVibrationEffect.SerializedSegment;
import com.android.internal.vibrator.persistence.SerializedComposedEffect.SerializedSegment;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
import com.android.modules.utils.TypedXmlSerializer;


+7 −7
Original line number Original line Diff line number Diff line
@@ -29,24 +29,24 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Arrays;


/**
/**
 * Serialized representation of a {@link VibrationEffect}.
 * Serialized representation of a {@link VibrationEffect.Composed}.
 *
 *
 * <p>The vibration is represented by a list of serialized segments that can be added to a
 * <p>The vibration is represented by a list of serialized segments that can be added to a
 * {@link VibrationEffect.Composition} during the {@link #deserialize()} procedure.
 * {@link VibrationEffect.Composition} during the {@link #deserialize()} procedure.
 *
 *
 * @hide
 * @hide
 */
 */
final class SerializedVibrationEffect implements XmlSerializedVibration<VibrationEffect> {
final class SerializedComposedEffect implements XmlSerializedVibration<VibrationEffect.Composed> {


    @NonNull
    @NonNull
    private final SerializedSegment[] mSegments;
    private final SerializedSegment[] mSegments;


    SerializedVibrationEffect(@NonNull SerializedSegment segment) {
    SerializedComposedEffect(@NonNull SerializedSegment segment) {
        requireNonNull(segment);
        requireNonNull(segment);
        mSegments = new SerializedSegment[]{ segment };
        mSegments = new SerializedSegment[]{ segment };
    }
    }


    SerializedVibrationEffect(@NonNull SerializedSegment[] segments) {
    SerializedComposedEffect(@NonNull SerializedSegment[] segments) {
        requireNonNull(segments);
        requireNonNull(segments);
        checkArgument(segments.length > 0, "Unsupported empty vibration");
        checkArgument(segments.length > 0, "Unsupported empty vibration");
        mSegments = segments;
        mSegments = segments;
@@ -54,12 +54,12 @@ final class SerializedVibrationEffect implements XmlSerializedVibration<Vibratio


    @NonNull
    @NonNull
    @Override
    @Override
    public VibrationEffect deserialize() {
    public VibrationEffect.Composed deserialize() {
        VibrationEffect.Composition composition = VibrationEffect.startComposition();
        VibrationEffect.Composition composition = VibrationEffect.startComposition();
        for (SerializedSegment segment : mSegments) {
        for (SerializedSegment segment : mSegments) {
            segment.deserializeIntoComposition(composition);
            segment.deserializeIntoComposition(composition);
        }
        }
        return composition.compose();
        return (VibrationEffect.Composed) composition.compose();
    }
    }


    @Override
    @Override
@@ -79,7 +79,7 @@ final class SerializedVibrationEffect implements XmlSerializedVibration<Vibratio


    @Override
    @Override
    public String toString() {
    public String toString() {
        return "SerializedVibrationEffect{"
        return "SerializedComposedEffect{"
                + "segments=" + Arrays.toString(mSegments)
                + "segments=" + Arrays.toString(mSegments)
                + '}';
                + '}';
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -27,7 +27,7 @@ import android.annotation.Nullable;
import android.os.VibrationEffect;
import android.os.VibrationEffect;
import android.os.vibrator.PrimitiveSegment;
import android.os.vibrator.PrimitiveSegment;


import com.android.internal.vibrator.persistence.SerializedVibrationEffect.SerializedSegment;
import com.android.internal.vibrator.persistence.SerializedComposedEffect.SerializedSegment;
import com.android.internal.vibrator.persistence.XmlConstants.PrimitiveEffectName;
import com.android.internal.vibrator.persistence.XmlConstants.PrimitiveEffectName;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
import com.android.modules.utils.TypedXmlSerializer;
+1 −1
Original line number Original line Diff line number Diff line
@@ -25,7 +25,7 @@ import android.annotation.NonNull;
import android.os.VibrationEffect;
import android.os.VibrationEffect;
import android.os.vibrator.PrebakedSegment;
import android.os.vibrator.PrebakedSegment;


import com.android.internal.vibrator.persistence.SerializedVibrationEffect.SerializedSegment;
import com.android.internal.vibrator.persistence.SerializedComposedEffect.SerializedSegment;
import com.android.internal.vibrator.persistence.XmlConstants.PredefinedEffectName;
import com.android.internal.vibrator.persistence.XmlConstants.PredefinedEffectName;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlPullParser;
import com.android.modules.utils.TypedXmlSerializer;
import com.android.modules.utils.TypedXmlSerializer;
Loading