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

Commit d1a1f8f1 authored by Florian Muller's avatar Florian Muller
Browse files

Allow to utilize audio system usages



Bug: 396489610
Test: Manual + atest ExternalVibrationTest
Flag: EXEMPT bugfix
Change-Id: I38f62300f400fc3473f1bb92056b9873fb5eb7fb
Signed-off-by: default avatarFlorian Muller <mullerf@google.com>
parent 9689879d
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());
    }
}