diff --git a/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java b/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java index 543ca897a2..2a8bfa269d 100644 --- a/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java +++ b/quickstep/src/com/android/quickstep/util/BaseUnfoldMoveFromCenterAnimator.java @@ -100,22 +100,34 @@ public abstract class BaseUnfoldMoveFromCenterAnimator implements TransitionProg mMoveFromCenterAnimation.registerViewForAnimation(view); } - protected void disableClipping(ViewGroup view) { + /** + * Sets clipToPadding for the view which then could be restored to the original value + * using {@link BaseUnfoldMoveFromCenterAnimator#restoreClippings} method call + * @param view view to set the property + * @param clipToPadding value of the property + */ + protected void setClipToPadding(ViewGroup view, boolean clipToPadding) { mOriginalClipToPadding.put(view, view.getClipToPadding()); - mOriginalClipChildren.put(view, view.getClipChildren()); - view.setClipToPadding(false); - view.setClipChildren(false); + view.setClipToPadding(clipToPadding); } - protected void restoreClipping(ViewGroup view) { - final Boolean originalClipToPadding = mOriginalClipToPadding.get(view); - if (originalClipToPadding != null) { - view.setClipToPadding(originalClipToPadding); - } - final Boolean originalClipChildren = mOriginalClipChildren.get(view); - if (originalClipChildren != null) { - view.setClipChildren(originalClipChildren); - } + /** + * Sets clipChildren for the view which then could be restored to the original value + * using {@link BaseUnfoldMoveFromCenterAnimator#restoreClippings} method call + * @param view view to set the property + * @param clipChildren value of the property + */ + protected void setClipChildren(ViewGroup view, boolean clipChildren) { + mOriginalClipChildren.put(view, view.getClipChildren()); + view.setClipChildren(clipChildren); + } + + /** + * Restores original clip properties after their modifications + */ + protected void restoreClippings() { + mOriginalClipToPadding.forEach(ViewGroup::setClipToPadding); + mOriginalClipChildren.forEach(ViewGroup::setClipChildren); } private class UnfoldMoveFromCenterRotationListener implements diff --git a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java index 01a997a451..70a12d6435 100644 --- a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java +++ b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterHotseatAnimator.java @@ -41,7 +41,8 @@ public class UnfoldMoveFromCenterHotseatAnimator extends BaseUnfoldMoveFromCente Hotseat hotseat = mLauncher.getHotseat(); ViewGroup hotseatIcons = hotseat.getShortcutsAndWidgets(); - disableClipping(hotseat); + setClipChildren(hotseat, false); + setClipToPadding(hotseat, false); for (int i = 0; i < hotseatIcons.getChildCount(); i++) { View child = hotseatIcons.getChildAt(i); @@ -51,7 +52,7 @@ public class UnfoldMoveFromCenterHotseatAnimator extends BaseUnfoldMoveFromCente @Override public void onTransitionFinished() { - restoreClipping(mLauncher.getHotseat()); + restoreClippings(); super.onTransitionFinished(); } } diff --git a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java index 95a4b8f2e2..7da103ee58 100644 --- a/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java +++ b/quickstep/src/com/android/quickstep/util/UnfoldMoveFromCenterWorkspaceAnimator.java @@ -47,7 +47,8 @@ public class UnfoldMoveFromCenterWorkspaceAnimator extends BaseUnfoldMoveFromCen final CellLayout cellLayout = (CellLayout) page; ShortcutAndWidgetContainer itemsContainer = cellLayout .getShortcutsAndWidgets(); - disableClipping(cellLayout); + setClipChildren(cellLayout, false); + setClipToPadding(cellLayout, false); for (int i = 0; i < itemsContainer.getChildCount(); i++) { View child = itemsContainer.getChildAt(i); @@ -55,13 +56,13 @@ public class UnfoldMoveFromCenterWorkspaceAnimator extends BaseUnfoldMoveFromCen } }); - disableClipping(workspace); + setClipChildren(workspace, false); + setClipToPadding(workspace, true); } @Override public void onTransitionFinished() { - restoreClipping(mLauncher.getWorkspace()); - mLauncher.getWorkspace().forEachVisiblePage(page -> restoreClipping((CellLayout) page)); + restoreClippings(); super.onTransitionFinished(); } }