diff options
| author | 2017-02-10 12:54:40 -0800 | |
|---|---|---|
| committer | 2017-02-10 14:42:40 -0800 | |
| commit | 551e80c34fc3dc7154a9637cf0cbe38017ebfa3a (patch) | |
| tree | 5cc53a866e9cf4e8cb45344d6ed83154f7f9620a | |
| parent | 0f2c853889f382d5ea321028b5bd40dd74db25a3 (diff) | |
2D Recents: Fix a glitch during task relayout after a dismiss
This delays the resizing of the focus frame until all task views
relayout animations have ended.
Bug: 35258018
Test: Took before/after screencasts on local sw600dp device
Change-Id: Ifbf8932f4141bf90a3dfef20b2938d6801383706
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java | 18 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java | 1 | 
2 files changed, 13 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index 9bc1ca56a513..3c5a14149d65 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -20,6 +20,8 @@ import static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID;  import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID;  import static android.app.ActivityManager.StackId.INVALID_STACK_ID; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter;  import android.animation.ObjectAnimator;  import android.animation.ValueAnimator;  import android.annotation.IntDef; @@ -1496,11 +1498,6 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal          // Remove the task from the ignored set          removeIgnoreTask(removedTask); -        // Resize the grid layout task view focus frame -        if (mTaskViewFocusFrame != null) { -            mTaskViewFocusFrame.resize(); -        } -          // If requested, relayout with the given animation          if (animation != null) {              updateLayoutAlgorithm(true /* boundScroll */); @@ -1838,6 +1835,17 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal          announceForAccessibility(getContext().getString(                  R.string.accessibility_recents_item_dismissed, event.task.title)); +        if (useGridLayout() && event.animation != null) { +            event.animation.setListener(new AnimatorListenerAdapter() { +                public void onAnimationEnd(Animator animator) { +                    if (mTaskViewFocusFrame != null) { +                        // Resize the grid layout task view focus frame +                        mTaskViewFocusFrame.resize(); +                    } +                } +            }); +        } +          // Remove the task from the stack          mStack.removeTask(event.task, event.animation, false /* fromDockGesture */);          EventBus.getDefault().send(new DeleteTaskDataEvent(event.task)); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java index 315c31448deb..94e9df0f453b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java @@ -269,7 +269,6 @@ public class TaskView extends FixedSizeFrameLayout implements Task.TaskCallbacks          return super.onInterceptTouchEvent(ev);      } -      @Override      protected void measureContents(int width, int height) {          int widthWithoutPadding = width - mPaddingLeft - mPaddingRight;  |