From 0592b714896de736767c5f07f26ec48c1654c82a Mon Sep 17 00:00:00 2001 From: Mis012 Date: Fri, 22 Mar 2024 14:04:04 +0100 Subject: [PATCH] View: basic implementation for performHapticFeedback we currently ignore the feedbackConstant and simply vibrate for 10ms --- src/api-impl/android/content/Context.java | 4 +++- src/api-impl/android/view/View.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/api-impl/android/content/Context.java b/src/api-impl/android/content/Context.java index e08e5aa9..ba57a3ba 100644 --- a/src/api-impl/android/content/Context.java +++ b/src/api-impl/android/content/Context.java @@ -65,6 +65,8 @@ public class Context extends Object { public static final String WINDOW_SERVICE = "window"; public static AndroidManifestBlock manifest = null; + public static Vibrator vibrator; + static AssetManager assets; static DisplayMetrics dm; static Resources r; @@ -172,7 +174,7 @@ public class Context extends Object { case "usb": return new UsbManager(); case "vibrator": - return new Vibrator(); + return (vibrator != null) ? vibrator : (vibrator = new Vibrator()); case "power": return new PowerManager(); case "display": diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 5dbb3f8e..a1543f62 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -16,6 +16,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Parcelable; +import android.os.Vibrator; import android.util.AttributeSet; import android.util.LayoutDirection; import android.util.Property; @@ -1060,7 +1061,9 @@ public class View extends Object { } public boolean performHapticFeedback(int feedbackConstant, int flags) { - Slog.v(TAG, "vibration motor go burrrr"); + // arbitrary; TODO: better mimic what AOSP does + Vibrator vibrator = (Vibrator)getContext().getSystemService("vibrator"); + vibrator.vibrate(10); return true; // FIXME why is it not void }