Merge "Move vibration haptic from down event to the first move expanding shade." into tm-qpr-dev am: bc3406f638
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19970185 Change-Id: I6b799e8fd42554214784f08d7a82423661d0ff71 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2230,7 +2230,8 @@ public final class NotificationPanelViewController extends PanelViewController {
|
|||||||
if (cancel) {
|
if (cancel) {
|
||||||
collapse(false /* delayed */, 1.0f /* speedUpFactor */);
|
collapse(false /* delayed */, 1.0f /* speedUpFactor */);
|
||||||
} else {
|
} else {
|
||||||
maybeVibrateOnOpening();
|
// Window never will receive touch events that typically trigger haptic on open.
|
||||||
|
maybeVibrateOnOpening(false /* openingWithTouch */);
|
||||||
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
|
fling(velocity > 1f ? 1000f * velocity : 0, true /* expand */);
|
||||||
}
|
}
|
||||||
onTrackingStopped(false);
|
onTrackingStopped(false);
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ public abstract class PanelViewController {
|
|||||||
private float mMinExpandHeight;
|
private float mMinExpandHeight;
|
||||||
private boolean mPanelUpdateWhenAnimatorEnds;
|
private boolean mPanelUpdateWhenAnimatorEnds;
|
||||||
private final boolean mVibrateOnOpening;
|
private final boolean mVibrateOnOpening;
|
||||||
|
private boolean mHasVibratedOnOpen = false;
|
||||||
protected boolean mIsLaunchAnimationRunning;
|
protected boolean mIsLaunchAnimationRunning;
|
||||||
private int mFixedDuration = NO_FIXED_DURATION;
|
private int mFixedDuration = NO_FIXED_DURATION;
|
||||||
protected float mOverExpansion;
|
protected float mOverExpansion;
|
||||||
@@ -353,8 +354,8 @@ public abstract class PanelViewController {
|
|||||||
|
|
||||||
private void startOpening(MotionEvent event) {
|
private void startOpening(MotionEvent event) {
|
||||||
updatePanelExpansionAndVisibility();
|
updatePanelExpansionAndVisibility();
|
||||||
maybeVibrateOnOpening();
|
// Reset at start so haptic can be triggered as soon as panel starts to open.
|
||||||
|
mHasVibratedOnOpen = false;
|
||||||
//TODO: keyguard opens QS a different way; log that too?
|
//TODO: keyguard opens QS a different way; log that too?
|
||||||
|
|
||||||
// Log the position of the swipe that opened the panel
|
// Log the position of the swipe that opened the panel
|
||||||
@@ -368,9 +369,18 @@ public abstract class PanelViewController {
|
|||||||
.log(LockscreenUiEvent.LOCKSCREEN_UNLOCKED_NOTIFICATION_PANEL_EXPAND);
|
.log(LockscreenUiEvent.LOCKSCREEN_UNLOCKED_NOTIFICATION_PANEL_EXPAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void maybeVibrateOnOpening() {
|
/**
|
||||||
|
* Maybe vibrate as panel is opened.
|
||||||
|
*
|
||||||
|
* @param openingWithTouch Whether the panel is being opened with touch. If the panel is instead
|
||||||
|
* being opened programmatically (such as by the open panel gesture), we always play haptic.
|
||||||
|
*/
|
||||||
|
protected void maybeVibrateOnOpening(boolean openingWithTouch) {
|
||||||
if (mVibrateOnOpening) {
|
if (mVibrateOnOpening) {
|
||||||
mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK);
|
if (!openingWithTouch || !mHasVibratedOnOpen) {
|
||||||
|
mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK);
|
||||||
|
mHasVibratedOnOpen = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1371,6 +1381,9 @@ public abstract class PanelViewController {
|
|||||||
break;
|
break;
|
||||||
case MotionEvent.ACTION_MOVE:
|
case MotionEvent.ACTION_MOVE:
|
||||||
addMovement(event);
|
addMovement(event);
|
||||||
|
if (!isFullyCollapsed()) {
|
||||||
|
maybeVibrateOnOpening(true /* openingWithTouch */);
|
||||||
|
}
|
||||||
float h = y - mInitialExpandY;
|
float h = y - mInitialExpandY;
|
||||||
|
|
||||||
// If the panel was collapsed when touching, we only need to check for the
|
// If the panel was collapsed when touching, we only need to check for the
|
||||||
|
|||||||
Reference in New Issue
Block a user