diff options
4 files changed, 35 insertions, 18 deletions
diff --git a/packages/SystemUI/res/layout/recents_stack_action_button.xml b/packages/SystemUI/res/layout/recents_stack_action_button.xml index 2b2ce4e53483..625e9c111672 100644 --- a/packages/SystemUI/res/layout/recents_stack_action_button.xml +++ b/packages/SystemUI/res/layout/recents_stack_action_button.xml @@ -18,7 +18,6 @@ android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="start|center_vertical" android:paddingStart="14dp" android:paddingEnd="14dp" android:paddingTop="12dp" diff --git a/packages/SystemUI/src/com/android/systemui/recents/events/ui/dragndrop/DragDropTargetChangedEvent.java b/packages/SystemUI/src/com/android/systemui/recents/events/ui/dragndrop/DragDropTargetChangedEvent.java index b85ddac62b19..216be6121f8d 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/events/ui/dragndrop/DragDropTargetChangedEvent.java +++ b/packages/SystemUI/src/com/android/systemui/recents/events/ui/dragndrop/DragDropTargetChangedEvent.java @@ -23,7 +23,7 @@ import com.android.systemui.recents.views.DropTarget; /** * This event is sent when a user drags in/out of a drop target. */ -public class DragDropTargetChangedEvent extends EventBus.Event { +public class DragDropTargetChangedEvent extends EventBus.AnimatedEvent { // The task that is currently being dragged public final Task task; diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index da2f7212cae0..9a3a41738c26 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -59,7 +59,6 @@ import com.android.systemui.recents.events.activity.HideStackActionButtonEvent; import com.android.systemui.recents.events.activity.LaunchTaskEvent; import com.android.systemui.recents.events.activity.ShowStackActionButtonEvent; import com.android.systemui.recents.events.ui.AllTaskViewsDismissedEvent; -import com.android.systemui.recents.events.ui.DeleteTaskDataEvent; import com.android.systemui.recents.events.ui.DismissAllTaskViewsEvent; import com.android.systemui.recents.events.ui.DraggingInRecentsEndedEvent; import com.android.systemui.recents.events.ui.DraggingInRecentsEvent; @@ -344,10 +343,10 @@ public class RecentsView extends FrameLayout { if (RecentsDebugFlags.Static.EnableStackActionButton) { // Measure the stack action button within the constraints of the space above the stack - Rect actionButtonRect = mTaskStackView.mLayoutAlgorithm.mStackActionButtonRect; + Rect buttonBounds = getStackActionButtonBoundsFromStackLayout(); measureChild(mStackActionButton, - MeasureSpec.makeMeasureSpec(actionButtonRect.width(), MeasureSpec.AT_MOST), - MeasureSpec.makeMeasureSpec(actionButtonRect.height(), MeasureSpec.AT_MOST)); + MeasureSpec.makeMeasureSpec(buttonBounds.width(), MeasureSpec.AT_MOST), + MeasureSpec.makeMeasureSpec(buttonBounds.height(), MeasureSpec.AT_MOST)); } setMeasuredDimension(width, height); @@ -376,16 +375,9 @@ public class RecentsView extends FrameLayout { if (RecentsDebugFlags.Static.EnableStackActionButton) { // Layout the stack action button such that its drawable is start-aligned with the // stack, vertically centered in the available space above the stack - Rect actionButtonRect = mTaskStackView.mLayoutAlgorithm.mStackActionButtonRect; - int buttonLeft = isLayoutRtl() - ? actionButtonRect.right + mStackActionButton.getPaddingStart() - - mStackActionButton.getMeasuredWidth() - : actionButtonRect.left - mStackActionButton.getPaddingStart(); - int buttonTop = actionButtonRect.top + - (actionButtonRect.height() - mStackActionButton.getMeasuredHeight()) / 2; - mStackActionButton.layout(buttonLeft, buttonTop, - buttonLeft + mStackActionButton.getMeasuredWidth(), - buttonTop + mStackActionButton.getMeasuredHeight()); + Rect buttonBounds = getStackActionButtonBoundsFromStackLayout(); + mStackActionButton.layout(buttonBounds.left, buttonBounds.top, buttonBounds.right, + buttonBounds.bottom); } if (mAwaitingFirstLayout) { @@ -479,6 +471,17 @@ public class RecentsView extends FrameLayout { false /* isDefaultDockState */, -1, true /* animateAlpha */, true /* animateBounds */); } + if (mStackActionButton != null) { + event.addPostAnimationCallback(new Runnable() { + @Override + public void run() { + // Move the clear all button to its new position + Rect buttonBounds = getStackActionButtonBoundsFromStackLayout(); + mStackActionButton.setLeftTopRightBottom(buttonBounds.left, buttonBounds.top, + buttonBounds.right, buttonBounds.bottom); + } + }); + } } public final void onBusEvent(final DragEndEvent event) { @@ -735,4 +738,19 @@ public class RecentsView extends FrameLayout { : Interpolators.ALPHA_IN); mBackgroundScrimAnimator.start(); } + + /** + * @return the bounds of the stack action button. + */ + private Rect getStackActionButtonBoundsFromStackLayout() { + Rect actionButtonRect = new Rect(mTaskStackView.mLayoutAlgorithm.mStackActionButtonRect); + int left = isLayoutRtl() + ? actionButtonRect.left - mStackActionButton.getPaddingLeft() + : actionButtonRect.right + mStackActionButton.getPaddingRight() + - mStackActionButton.getMeasuredWidth(); + int top = actionButtonRect.top + + (actionButtonRect.height() - mStackActionButton.getMeasuredHeight()) / 2; + actionButtonRect.offsetTo(left, top); + return actionButtonRect; + } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java index ddea4d98ae0e..a2f61c267f03 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java @@ -267,9 +267,9 @@ public class TaskViewHeader extends FrameLayout lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.START | Gravity.CENTER_VERTICAL); lp.setMarginStart(mHeaderBarHeight); - lp.rightMargin = mMoveTaskButton != null + lp.setMarginEnd(mMoveTaskButton != null ? 2 * mHeaderBarHeight - : mHeaderBarHeight; + : mHeaderBarHeight); title.setLayoutParams(lp); if (secondaryButton != null) { lp = new FrameLayout.LayoutParams(mHeaderBarHeight, mHeaderBarHeight, Gravity.END); |