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

Commit a5f3ba9a authored by Lyn Han's avatar Lyn Han
Browse files

Fade in quick settings when shade opens

Bug: 172289889
Test: locked/unlocked:
      - open shade, qqs fades in
      - close shade, qqs fades out

Change-Id: I5b48a450cc2da6dab8c997c9a6a395d54c2b9067
parent f65792fe
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.systemui.qs.TouchAnimator.Builder;
import com.android.systemui.qs.TouchAnimator.Listener;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.tileimpl.HeightOverrideable;
import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
@@ -54,6 +55,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    private static final String MOVE_FULL_ROWS = "sysui_qs_move_whole_rows";

    public static final float EXPANDED_TILE_DELAY = .86f;
    private static final long QQS_FADE_IN_DURATION = 200L;
    // Fade out faster than fade in to finish before QQS hides.
    private static final long QQS_FADE_OUT_DURATION = 50L;


    private final ArrayList<View> mAllViews = new ArrayList<>();
@@ -87,7 +91,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
    private HeightExpansionAnimator mOtherTilesExpandAnimator;

    private boolean mNeedsAnimatorUpdate = false;

    private boolean mToShowing;
    private boolean mOnKeyguard;

    private boolean mAllowFancy;
@@ -150,6 +154,18 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
        }
    }

    void startAlphaAnimation(boolean show) {
        if (show == mToShowing) {
            return;
        }
        mToShowing = show;
        if (show) {
            CrossFadeHelper.fadeIn(mQs.getView(), QQS_FADE_IN_DURATION, 0 /* delay */);
        } else {
            CrossFadeHelper.fadeOut(mQs.getView(), QQS_FADE_OUT_DURATION, 0 /* delay */,
                    null /* endRunnable */);
        }
    }

    /**
     * Sets whether or not the keyguard is currently being shown with a collapsed header.
+5 −0
Original line number Diff line number Diff line
@@ -92,6 +92,11 @@ public class QSContainerImpl extends FrameLayout {
        setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
    }

    @Override
    public boolean hasOverlappingRendering() {
        return false;
    }

    void onMediaVisibilityChanged(boolean qsVisible) {
        mAnimateBottomOnNextLayout = qsVisible;
    }
+7 −1
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
                    boolean sizeChanged = (oldTop - oldBottom) != (top - bottom);
                    if (sizeChanged) {
                        setQsExpansion(mLastQSExpansion, mLastQSExpansion);
                        setQsExpansion(mLastQSExpansion, mLastHeaderTranslation);
                    }
                });
    }
@@ -395,6 +395,12 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    @Override
    public void setQsExpansion(float expansion, float headerTranslation) {
        if (DEBUG) Log.d(TAG, "setQSExpansion " + expansion + " " + headerTranslation);

        if (mQSAnimator != null) {
            final boolean showQSOnLockscreen = expansion > 0;
            final boolean showQSUnlocked = headerTranslation == 0;
            mQSAnimator.startAlphaAnimation(showQSOnLockscreen || showQSUnlocked);
        }
        mContainer.setExpansion(expansion);
        final float translationScaleY = expansion - 1;
        boolean onKeyguardAndExpanded = isKeyguardShowing() && !mShowCollapsedOnKeyguard;