Add support for vibrator 1.1 HAL and TICK effect.
New HAL support is a bit hacky but gets us unblocked.
Bug: 38417655
Bug: 38417570
Test: Manual (hacked up 1.1 HAL implementation that just logs)
Change-Id: I207cce97c81734bac1ca00a5de18e160d13e2bbe
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index 03e9dd2..7ba3d7d 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -221,19 +221,24 @@
long[] clickEffectTimings = getLongIntArray(context.getResources(),
com.android.internal.R.array.config_virtualKeyVibePattern);
- VibrationEffect clickEffect;
- if (clickEffectTimings.length == 0) {
- clickEffect = null;
- } else if (clickEffectTimings.length == 1) {
- clickEffect = VibrationEffect.createOneShot(
- clickEffectTimings[0], VibrationEffect.DEFAULT_AMPLITUDE);
- } else {
- clickEffect = VibrationEffect.createWaveform(clickEffectTimings, -1);
- }
+ VibrationEffect clickEffect = createEffect(clickEffectTimings);
VibrationEffect doubleClickEffect = VibrationEffect.createWaveform(
new long[] {0, 30, 100, 30} /*timings*/, -1);
+ long[] tickEffectTimings = getLongIntArray(context.getResources(),
+ com.android.internal.R.array.config_clockTickVibePattern);
+ VibrationEffect tickEffect = createEffect(tickEffectTimings);
- mFallbackEffects = new VibrationEffect[] { clickEffect, doubleClickEffect };
+ mFallbackEffects = new VibrationEffect[] { clickEffect, doubleClickEffect, tickEffect };
+ }
+
+ private static VibrationEffect createEffect(long[] timings) {
+ if (timings == null || timings.length == 0) {
+ return null;
+ } else if (timings.length == 1) {
+ return VibrationEffect.createOneShot(timings[0], VibrationEffect.DEFAULT_AMPLITUDE);
+ } else {
+ return VibrationEffect.createWaveform(timings, -1);
+ }
}
public void systemReady() {