Merge "Fix bug where app icons are clipped when transitioning from app to home." into ub-launcher3-qt-r1-dev

This commit is contained in:
TreeHugger Robot
2019-07-15 20:06:06 +00:00
committed by Android (Google) Code Review
2 changed files with 41 additions and 4 deletions
@@ -16,6 +16,8 @@
package com.android.quickstep.util;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.ViewGroup;
@@ -29,6 +31,7 @@ import com.android.launcher3.LauncherState;
import com.android.launcher3.LauncherStateManager.AnimationConfig;
import com.android.launcher3.R;
import com.android.launcher3.ShortcutAndWidgetContainer;
import com.android.launcher3.Workspace;
import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.PropertySetter;
import com.android.launcher3.anim.SpringObjectAnimator;
@@ -79,9 +82,19 @@ public class StaggeredWorkspaceAnim {
.getDimensionPixelSize(R.dimen.swipe_up_max_workspace_trans_y);
DeviceProfile grid = launcher.getDeviceProfile();
ShortcutAndWidgetContainer currentPage = ((CellLayout) launcher.getWorkspace()
.getChildAt(launcher.getWorkspace().getCurrentPage()))
.getShortcutsAndWidgets();
Workspace workspace = launcher.getWorkspace();
CellLayout cellLayout = (CellLayout) workspace.getChildAt(workspace.getCurrentPage());
ShortcutAndWidgetContainer currentPage = cellLayout.getShortcutsAndWidgets();
boolean workspaceClipChildren = workspace.getClipChildren();
boolean workspaceClipToPadding = workspace.getClipToPadding();
boolean cellLayoutClipChildren = cellLayout.getClipChildren();
boolean cellLayoutClipToPadding = cellLayout.getClipToPadding();
workspace.setClipChildren(false);
workspace.setClipToPadding(false);
cellLayout.setClipChildren(false);
cellLayout.setClipToPadding(false);
// Hotseat and QSB takes up two additional rows.
int totalRows = grid.inv.numRows + (grid.isVerticalBarLayout() ? 0 : 2);
@@ -111,6 +124,27 @@ public class StaggeredWorkspaceAnim {
addWorkspaceScrimAnimationForState(launcher, BACKGROUND_APP, 0);
addWorkspaceScrimAnimationForState(launcher, NORMAL, ALPHA_DURATION_MS);
AnimatorListener resetClipListener = new AnimatorListenerAdapter() {
int numAnimations = mAnimators.size();
@Override
public void onAnimationEnd(Animator animation) {
numAnimations--;
if (numAnimations > 0) {
return;
}
workspace.setClipChildren(workspaceClipChildren);
workspace.setClipToPadding(workspaceClipToPadding);
cellLayout.setClipChildren(cellLayoutClipChildren);
cellLayout.setClipToPadding(cellLayoutClipToPadding);
}
};
for (Animator a : mAnimators) {
a.addListener(resetClipListener);
}
}
/**
@@ -96,7 +96,10 @@ public class SpringObjectAnimator<T> extends ValueAnimator {
}
});
mSpring.addUpdateListener((animation, value, velocity) -> mSpringEnded = false);
mSpring.addUpdateListener((animation, value, velocity) -> {
mSpringEnded = false;
mEnded = false;
});
mSpring.addEndListener((animation, canceled, value, velocity) -> {
mSpringEnded = true;
tryEnding();