mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-02 08:56:55 +00:00
Merge "[Unfold transition] Hide invisible workspaces during animation" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
92c93bdda5
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user