Merge "Fix app open animation in landscape." into ub-launcher3-qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2e6f3c7324
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user