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

Commit 446b5015 authored by Florian Muller's avatar Florian Muller Committed by Android (Google) Code Review
Browse files

Merge "Allow to utilize audio system usages" into main

parents 4351230e d1a1f8f1
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -87,8 +87,12 @@ public class ExternalVibration implements Parcelable {
        int capturePreset = in.readInt();
        int flags = in.readInt();
        AudioAttributes.Builder builder = new AudioAttributes.Builder();
        return builder.setUsage(usage)
                .setContentType(contentType)
        if (AudioAttributes.isSystemUsage(usage)) {
            builder.setSystemUsage(usage);
        } else {
            builder.setUsage(usage);
        }
        return builder.setContentType(contentType)
                .setCapturePreset(capturePreset)
                .setFlags(flags)
                .build();
@@ -196,7 +200,9 @@ public class ExternalVibration implements Parcelable {
    }

    private static void writeAudioAttributes(AudioAttributes attrs, Parcel out) {
        out.writeInt(attrs.getUsage());
        // Since we allow audio system usages, must use getSystemUsage() instead of getUsage() for
        // all usages.
        out.writeInt(attrs.getSystemUsage());
        out.writeInt(attrs.getContentType());
        out.writeInt(attrs.getCapturePreset());
        out.writeInt(attrs.getAllFlags());
+18 −0
Original line number Diff line number Diff line
@@ -49,4 +49,22 @@ public class ExternalVibrationTest {
        assertThat(restored.getAudioAttributes()).isEqualTo(original.getAudioAttributes());
        assertThat(restored.getToken()).isEqualTo(original.getToken());
    }

    @Test
    public void testSerialization_systemUsage() {
        ExternalVibration original =
                new ExternalVibration(
                        123,
                        "pkg",
                        new AudioAttributes.Builder()
                                .setSystemUsage(AudioAttributes.USAGE_SPEAKER_CLEANUP)
                                .build(),
                        IExternalVibrationController.Stub.asInterface(new Binder()));
        Parcel p = Parcel.obtain();
        original.writeToParcel(p, 0);
        p.setDataPosition(0);
        ExternalVibration restored = ExternalVibration.CREATOR.createFromParcel(p);

        assertThat(restored.getAudioAttributes()).isEqualTo(original.getAudioAttributes());
    }
}