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
+                + '}';
+    }
 }