Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2561deb1 authored by Ahmad Khalil's avatar Ahmad Khalil
Browse files

Make long click haptic feedback customizable.

Bug: 263468600
Test: android.view.cts.ViewTest
Change-Id: I9ce3e83cafac737f273d4b9194b071be01c59382
parent 5b34d79e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -52150,6 +52150,7 @@ package android.view {
  public static interface View.OnLongClickListener {
    method public boolean onLongClick(android.view.View);
    method public default boolean onLongClickUseDefaultHapticFeedback(@NonNull android.view.View);
  }
  public static interface View.OnScrollChangeListener {
+19 −1
Original line number Diff line number Diff line
@@ -7698,8 +7698,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        boolean handled = false;
        final ListenerInfo li = mListenerInfo;
        boolean shouldPerformHapticFeedback = true;
        if (li != null && li.mOnLongClickListener != null) {
            handled = li.mOnLongClickListener.onLongClick(View.this);
            if (handled) {
                shouldPerformHapticFeedback =
                        li.mOnLongClickListener.onLongClickUseDefaultHapticFeedback(View.this);
            }
        }
        if (!handled) {
            final boolean isAnchored = !Float.isNaN(x) && !Float.isNaN(y);
@@ -7710,7 +7715,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                handled = showLongClickTooltip((int) x, (int) y);
            }
        }
        if (handled) {
        if (handled && shouldPerformHapticFeedback) {
            performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
        }
        return handled;
@@ -29922,6 +29927,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
         * @return true if the callback consumed the long click, false otherwise.
         */
        boolean onLongClick(View v);
        /**
         * Returns whether the default {@link HapticFeedbackConstants#LONG_PRESS} haptic feedback
         * is performed when this listener has consumed the long click. This method is called
         * immediately after {@link #onLongClick} has returned true.
         *
         * @param v The view that was clicked and held.
         * @return true to perform the default {@link HapticFeedbackConstants#LONG_PRESS} haptic
         * feedback, or false if the handler manages all haptics itself.
         */
        default boolean onLongClickUseDefaultHapticFeedback(@NonNull View v) {
            return true;
        }
    }
    /**