Merge "Fix app open animation in landscape." into ub-launcher3-qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-30 19:16:34 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 7 deletions
@@ -422,10 +422,9 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans
// Scale the app icon to take up the entire screen. This simplifies the math when
// animating the app window position / scale.
float maxScaleX = windowTargetBounds.width() / (float) bounds.width();
// We use windowTargetBounds.width for scaleY too since we start off the animation where the
// window is clipped to a square.
float maxScaleY = windowTargetBounds.width() / (float) bounds.height();
float smallestSize = Math.min(windowTargetBounds.height(), windowTargetBounds.width());
float maxScaleX = smallestSize / (float) bounds.width();
float maxScaleY = smallestSize / (float) bounds.height();
float scale = Math.max(maxScaleX, maxScaleY);
float startScale = 1f;
if (v instanceof BubbleTextView && !(v.getParent() instanceof DeepShortcutView)) {
@@ -78,6 +78,7 @@ public class FloatingIconView extends View implements Animator.AnimatorListener,
private final int mBlurSizeOutline;
private boolean mIsVerticalBarLayout = false;
private boolean mIsAdaptiveIcon = false;
private @Nullable Drawable mForeground;
@@ -273,7 +274,7 @@ public class FloatingIconView extends View implements Animator.AnimatorListener,
}
float aspectRatio = launcher.getDeviceProfile().aspectRatio;
if (launcher.getDeviceProfile().isVerticalBarLayout()) {
if (mIsVerticalBarLayout) {
lp.width = (int) Math.max(lp.width, lp.height * aspectRatio);
} else {
lp.height = (int) Math.max(lp.height, lp.width * aspectRatio);
@@ -318,8 +319,13 @@ public class FloatingIconView extends View implements Animator.AnimatorListener,
mBgDrawableBounds.set(mFinalDrawableBounds);
Utilities.scaleRectAboutCenter(mBgDrawableBounds, scale);
// Since the drawable is at the top of the view, we need to offset to keep it centered.
mBgDrawableBounds.offsetTo(mBgDrawableBounds.left,
(int) (mFinalDrawableBounds.top * scale));
if (mIsVerticalBarLayout) {
mBgDrawableBounds.offsetTo((int) (mFinalDrawableBounds.left * scale),
mBgDrawableBounds.top);
} else {
mBgDrawableBounds.offsetTo(mBgDrawableBounds.left,
(int) (mFinalDrawableBounds.top * scale));
}
mBackground.setBounds(mBgDrawableBounds);
}
@@ -410,6 +416,7 @@ public class FloatingIconView extends View implements Animator.AnimatorListener,
recycle.recycle();
}
FloatingIconView view = recycle != null ? recycle : new FloatingIconView(launcher);
view.mIsVerticalBarLayout = launcher.getDeviceProfile().isVerticalBarLayout();
// Match the position of the original view.
view.matchPositionOf(launcher, originalView, positionOut);