Merge "Fixing wrong origin when launching new task from overview" into ub-launcher3-qt-dev

This commit is contained in:
Sunny Goyal
2019-06-06 00:16:29 +00:00
committed by Android (Google) Code Review
4 changed files with 34 additions and 5 deletions
@@ -121,12 +121,16 @@ public final class LauncherAppTransitionManagerImpl extends QuickstepAppTransiti
alpha.setDuration(CONTENT_ALPHA_DURATION);
alpha.setInterpolator(LINEAR);
anim.play(alpha);
overview.setFreezeViewVisibility(true);
ObjectAnimator transY = ObjectAnimator.ofFloat(overview, View.TRANSLATION_Y, trans);
transY.setInterpolator(AGGRESSIVE_EASE);
transY.setDuration(CONTENT_TRANSLATION_DURATION);
anim.play(transY);
return mLauncher.getStateManager()::reapplyState;
return () -> {
overview.setFreezeViewVisibility(false);
mLauncher.getStateManager().reapplyState();
};
}
}
@@ -227,6 +227,7 @@ public class LauncherRecentsView extends RecentsView<Launcher> implements StateL
@Override
public void onStateTransitionStart(LauncherState toState) {
setOverviewStateEnabled(toState.overviewUi);
setFreezeViewVisibility(true);
}
@Override
@@ -236,6 +237,7 @@ public class LauncherRecentsView extends RecentsView<Launcher> implements StateL
reset();
}
setOverlayEnabled(finalState == OVERVIEW);
setFreezeViewVisibility(false);
}
@Override
@@ -188,6 +188,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
private boolean mDwbToastShown;
private boolean mDisallowScrollToClearAll;
private boolean mOverlayEnabled;
private boolean mFreezeViewVisibility;
/**
* TODO: Call reloadIdNeeded in onTaskStackChanged.
@@ -1302,7 +1303,25 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
mEmptyMessagePaint.setAlpha(alphaInt);
mEmptyIcon.setAlpha(alphaInt);
setVisibility(alpha > 0 ? VISIBLE : GONE);
if (alpha > 0) {
setVisibility(VISIBLE);
} else if (!mFreezeViewVisibility) {
setVisibility(GONE);
}
}
/**
* Freezes the view visibility change. When frozen, the view will not change its visibility
* to gone due to alpha changes.
*/
public void setFreezeViewVisibility(boolean freezeViewVisibility) {
if (mFreezeViewVisibility != freezeViewVisibility) {
mFreezeViewVisibility = freezeViewVisibility;
if (!mFreezeViewVisibility) {
setVisibility(mContentAlpha > 0 ? VISIBLE : GONE);
}
}
}
@Override
@@ -124,6 +124,7 @@ public class FloatingIconView extends View implements
private boolean mIsVerticalBarLayout = false;
private boolean mIsAdaptiveIcon = false;
private boolean mIsOpening;
private @Nullable Drawable mBadge;
private @Nullable Drawable mForeground;
@@ -178,8 +179,10 @@ public class FloatingIconView extends View implements
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
getViewTreeObserver().addOnGlobalLayoutListener(this);
mLauncher.getRotationHelper().setCurrentTransitionRequest(REQUEST_LOCK);
if (!mIsOpening) {
getViewTreeObserver().addOnGlobalLayoutListener(this);
mLauncher.getRotationHelper().setCurrentTransitionRequest(REQUEST_LOCK);
}
}
@Override
@@ -326,7 +329,7 @@ public class FloatingIconView extends View implements
* - For BubbleTextView, we return the icon bounds.
*/
private float getLocationBoundsForView(View v, RectF outRect) {
boolean ignoreTransform = true;
boolean ignoreTransform = !mIsOpening;
if (v instanceof DeepShortcutView) {
v = ((DeepShortcutView) v).getBubbleText();
ignoreTransform = false;
@@ -627,6 +630,7 @@ public class FloatingIconView extends View implements
view.recycle();
view.mIsVerticalBarLayout = launcher.getDeviceProfile().isVerticalBarLayout();
view.mIsOpening = isOpening;
view.mOriginalIcon = originalView;
view.mPositionOut = positionOut;