summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl6
-rw-r--r--packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java16
3 files changed, 27 insertions, 15 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
index dcc14409f046..94b6fd42f701 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/ISystemUiProxy.aidl
@@ -156,9 +156,11 @@ interface ISystemUiProxy {
oneway void animateNavBarLongPress(boolean isTouchDown, boolean shrink, long durationMs) = 54;
/**
- * Set the override value for home button long press duration in ms and slop multiplier.
+ * Set the override value for home button long press duration in ms and slop multiplier and
+ * haptic.
*/
- oneway void setOverrideHomeButtonLongPress(long duration, float slopMultiplier) = 55;
+ oneway void setOverrideHomeButtonLongPress(long duration, float slopMultiplier, boolean haptic)
+ = 55;
// Next id = 56
}
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
index 43c73c4e7f35..1a2ae8a68d74 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
@@ -243,6 +243,7 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
private Optional<Long> mHomeButtonLongPressDurationMs;
private Optional<Long> mOverrideHomeButtonLongPressDurationMs = Optional.empty();
private Optional<Float> mOverrideHomeButtonLongPressSlopMultiplier = Optional.empty();
+ private boolean mHomeButtonLongPressHapticEnabled = true;
/** @see android.view.WindowInsetsController#setSystemBarsAppearance(int, int) */
private @Appearance int mAppearance;
@@ -410,13 +411,15 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
}
@Override
- public void setOverrideHomeButtonLongPress(long duration, float slopMultiplier) {
- Log.d(TAG, "setOverrideHomeButtonLongPress receives: " + duration + "; "
- + slopMultiplier);
+ public void setOverrideHomeButtonLongPress(long duration, float slopMultiplier,
+ boolean haptic) {
+ Log.d(TAG, "setOverrideHomeButtonLongPress receives: " + duration + ";"
+ + slopMultiplier + ";" + haptic);
mOverrideHomeButtonLongPressDurationMs = Optional.of(duration)
.filter(value -> value > 0);
mOverrideHomeButtonLongPressSlopMultiplier = Optional.of(slopMultiplier)
.filter(value -> value > 0);
+ mHomeButtonLongPressHapticEnabled = haptic;
mOverrideHomeButtonLongPressDurationMs.ifPresent(aLong
-> Log.d(TAG, "Use duration override: " + aLong));
mOverrideHomeButtonLongPressSlopMultiplier.ifPresent(aFloat
@@ -463,9 +466,11 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
private final Runnable mEnableLayoutTransitions = () -> mView.setLayoutTransitionsEnabled(true);
private final Runnable mOnVariableDurationHomeLongClick = () -> {
if (onHomeLongClick(mView.getHomeButton().getCurrentView())) {
- mView.getHomeButton().getCurrentView().performHapticFeedback(
- HapticFeedbackConstants.LONG_PRESS,
- HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+ if (mHomeButtonLongPressHapticEnabled) {
+ mView.getHomeButton().getCurrentView().performHapticFeedback(
+ HapticFeedbackConstants.LONG_PRESS,
+ HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
+ }
}
};
@@ -1042,7 +1047,8 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
mView.getHomeButton().setOnLongClickListener(null);
} else {
mView.getHomeButton().getCurrentView().setLongClickable(true);
- mView.getHomeButton().getCurrentView().setHapticFeedbackEnabled(true);
+ mView.getHomeButton().getCurrentView().setHapticFeedbackEnabled(
+ mHomeButtonLongPressHapticEnabled);
mView.getHomeButton().setOnLongClickListener(this::onHomeLongClick);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 1ddc0946905c..520331ae72af 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -264,9 +264,10 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
}
@Override
- public void setOverrideHomeButtonLongPress(long duration, float slopMultiplier) {
+ public void setOverrideHomeButtonLongPress(long duration, float slopMultiplier,
+ boolean haptic) {
verifyCallerAndClearCallingIdentityPostMain("setOverrideHomeButtonLongPress",
- () -> notifySetOverrideHomeButtonLongPress(duration, slopMultiplier));
+ () -> notifySetOverrideHomeButtonLongPress(duration, slopMultiplier, haptic));
}
@Override
@@ -956,9 +957,11 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
}
}
- private void notifySetOverrideHomeButtonLongPress(long duration, float slopMultiplier) {
+ private void notifySetOverrideHomeButtonLongPress(long duration, float slopMultiplier,
+ boolean haptic) {
for (int i = mConnectionCallbacks.size() - 1; i >= 0; --i) {
- mConnectionCallbacks.get(i).setOverrideHomeButtonLongPress(duration, slopMultiplier);
+ mConnectionCallbacks.get(i)
+ .setOverrideHomeButtonLongPress(duration, slopMultiplier, haptic);
}
}
@@ -1119,8 +1122,9 @@ public class OverviewProxyService implements CallbackController<OverviewProxyLis
default void startAssistant(Bundle bundle) {}
default void setAssistantOverridesRequested(int[] invocationTypes) {}
default void animateNavBarLongPress(boolean isTouchDown, boolean shrink, long durationMs) {}
- /** Set override of home button long press duration and touch slop multiplier. */
- default void setOverrideHomeButtonLongPress(long override, float slopMultiplier) {}
+ /** Set override of home button long press duration, touch slop multiplier, and haptic. */
+ default void setOverrideHomeButtonLongPress(
+ long override, float slopMultiplier, boolean haptic) {}
}
/**