diff options
| author | 2025-02-12 13:51:37 +0000 | |
|---|---|---|
| committer | 2025-02-12 17:27:21 +0000 | |
| commit | 99d6acd8369f6477a1c66494f1a9f4652c8c9249 (patch) | |
| tree | 55d719432e87751cad2e3fdeec9143d0d8a284bf | |
| parent | b18430333510d8d77930ff408b922c3851c32e95 (diff) | |
Fix output acceleration cts test
We are now using interpolation to obtain the output acceleration after converting the frequencies in the map to integers.
Bug: 396061573
Flag: android.os.vibrator.normalized_pwle_effects
Test: atest FrameworksVibratorCoreTests
Change-Id: If6d5b87a6e1801ce210048296e0b4f1dae64a8ea
| -rw-r--r-- | core/java/android/os/vibrator/VibratorFrequencyProfile.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/core/java/android/os/vibrator/VibratorFrequencyProfile.java b/core/java/android/os/vibrator/VibratorFrequencyProfile.java index 2b5f9bf2a22e..a8ed81846663 100644 --- a/core/java/android/os/vibrator/VibratorFrequencyProfile.java +++ b/core/java/android/os/vibrator/VibratorFrequencyProfile.java @@ -51,8 +51,7 @@ public final class VibratorFrequencyProfile { Preconditions.checkArgument(!frequencyProfile.isEmpty(), "Frequency profile must not be empty"); mFrequencyProfile = frequencyProfile; - mFrequenciesOutputAcceleration = generateFrequencyToAccelerationMap( - frequencyProfile.getFrequenciesHz(), frequencyProfile.getOutputAccelerationsGs()); + mFrequenciesOutputAcceleration = generateFrequencyToAccelerationMap(mFrequencyProfile); } /** @@ -133,18 +132,21 @@ public final class VibratorFrequencyProfile { } private static SparseArray<Float> generateFrequencyToAccelerationMap( - float[] frequencies, float[] accelerations) { - SparseArray<Float> sparseArray = new SparseArray<>(frequencies.length); - + VibratorInfo.FrequencyProfile frequencyProfile) { + float[] frequencies = frequencyProfile.getFrequenciesHz(); + SparseArray<Float> frequencyToAcceleration = new SparseArray<>(frequencies.length); + int lastFrequency = -1; for (int i = 0; i < frequencies.length; i++) { int frequency = (int) frequencies[i]; - float acceleration = accelerations[i]; - - sparseArray.put(frequency, - Math.min(acceleration, sparseArray.get(frequency, Float.MAX_VALUE))); + if (frequency == lastFrequency) { + continue; // Skip duplicate frequencies + } + float acceleration = frequencyProfile.getOutputAccelerationGs(frequency); + frequencyToAcceleration.put(frequency, acceleration); + lastFrequency = frequency; } - return sparseArray; + return frequencyToAcceleration; } } |