Skip to content

Commit e982d83

Browse files
Jeff BrownAndroid (Google) Code Review
authored andcommitted
Merge "Track status bar fling velocity using screen coords. Bug: 5210198"
2 parents 125b73e + 911fe30 commit e982d83

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,11 +1491,11 @@ boolean interceptTouchEvent(MotionEvent event) {
14911491
final int edgeBorder = mEdgeBorder;
14921492
if (x >= edgeBorder && x < mDisplayMetrics.widthPixels - edgeBorder) {
14931493
prepareTracking(y, !mExpanded);// opening if we're not already fully visible
1494-
mVelocityTracker.addMovement(event);
1494+
trackMovement(event);
14951495
}
14961496
}
14971497
} else if (mTracking) {
1498-
mVelocityTracker.addMovement(event);
1498+
trackMovement(event);
14991499
final int minY = statusBarSize + mCloseView.getHeight();
15001500
if (action == MotionEvent.ACTION_MOVE) {
15011501
int y = (int)event.getRawY();
@@ -1540,6 +1540,16 @@ boolean interceptTouchEvent(MotionEvent event) {
15401540
return false;
15411541
}
15421542

1543+
private void trackMovement(MotionEvent event) {
1544+
// Add movement to velocity tracker using raw screen X and Y coordinates instead
1545+
// of window coordinates because the window frame may be moving at the same time.
1546+
float deltaX = event.getRawX() - event.getX();
1547+
float deltaY = event.getRawY() - event.getY();
1548+
event.offsetLocation(deltaX, deltaY);
1549+
mVelocityTracker.addMovement(event);
1550+
event.offsetLocation(-deltaX, -deltaY);
1551+
}
1552+
15431553
@Override // CommandQueue
15441554
public void setSystemUiVisibility(int vis) {
15451555
final int old = mSystemUiVisibility;

0 commit comments

Comments
 (0)