OSDN Git Service

Fixing two small regressions in stack layout.
authorWinson <winsonc@google.com>
Wed, 25 Nov 2015 01:50:17 +0000 (17:50 -0800)
committerWinson Chung <winsonc@google.com>
Wed, 25 Nov 2015 01:59:00 +0000 (01:59 +0000)
- Fixed issue with max scroll position being placed beyond the max
  scroll if the task height is larger than the stack height.
- Fixed issue with single task offsets being calculated incorrectly

Change-Id: I3cb1ecf2c13de7196bd68cd4f9d9f4f4736ed3ce

packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java

index f8f0ea1..5d091b1 100644 (file)
@@ -316,6 +316,7 @@ public class TaskStackLayoutAlgorithm {
             Log.d(TAG, "\tmFreeformRect: " + mFreeformRect);
             Log.d(TAG, "\tmFreeformStackRect: " + mFreeformStackRect);
             Log.d(TAG, "\tmStackRect: " + mStackRect);
+            Log.d(TAG, "\tmCurrentStackRect: " + mCurrentStackRect);
             Log.d(TAG, "\tmTaskRect: " + mTaskRect);
             Log.d(TAG, "\tmSystemInsets: " + mSystemInsets);
         }
@@ -375,7 +376,7 @@ public class TaskStackLayoutAlgorithm {
                 float normX = mUnfocusedCurveInterpolator.getX(bottomOffsetPct);
                 mMinScrollP = 0;
                 mMaxScrollP = Math.max(mMinScrollP,
-                        (mNumStackTasks - 1) - mUnfocusedRange.getAbsoluteX(normX));
+                        (mNumStackTasks - 1) - Math.max(0, mUnfocusedRange.getAbsoluteX(normX)));
             }
         }
 
@@ -570,7 +571,7 @@ public class TaskStackLayoutAlgorithm {
             p = (mMinScrollP - stackScroll) / mNumStackTasks;
             int centerYOffset = (mCurrentStackRect.top - mTaskRect.top) +
                     (mCurrentStackRect.height() - mTaskRect.height()) / 2;
-            y = (int) (centerYOffset + (p * mCurrentStackRect.height()));
+            y = centerYOffset + getYForDeltaP(p, 0);
             z = mMaxTranslationZ;
             relP = p;