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

Commit 07304f52 authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed a flashing when the affordances were launched

Because we can't draw it as source in that case.

Change-Id: I14039959a5fedbc57358e2e343a3d0d185dcec17
Fixes: 28735933
parent b5d6687c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.view.WindowInsets;
import android.view.accessibility.AccessibilityEvent;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.android.internal.logging.MetricsLogger;
import com.android.keyguard.KeyguardStatusView;
import com.android.systemui.AutoReinflateContainer;
@@ -2291,6 +2292,12 @@ public class NotificationPanelView extends PanelView implements
        setLaunchingAffordance(false);
    }

    @Override
    public void setAlpha(float alpha) {
        super.setAlpha(alpha);
        mNotificationStackScroller.setParentFadingOut(alpha != 1.0f);
    }

    /**
     * Set whether we are currently launching an affordance. This is currently only set when
     * launched via a camera gesture.
+1 −0
Original line number Diff line number Diff line
@@ -3864,6 +3864,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                mScrimController.forceHideScrims(true /* hide */);
                updateMediaMetaData(false, true);
                mNotificationPanel.setAlpha(1);
                mStackScroller.setParentFadingOut(true);
                mNotificationPanel.animate()
                        .alpha(0)
                        .setStartDelay(FADE_KEYGUARD_START_DELAY)
+2 −2
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ public class BrightnessMirrorController {

    public void showMirror() {
        mBrightnessMirror.setVisibility(View.VISIBLE);
        mStackScroller.setFadedOut(true);
        mStackScroller.setFadingOut(true);
        mScrimBehind.animateViewAlpha(0.0f, TRANSITION_DURATION_OUT, Interpolators.ALPHA_OUT);
        outAnimation(mNotificationPanel.animate())
                .withLayer();
@@ -67,7 +67,7 @@ public class BrightnessMirrorController {
                    @Override
                    public void run() {
                        mBrightnessMirror.setVisibility(View.INVISIBLE);
                        mStackScroller.setFadedOut(false);
                        mStackScroller.setFadingOut(false);
                    }
                });
    }
+26 −13
Original line number Diff line number Diff line
@@ -333,7 +333,8 @@ public class NotificationStackScrollLayout extends ViewGroup
    private PorterDuffXfermode mSrcMode = new PorterDuffXfermode(PorterDuff.Mode.SRC);
    private boolean mPulsing;
    private boolean mDrawBackgroundAsSrc;
    private boolean mFadedOut;
    private boolean mFadingOut;
    private boolean mParentFadingOut;
    private boolean mGroupExpandedForMeasure;
    private View mForcedScroll;
    private float mBackgroundFadeAmount = 1.0f;
@@ -470,7 +471,8 @@ public class NotificationStackScrollLayout extends ViewGroup
    }

    private void updateSrcDrawing() {
        mBackgroundPaint.setXfermode(mDrawBackgroundAsSrc && !mFadedOut ? mSrcMode : null);
        mBackgroundPaint.setXfermode(mDrawBackgroundAsSrc && (!mFadingOut && !mParentFadingOut)
                ? mSrcMode : null);
        invalidate();
    }

@@ -1871,7 +1873,7 @@ public class NotificationStackScrollLayout extends ViewGroup
    }

    private void applyCurrentBackgroundBounds() {
        if (!mFadedOut) {
        if (!mFadingOut) {
            mScrimController.setExcludedBackgroundArea(mCurrentBounds);
        }
        invalidate();
@@ -3624,22 +3626,33 @@ public class NotificationStackScrollLayout extends ViewGroup
        updateNotificationAnimationStates();
    }

    public void setFadedOut(boolean fadingOut) {
        if (fadingOut != mFadedOut) {
            mFadedOut = fadingOut;
            if (fadingOut) {
    public void setFadingOut(boolean fadingOut) {
        if (fadingOut != mFadingOut) {
            mFadingOut = fadingOut;
            updateFadingState();
        }
    }

    public void setParentFadingOut(boolean fadingOut) {
        if (fadingOut != mParentFadingOut) {
            mParentFadingOut = fadingOut;
            updateFadingState();
        }
    }

    private void updateFadingState() {
        if (mFadingOut || mParentFadingOut || mAmbientState.isDark()) {
            mScrimController.setExcludedBackgroundArea(null);
        } else {
            applyCurrentBackgroundBounds();
        }
        updateSrcDrawing();
    }
    }

    @Override
    public void setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha) {
        super.setAlpha(alpha);
        setFadedOut(alpha != 1.0f);
        setFadingOut(alpha != 1.0f);
    }

    /**