From b7935598e9fcff5df1ff359e23ea6ae8bb444f97 Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Fri, 3 Oct 2025 01:01:47 +0200 Subject: [PATCH 1/2] Fix haptic feedback vibrations --- app/android/src/uk/co/lutraconsulting/InputActivity.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/android/src/uk/co/lutraconsulting/InputActivity.java b/app/android/src/uk/co/lutraconsulting/InputActivity.java index 28bdd7a25..0a1a54c46 100644 --- a/app/android/src/uk/co/lutraconsulting/InputActivity.java +++ b/app/android/src/uk/co/lutraconsulting/InputActivity.java @@ -50,6 +50,8 @@ import androidx.core.view.WindowCompat; import androidx.core.splashscreen.SplashScreen; +import java.util.Arrays; + public class InputActivity extends QtActivity { private static final String TAG = "Mergin Maps Input Activity"; @@ -290,19 +292,23 @@ public void vibrate() vib = vibManager.getDefaultVibrator(); } + // The reason why we use duplicate calls to vibrate is because some manufacturers (samsung) don't support + // the usage of predefined VibrationEffect and vice versa. In the end only one vibration gets executed. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { - vib.vibrate(VibrationEffect.createOneShot(10, VibrationEffect.DEFAULT_AMPLITUDE)); + vib.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE)); } else { vib.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK)); + vib.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE)); } } else { vib.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK), VibrationAttributes.createForUsage(VibrationAttributes.USAGE_CLASS_FEEDBACK)); + vib.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE)); } } From 0ffc4910a4046ea6cea25f264c187d7d98976a7d Mon Sep 17 00:00:00 2001 From: Matej Bagar Date: Fri, 3 Oct 2025 01:06:10 +0200 Subject: [PATCH 2/2] Remove unused import --- app/android/src/uk/co/lutraconsulting/InputActivity.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/android/src/uk/co/lutraconsulting/InputActivity.java b/app/android/src/uk/co/lutraconsulting/InputActivity.java index 0a1a54c46..0dc8640e3 100644 --- a/app/android/src/uk/co/lutraconsulting/InputActivity.java +++ b/app/android/src/uk/co/lutraconsulting/InputActivity.java @@ -50,8 +50,6 @@ import androidx.core.view.WindowCompat; import androidx.core.splashscreen.SplashScreen; -import java.util.Arrays; - public class InputActivity extends QtActivity { private static final String TAG = "Mergin Maps Input Activity";