Collapse shade on ACTION_CANCEL (sometimes)
As of ag/11546928, the framework emits an ACTION_CANCEL when the proximity sensor turns off the screen, not an ACTION_UP. Previously, we always expanded the shade in response to an ACTION_CANCEL. However, after this change, this caused Dialer users to end up with an expanded shade after putting the phone to their face, making it easy to face-dial their notifications. This CL changes the behavior to put the shade back to where it was when the gesture started -- either expanded or closed. Fixes: 155362798 Test: manual Change-Id: I2d11d9f03bfe1e905028a640e2eb871d32e37248
This commit is contained in:
@@ -371,12 +371,26 @@ public abstract class PanelViewController {
|
||||
float vectorVel = (float) Math.hypot(
|
||||
mVelocityTracker.getXVelocity(), mVelocityTracker.getYVelocity());
|
||||
|
||||
boolean expand = flingExpands(vel, vectorVel, x, y)
|
||||
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel;
|
||||
final boolean onKeyguard =
|
||||
mStatusBarStateController.getState() == StatusBarState.KEYGUARD;
|
||||
|
||||
final boolean expand;
|
||||
if (event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
|
||||
// If we get a cancel, put the shade back to the state it was in when the gesture
|
||||
// started
|
||||
if (onKeyguard) {
|
||||
expand = true;
|
||||
} else {
|
||||
expand = !mPanelClosedOnDown;
|
||||
}
|
||||
} else {
|
||||
expand = flingExpands(vel, vectorVel, x, y);
|
||||
}
|
||||
|
||||
mDozeLog.traceFling(expand, mTouchAboveFalsingThreshold,
|
||||
mStatusBar.isFalsingThresholdNeeded(), mStatusBar.isWakeUpComingFromTouch());
|
||||
// Log collapse gesture if on lock screen.
|
||||
if (!expand && mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
|
||||
if (!expand && onKeyguard) {
|
||||
float displayDensity = mStatusBar.getDisplayDensity();
|
||||
int heightDp = (int) Math.abs((y - mInitialTouchY) / displayDensity);
|
||||
int velocityDp = (int) Math.abs(vel / displayDensity);
|
||||
|
||||
Reference in New Issue
Block a user