From 1e6fdee508fe54d452441411821440876cf85bce Mon Sep 17 00:00:00 2001 From: player-03 Date: Sun, 7 Jul 2024 13:53:16 -0400 Subject: [PATCH] Simplify and document vibration pattern logic. --- .../app/src/main/java/org/haxe/lime/GameActivity.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/android/template/app/src/main/java/org/haxe/lime/GameActivity.java b/templates/android/template/app/src/main/java/org/haxe/lime/GameActivity.java index b5b0c78f8..f4d47572e 100644 --- a/templates/android/template/app/src/main/java/org/haxe/lime/GameActivity.java +++ b/templates/android/template/app/src/main/java/org/haxe/lime/GameActivity.java @@ -380,7 +380,7 @@ public class GameActivity extends SDLActivity { public static void vibrate (int period, int duration) { - if (vibrator == null || !vibrator.hasVibrator ()) { + if (vibrator == null || !vibrator.hasVibrator () || period < 0 || duration <= 0) { return; @@ -400,8 +400,9 @@ public class GameActivity extends SDLActivity { } else { - int periodMS = Math.max (1, (int)Math.ceil (period / 2.0)); - int count = Math.max (1, (int)Math.ceil ((duration / (double) period) * 2)); + // each period has two halves (vibrator off/vibrator on), and each half requires a separate entry in the array + int periodMS = (int)Math.ceil (period / 2.0); + int count = (int)Math.ceil (duration / (double) periodMS); long[] pattern = new long[count]; for (int i = 0; i < count; i++) {