diff --git a/app/src/main/java/org/xbmc/kore/ui/widgets/ControlPad.java b/app/src/main/java/org/xbmc/kore/ui/widgets/ControlPad.java index 6d89f1320..67cfd07fa 100644 --- a/app/src/main/java/org/xbmc/kore/ui/widgets/ControlPad.java +++ b/app/src/main/java/org/xbmc/kore/ui/widgets/ControlPad.java @@ -38,6 +38,7 @@ import org.xbmc.kore.ui.viewgroups.SquareGridLayout; import org.xbmc.kore.utils.LogUtils; import org.xbmc.kore.utils.RepeatListener; +import org.xbmc.kore.utils.UIUtils; public class ControlPad extends SquareGridLayout implements View.OnClickListener, View.OnLongClickListener { @@ -154,6 +155,7 @@ private void setupListeners(Context context) { OnTouchListener feedbackTouchListener = (v, event) -> { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: + UIUtils.handleVibration(context, v); buttonInAnim.setFillAfter(true); v.startAnimation(buttonInAnim); break; diff --git a/app/src/main/java/org/xbmc/kore/utils/RepeatListener.java b/app/src/main/java/org/xbmc/kore/utils/RepeatListener.java index 5e797c03e..1ca5b4e94 100644 --- a/app/src/main/java/org/xbmc/kore/utils/RepeatListener.java +++ b/app/src/main/java/org/xbmc/kore/utils/RepeatListener.java @@ -115,7 +115,7 @@ public RepeatListener(int initialInterval, int repeatInterval, View.OnClickListe public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: - UIUtils.handleVibration(context); + UIUtils.handleVibration(context, view); repeatHandler.removeCallbacks(handlerRunnable); if (initialInterval >= 0) { repeatHandler.postDelayed(handlerRunnable, initialInterval); diff --git a/app/src/main/java/org/xbmc/kore/utils/UIUtils.java b/app/src/main/java/org/xbmc/kore/utils/UIUtils.java index 67576436e..535a81af1 100644 --- a/app/src/main/java/org/xbmc/kore/utils/UIUtils.java +++ b/app/src/main/java/org/xbmc/kore/utils/UIUtils.java @@ -36,6 +36,7 @@ import android.text.style.ForegroundColorSpan; import android.text.style.TextAppearanceSpan; import android.util.DisplayMetrics; +import android.view.HapticFeedbackConstants; import android.view.LayoutInflater; import android.view.View; import android.view.ViewTreeObserver; @@ -78,7 +79,6 @@ public class UIUtils { public static final float IMAGE_RESIZE_FACTOR = 1.0f; public static final int buttonRepeatInterval = 80; // ms - public static final int buttonVibrationDuration = 50; //ms /** * Formats time based on seconds @@ -390,7 +390,7 @@ public static int changeColorAlpha(int color, int alpha) return (alpha << 24) | (color & 0x00ffffff); } - public static void handleVibration(Context context) { + public static void handleVibration(Context context, View view) { if(context == null) return; Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); @@ -402,7 +402,7 @@ public static void handleVibration(Context context) { .getBoolean(Settings.KEY_PREF_VIBRATE_REMOTE_BUTTONS, Settings.DEFAULT_PREF_VIBRATE_REMOTE_BUTTONS); if (vibrateOnPress) { - vibrator.vibrate(UIUtils.buttonVibrationDuration); + view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); } }