diff options
| author | 2016-03-04 11:32:03 -0800 | |
|---|---|---|
| committer | 2016-03-04 19:33:50 +0000 | |
| commit | 8f97c83b2eec19965782edcaa9fedad43db2d06f (patch) | |
| tree | c554260ac1b3cb2babe2deb1d8dad62bd6107ce7 | |
| parent | 92e84089c42da87f4b140d5b6a5d5b9ae167fb88 (diff) | |
Use the non-override task progress for calculating the z.
- This guarantees that they won’t collide, where as the override task
progresses will as tasks animate while dragging to dismiss.
Change-Id: I25eded22c13b38428d849062c6d95893f3fff5c5
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java index b60fca8c1923..17c3eeb1a429 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackLayoutAlgorithm.java @@ -672,8 +672,9 @@ public class TaskStackLayoutAlgorithm { boolean isFrontMostTaskInGroup = task.group == null || task.group.isFrontMostTask(task); if (isFrontMostTaskInGroup) { - getStackTransform(taskProgress, mInitialScrollP, mFocusState, tmpTransform, null, - false /* ignoreSingleTaskCase */, false /* forceUpdate */); + getStackTransform(taskProgress, taskProgress, mInitialScrollP, mFocusState, + tmpTransform, null, false /* ignoreSingleTaskCase */, + false /* forceUpdate */); float screenY = tmpTransform.rect.top; boolean hasVisibleThumbnail = (prevScreenY - screenY) > taskBarHeight; if (hasVisibleThumbnail) { @@ -725,15 +726,16 @@ public class TaskStackLayoutAlgorithm { return transformOut; } else { // Return early if we have an invalid index - if (task == null || mTaskIndexMap.get(task.key.id, -1) == -1) { + int nonOverrideTaskProgress = mTaskIndexMap.get(task.key.id, -1); + if (task == null || nonOverrideTaskProgress == -1) { transformOut.reset(); return transformOut; } float taskProgress = ignoreTaskOverrides - ? mTaskIndexMap.get(task.key.id, 0) + ? nonOverrideTaskProgress : getStackScrollForTask(task); - getStackTransform(taskProgress, stackScroll, focusState, transformOut, - frontTransform, false /* ignoreSingleTaskCase */, forceUpdate); + getStackTransform(taskProgress, nonOverrideTaskProgress, stackScroll, focusState, + transformOut, frontTransform, false /* ignoreSingleTaskCase */, forceUpdate); return transformOut; } } @@ -758,9 +760,9 @@ public class TaskStackLayoutAlgorithm { * internally to ensure that we can calculate the transform for any * position in the stack. */ - public void getStackTransform(float taskProgress, float stackScroll, int focusState, - TaskViewTransform transformOut, TaskViewTransform frontTransform, - boolean ignoreSingleTaskCase, boolean forceUpdate) { + public void getStackTransform(float taskProgress, float nonOverrideTaskProgress, + float stackScroll, int focusState, TaskViewTransform transformOut, + TaskViewTransform frontTransform, boolean ignoreSingleTaskCase, boolean forceUpdate) { SystemServicesProxy ssp = Recents.getSystemServices(); // Compute the focused and unfocused offset @@ -769,6 +771,8 @@ public class TaskStackLayoutAlgorithm { mFocusedRange.offset(boundedStackScroll); float boundedScrollUnfocusedRangeX = mUnfocusedRange.getNormalizedX(taskProgress); float boundedScrollFocusedRangeX = mFocusedRange.getNormalizedX(taskProgress); + float boundedScrollUnfocusedNonOverrideRangeX = + mUnfocusedRange.getNormalizedX(nonOverrideTaskProgress); mUnfocusedRange.offset(stackScroll); mFocusedRange.offset(stackScroll); boolean unfocusedVisible = mUnfocusedRange.isInRange(taskProgress); @@ -812,7 +816,7 @@ public class TaskStackLayoutAlgorithm { y = (mStackRect.top - mTaskRect.top) + (int) Utilities.mapRange(focusState, unfocusedY, focusedY); - z = Utilities.mapRange(Utilities.clamp01(boundedScrollUnfocusedRangeX), + z = Utilities.mapRange(Utilities.clamp01(boundedScrollUnfocusedNonOverrideRangeX), mMinTranslationZ, mMaxTranslationZ); dimAlpha = Utilities.mapRange(focusState, unfocusedDim, focusedDim); viewOutlineAlpha = Utilities.mapRange(Utilities.clamp01(boundedScrollUnfocusedRangeX), @@ -952,9 +956,9 @@ public class TaskStackLayoutAlgorithm { mFocusedRange.relativeMin); float max = Utilities.mapRange(mFocusState, mUnfocusedRange.relativeMax, mFocusedRange.relativeMax); - getStackTransform(min, 0f, mFocusState, mBackOfStackTransform, null, + getStackTransform(min, min, 0f, mFocusState, mBackOfStackTransform, null, true /* ignoreSingleTaskCase */, true /* forceUpdate */); - getStackTransform(max, 0f, mFocusState, mFrontOfStackTransform, null, + getStackTransform(max, max, 0f, mFocusState, mFrontOfStackTransform, null, true /* ignoreSingleTaskCase */, true /* forceUpdate */); mBackOfStackTransform.visible = true; mFrontOfStackTransform.visible = true; |