diff options
author | 2025-03-26 16:41:10 +0100 | |
---|---|---|
committer | 2025-04-02 19:36:59 -0700 | |
commit | c88baf38bfdf0983a88b6dd4e4dc44b4eaaf58ef (patch) | |
tree | 856091299c9395e101a0fdcb2a4434b3368f68ad /quickstep/src | |
parent | 327b059225338e22eb71055d3522f2bb05d3ab54 (diff) |
Play haptic on ACTION_DOWN for 3-button-nav buttons
Bug: 393959400
Test: Manual, i.e. verified that haptic happens on ACTION_DOWN and on
long press (except for back button which doesn't have a haptic on
long press). Also verified that Talkback works.
Flag: EXEMPT bugfix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:528bf70f61a6c161ec231d7447ac69dd4d97d1c8)
Merged-In: Ieb1892d69268d0bfba0ead9ec38c8ee9843addef
Change-Id: Ieb1892d69268d0bfba0ead9ec38c8ee9843addef
Diffstat (limited to 'quickstep/src')
-rw-r--r-- | quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java | 10 | ||||
-rw-r--r-- | quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index cf3b95274a..94746fd8a0 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -58,6 +58,7 @@ import android.animation.ObjectAnimator; import android.annotation.DrawableRes; import android.annotation.IdRes; import android.annotation.LayoutRes; +import android.annotation.SuppressLint; import android.content.Context; import android.content.pm.ActivityInfo.Config; import android.content.res.ColorStateList; @@ -880,6 +881,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT R.layout.taskbar_nav_button); } + @SuppressLint("ClickableViewAccessibility") private ImageView addButton(@DrawableRes int drawableId, @TaskbarButton int buttonType, ViewGroup parent, TaskbarNavButtonController navButtonController, @IdRes int id, @LayoutRes int layoutId) { @@ -899,6 +901,12 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT navButtonController.onButtonClick(buttonType, view)); buttonView.setOnLongClickListener(view -> navButtonController.onButtonLongClick(buttonType, view)); + buttonView.setOnTouchListener((v, event) -> { + if (event.getAction() == MotionEvent.ACTION_DOWN) { + buttonView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); + } + return false; + }); } return buttonView; } @@ -939,6 +947,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT hasSentDownEvent.set(false); mHandler.postDelayed(longPressTimeout, PREDICTIVE_BACK_TIMEOUT_MS); rect.set(0, 0, v.getWidth(), v.getHeight()); + buttonView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); } boolean isCancelled = motionEventAction == MotionEvent.ACTION_CANCEL || (!rect.contains(event.getX(), event.getY()) @@ -960,7 +969,6 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT navButtonController.sendBackKeyEvent(KeyEvent.ACTION_UP, isCancelled); if (motionEventAction == MotionEvent.ACTION_UP && !isCancelled) { buttonView.performClick(); - buttonView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); } return false; }); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 1adb2e909e..f52de63859 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -147,8 +147,6 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa // prevent interactions with other buttons while back button is pressed return; } - // Provide the same haptic feedback that the system offers for virtual keys. - view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); switch (buttonType) { case BUTTON_BACK: executeBack(/* keyEvent */ null); |