mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-02 08:56:55 +00:00
Have one app open animation properties for both cold/start app launch.
If cold start, shell draws icon. If warm start, launcher draws the icon. In both cases, the app window scale/crop/position is the same. This helps the case where shell does not notify launcher whether the preview window is drawn before launcher starts the animation. Bug: 177264697 Test: manual, cold/warm app launches Change-Id: I88bff607f68042ebc8230bd9fbaf983fe1f0afac
This commit is contained in:
@@ -566,7 +566,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
|
||||
// Set the crop here so we can calculate the corner radius below.
|
||||
crop.set(left, top, right, bottom);
|
||||
|
||||
RectF targetBounds = new RectF(windowTargetBounds);
|
||||
RectF floatingIconBounds = new RectF();
|
||||
RectF tmpRectF = new RectF();
|
||||
Point tmpPos = new Point();
|
||||
@@ -655,12 +654,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
|
||||
tmpRectF.offset(dragLayerBounds[0], dragLayerBounds[1]);
|
||||
tmpRectF.offset(mDx.value, mDy.value);
|
||||
Utilities.scaleRectFAboutCenter(tmpRectF, mIconScaleToFitScreen.value);
|
||||
float windowTransX0 = tmpRectF.left - offsetX;
|
||||
float windowTransY0 = tmpRectF.top - offsetY;
|
||||
if (hasSplashScreen) {
|
||||
windowTransX0 -= crop.left * scale;
|
||||
windowTransY0 -= crop.top * scale;
|
||||
}
|
||||
float windowTransX0 = tmpRectF.left - offsetX - crop.left * scale;
|
||||
float windowTransY0 = tmpRectF.top - offsetY - crop.top * scale;
|
||||
|
||||
// Calculate the icon position.
|
||||
floatingIconBounds.set(launcherIconBounds);
|
||||
@@ -1213,25 +1208,16 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
|
||||
alphaDuration = useUpwardAnimation ? APP_LAUNCH_ALPHA_DURATION
|
||||
: APP_LAUNCH_ALPHA_DOWN_DURATION;
|
||||
|
||||
if (hasSplashScreen) {
|
||||
iconAlphaStart = 0;
|
||||
iconAlphaStart = hasSplashScreen ? 0 : 1f;
|
||||
|
||||
// TOOD: Share value from shell when available.
|
||||
final float windowIconSize = Utilities.pxFromSp(108, r.getDisplayMetrics());
|
||||
// TOOD: Share value from shell when available.
|
||||
final float windowIconSize = Utilities.pxFromSp(108, r.getDisplayMetrics());
|
||||
|
||||
cropCenterXStart = windowTargetBounds.centerX();
|
||||
cropCenterYStart = windowTargetBounds.centerY();
|
||||
cropCenterXStart = windowTargetBounds.centerX();
|
||||
cropCenterYStart = windowTargetBounds.centerY();
|
||||
|
||||
cropWidthStart = (int) windowIconSize;
|
||||
cropHeightStart = (int) windowIconSize;
|
||||
} else {
|
||||
iconAlphaStart = 1;
|
||||
|
||||
cropWidthStart = cropHeightStart =
|
||||
Math.min(windowTargetBounds.width(), windowTargetBounds.height());
|
||||
cropCenterXStart = cropCenterYStart =
|
||||
Math.min(windowTargetBounds.centerX(), windowTargetBounds.centerY());
|
||||
}
|
||||
cropWidthStart = (int) windowIconSize;
|
||||
cropHeightStart = (int) windowIconSize;
|
||||
|
||||
cropWidthEnd = windowTargetBounds.width();
|
||||
cropHeightEnd = windowTargetBounds.height();
|
||||
|
||||
Reference in New Issue
Block a user