diff options
| author | 2025-03-03 17:25:29 -0800 | |
|---|---|---|
| committer | 2025-03-03 17:25:29 -0800 | |
| commit | 446b50150f955cbacbb92a8a9d312bd3c8111ac1 (patch) | |
| tree | 0555966b6e5ab7ff389876c8718b4fc52c1ac932 | |
| parent | 4351230ed6ca3306c170e1e69b4144f1043f6026 (diff) | |
| parent | d1a1f8f14210e4c8e52770c8b73452899e907bff (diff) | |
Merge "Allow to utilize audio system usages" into main
| -rw-r--r-- | core/java/android/os/ExternalVibration.java | 12 | ||||
| -rw-r--r-- | core/tests/vibrator/src/android/os/ExternalVibrationTest.java | 18 |
2 files changed, 27 insertions, 3 deletions
diff --git a/core/java/android/os/ExternalVibration.java b/core/java/android/os/ExternalVibration.java index 3aad0fd7b82f..70a17ab00235 100644 --- a/core/java/android/os/ExternalVibration.java +++ b/core/java/android/os/ExternalVibration.java @@ -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()); diff --git a/core/tests/vibrator/src/android/os/ExternalVibrationTest.java b/core/tests/vibrator/src/android/os/ExternalVibrationTest.java index 8741907cd5ea..9c9d50202486 100644 --- a/core/tests/vibrator/src/android/os/ExternalVibrationTest.java +++ b/core/tests/vibrator/src/android/os/ExternalVibrationTest.java @@ -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()); + } } |