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

Commit 25503259 authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed a bug where the wallpaper was shining through the background

The wallpaper was shining through the background of notifications
when music was playing even though it shouldn't have.

Bug: 27478285
Change-Id: I419fa47ef34ace72ec911fcb780919f4a7ce786b
parent 98199ae4
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.view.ViewGroup;

import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.shortcut.ShortcutKeyDispatcher;
import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.phone.KeyguardBouncer;
import com.android.systemui.statusbar.phone.ScrimController;
@@ -72,8 +71,8 @@ public class SystemUIFactory {
    }

    public ScrimController createScrimController(ScrimView scrimBehind, ScrimView scrimInFront,
            View headsUpScrim, boolean scrimSrcEnabled) {
        return new ScrimController(scrimBehind, scrimInFront, headsUpScrim, scrimSrcEnabled);
            View headsUpScrim) {
        return new ScrimController(scrimBehind, scrimInFront, headsUpScrim);
    }

    public <T> T createInstance(Class<T> classType) {
+13 −2
Original line number Diff line number Diff line
@@ -772,10 +772,21 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        ScrimView scrimInFront = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_in_front);
        View headsUpScrim = mStatusBarWindow.findViewById(R.id.heads_up_scrim);
        mScrimController = SystemUIFactory.getInstance().createScrimController(
                scrimBehind, scrimInFront, headsUpScrim, mScrimSrcModeEnabled);
                scrimBehind, scrimInFront, headsUpScrim);
        if (mScrimSrcModeEnabled) {
            Runnable runnable = new Runnable() {
                @Override
                public void run() {
                    boolean asSrc = mBackdrop.getVisibility() != View.VISIBLE;
                    mScrimController.setDrawBehindAsSrc(asSrc);
                    mStackScroller.setDrawBackgroundAsSrc(asSrc);
                }
            };
            mBackdrop.setOnVisibilityChangedRunnable(runnable);
            runnable.run();
        }
        mHeadsUpManager.addListener(mScrimController);
        mStackScroller.setScrimController(mScrimController);
        mScrimController.setBackDropView(mBackdrop);
        mStatusBarView.setScrimController(mScrimController);
        mDozeScrimController = new DozeScrimController(mScrimController, context);

+2 −19
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;

import com.android.systemui.R;
import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.NotificationData;
import com.android.systemui.statusbar.ScrimView;
@@ -75,8 +74,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
    private long mAnimationDelay;
    private Runnable mOnAnimationFinished;
    private final Interpolator mInterpolator = new DecelerateInterpolator();
    private BackDropView mBackDropView;
    private boolean mScrimSrcEnabled;
    private boolean mDozing;
    private float mDozeInFrontAlpha;
    private float mDozeBehindAlpha;
@@ -90,14 +87,12 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
    private boolean mSkipFirstFrame;
    private boolean mDontAnimateBouncerChanges;

    public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim,
            boolean scrimSrcEnabled) {
    public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim) {
        mScrimBehind = scrimBehind;
        mScrimInFront = scrimInFront;
        mHeadsUpScrim = headsUpScrim;
        final Context context = scrimBehind.getContext();
        mUnlockMethodCache = UnlockMethodCache.getInstance(context);
        mScrimSrcEnabled = scrimSrcEnabled;
        updateHeadsUpScrim(false);
    }

@@ -378,19 +373,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
        return scrim.getTag(TAG_KEY_ANIM) != null;
    }

    public void setBackDropView(BackDropView backDropView) {
        mBackDropView = backDropView;
        mBackDropView.setOnVisibilityChangedRunnable(new Runnable() {
            @Override
            public void run() {
                updateScrimBehindDrawingMode();
            }
        });
        updateScrimBehindDrawingMode();
    }

    private void updateScrimBehindDrawingMode() {
        boolean asSrc = mBackDropView.getVisibility() != View.VISIBLE && mScrimSrcEnabled;
    public void setDrawBehindAsSrc(boolean asSrc) {
        mScrimBehind.setDrawAsSrc(asSrc);
    }

+6 −1
Original line number Diff line number Diff line
@@ -324,6 +324,7 @@ public class NotificationStackScrollLayout extends ViewGroup
            }
        }
    };
    private PorterDuffXfermode mSrcMode = new PorterDuffXfermode(PorterDuff.Mode.SRC);

    public NotificationStackScrollLayout(Context context) {
        this(context, null);
@@ -359,7 +360,6 @@ public class NotificationStackScrollLayout extends ViewGroup
            mDebugPaint.setStyle(Paint.Style.STROKE);
        }
        mFalsingManager = FalsingManager.getInstance(context);
        mBackgroundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
    }

    @Override
@@ -427,6 +427,11 @@ public class NotificationStackScrollLayout extends ViewGroup
                R.dimen.min_top_overscroll_to_qs);
    }

    public void setDrawBackgroundAsSrc(boolean asSrc) {
        mBackgroundPaint.setXfermode(asSrc ? mSrcMode : null);
        invalidate();
    }

    private void notifyHeightChangeListener(ExpandableView view) {
        if (mOnHeightChangedListener != null) {
            mOnHeightChangedListener.onHeightChanged(view, false /* needsAnimation */);