Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc491a64 authored by Lais Andrade's avatar Lais Andrade
Browse files

Fix VibratorManager cmd for on-off waveforms

The VibrationEffect.WaveformBuilder.addSustain does not accept zero
duration sustain periods, so adding an extra check to the
VibratorManager ShellCommand implementation to handle on-off patterns
with zero entries.

Bug: 224930189
Test: manual
Change-Id: Ie1b8f15a0e7b029ebf78a2affce1c12455f08418
parent 9519e3c9
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1852,6 +1852,9 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
                Duration transitionDuration = isContinuous
                        ? Duration.ofMillis(durations.get(i))
                        : Duration.ZERO;
                Duration sustainDuration = isContinuous
                        ? Duration.ZERO
                        : Duration.ofMillis(durations.get(i));

                if (hasFrequencies) {
                    waveform.addTransition(transitionDuration, targetAmplitude(amplitudes.get(i)),
@@ -1859,8 +1862,10 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
                } else {
                    waveform.addTransition(transitionDuration, targetAmplitude(amplitudes.get(i)));
                }
                if (!isContinuous) {
                    waveform.addSustain(Duration.ofMillis(durations.get(i)));
                if (!sustainDuration.isZero()) {
                    // Add sustain only takes positive durations. Skip this since we already
                    // did a transition to the desired values (even when duration is zero).
                    waveform.addSustain(sustainDuration);
                }

                if ((i > 0) && (i == repeat)) {