Merge "Sharesheet - Fix scroll behavior moving past bounds" into qt-dev am: 658312b51c

am: 7e2a320d2b

Change-Id: Iafd4468c4cd1a4989463bdc1a1fe2ff2ca455e1a
This commit is contained in:
Matt Pietal 2019-04-08 09:12:37 -07:00 committed by android-build-merger
commit 4e4cda3fd8

View File

@ -73,6 +73,11 @@ public class ResolverDrawerLayout extends ViewGroup {
*/
private float mCollapseOffset;
/**
* Track fractions of pixels from drag calculations. Without this, the view offsets get
* out of sync due to frequently dropping fractions of a pixel from '(int) dy' casts.
*/
private float mDragRemainder = 0.0f;
private int mCollapsibleHeight;
private int mUncollapsibleHeight;
private int mAlwaysShowHeight;
@ -485,6 +490,16 @@ public class ResolverDrawerLayout extends ViewGroup {
mCollapsibleHeight + mUncollapsibleHeight));
if (newPos != mCollapseOffset) {
dy = newPos - mCollapseOffset;
mDragRemainder += dy - (int) dy;
if (mDragRemainder >= 1.0f) {
mDragRemainder -= 1.0f;
dy += 1.0f;
} else if (mDragRemainder <= -1.0f) {
mDragRemainder += 1.0f;
dy -= 1.0f;
}
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = getChildAt(i);