summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-07-31 13:02:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-07-31 13:02:26 +0000
commitaa6636ffd63d0510970cdd137757aa698470fc6c (patch)
tree57ecd3a665ec2daeac6a8611cbff460136042e6e
parentbc5ae315c72e3aeebb0fe90e44c7cc91b4ddee64 (diff)
parent4bcf419a0dae3bc95e04525a95977f55c1278d92 (diff)
Merge "Fix VibrationEffect creation from parcel" into main
-rw-r--r--core/java/android/os/VibrationEffect.java2
-rw-r--r--core/tests/vibrator/src/android/os/VibrationEffectTest.java21
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java
index 475984e4a751..f3ef9e15b8f0 100644
--- a/core/java/android/os/VibrationEffect.java
+++ b/core/java/android/os/VibrationEffect.java
@@ -1024,6 +1024,7 @@ public abstract class VibrationEffect implements Parcelable {
new Creator<Composed>() {
@Override
public Composed createFromParcel(Parcel in) {
+ in.readInt(); // Skip the parcel type token
return new Composed(in);
}
@@ -1298,6 +1299,7 @@ public abstract class VibrationEffect implements Parcelable {
new Creator<VendorEffect>() {
@Override
public VendorEffect createFromParcel(Parcel in) {
+ in.readInt(); // Skip the parcel type token
return new VendorEffect(in);
}
diff --git a/core/tests/vibrator/src/android/os/VibrationEffectTest.java b/core/tests/vibrator/src/android/os/VibrationEffectTest.java
index 098ade4c1334..bd3d94467ead 100644
--- a/core/tests/vibrator/src/android/os/VibrationEffectTest.java
+++ b/core/tests/vibrator/src/android/os/VibrationEffectTest.java
@@ -1071,6 +1071,27 @@ public class VibrationEffectTest {
.isHapticFeedbackCandidate());
}
+ @Test
+ public void testParcelingComposed() {
+ Parcel p = Parcel.obtain();
+ VibrationEffect effect = VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK);
+ effect.writeToParcel(p, 0);
+ p.setDataPosition(0);
+ VibrationEffect parceledEffect = VibrationEffect.Composed.CREATOR.createFromParcel(p);
+ assertThat(parceledEffect).isEqualTo(effect);
+ }
+
+ @Test
+ @RequiresFlagsEnabled(android.os.vibrator.Flags.FLAG_VENDOR_VIBRATION_EFFECTS)
+ public void testParcelingVendorEffect() {
+ Parcel p = Parcel.obtain();
+ VibrationEffect effect = VibrationEffect.createVendorEffect(createNonEmptyBundle());
+ effect.writeToParcel(p, 0);
+ p.setDataPosition(0);
+ VibrationEffect parceledEffect = VibrationEffect.VendorEffect.CREATOR.createFromParcel(p);
+ assertThat(parceledEffect).isEqualTo(effect);
+ }
+
private void assertArrayEq(long[] expected, long[] actual) {
assertTrue(
String.format("Expected pattern %s, but was %s",