Small fixes to ParsedVibration
- Make a defensive copy of the effect list in the constructors;
- Add toString to improve debugging test failures;
Bug: 349244612
Flag: EXEMPT refactor
Test: ParsedVibrationTest
Change-Id: I40d8d33ebf2fee3749a6f569762283282f8d3006
diff --git a/core/java/android/os/vibrator/persistence/ParsedVibration.java b/core/java/android/os/vibrator/persistence/ParsedVibration.java
index e5543ab..74d3a7b 100644
--- a/core/java/android/os/vibrator/persistence/ParsedVibration.java
+++ b/core/java/android/os/vibrator/persistence/ParsedVibration.java
@@ -27,6 +27,7 @@
import android.os.Vibrator;
import android.os.VibratorInfo;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -41,17 +42,18 @@
@SystemApi
@FlaggedApi(FLAG_VIBRATION_XML_APIS)
public final class ParsedVibration {
- private final List<VibrationEffect> mEffects;
+ private final ArrayList<VibrationEffect> mEffects;
/** @hide */
@TestApi
public ParsedVibration(@NonNull List<VibrationEffect> effects) {
- mEffects = effects;
+ mEffects = new ArrayList<>(effects);
}
/** @hide */
public ParsedVibration(@NonNull VibrationEffect effect) {
- mEffects = List.of(effect);
+ mEffects = new ArrayList<>(1);
+ mEffects.add(effect);
}
/**
@@ -100,4 +102,11 @@
public int hashCode() {
return Objects.hashCode(mEffects);
}
+
+ @Override
+ public String toString() {
+ return "ParsedVibration{"
+ + "effects=" + mEffects
+ + '}';
+ }
}