Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54ddeb55 authored by Selim Cinek's avatar Selim Cinek Committed by android-build-merger
Browse files

Merge "Fixed the motion when expanding notification groups" into nyc-dev

am: e17595b0

* commit 'e17595b0':
  Fixed the motion when expanding notification groups
parents 7572efad e17595b0
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -535,31 +535,43 @@ public class ExpandHelper implements Gefingerpoken {
        boolean nowExpanded;
        int naturalHeight = mScaler.getNaturalHeight();
        if (wasClosed) {
            nowExpanded = (force || currentHeight > mOldHeight);
            nowExpanded = (force || currentHeight > mOldHeight && velocity >= 0);
        } else {
            nowExpanded = !force && currentHeight >= mOldHeight;
            nowExpanded = !force && (currentHeight >= mOldHeight || velocity > 0);
        }
        nowExpanded |= mNaturalHeight == mSmallSize;
        if (mScaleAnimation.isRunning()) {
            mScaleAnimation.cancel();
        }
        mCallback.setUserExpandedChild(mResizedView, nowExpanded);
        mCallback.expansionStateChanged(false);
        float targetHeight = nowExpanded ? naturalHeight : mSmallSize;
        if (targetHeight != currentHeight) {
            mScaleAnimation.setFloatValues(targetHeight);
            mScaleAnimation.setupStartValues();
            final View scaledView = mResizedView;
            final boolean expand = nowExpanded;
            mScaleAnimation.addListener(new AnimatorListenerAdapter() {
                public boolean mCancelled;

                @Override
                public void onAnimationEnd(Animator animation) {
                    if (!mCancelled) {
                        mCallback.setUserExpandedChild(scaledView, expand);
                    }
                    mCallback.setUserLockedChild(scaledView, false);
                    mScaleAnimation.removeListener(this);
                }

                @Override
                public void onAnimationCancel(Animator animation) {
                    mCancelled = true;
                }
            });
            velocity = nowExpanded == velocity >= 0 ? velocity : 0;
            mFlingAnimationUtils.apply(mScaleAnimation, currentHeight, targetHeight, velocity);
            mScaleAnimation.start();
        } else {
            mCallback.setUserExpandedChild(mResizedView, nowExpanded);
            mCallback.setUserLockedChild(mResizedView, false);
        }