Merge "Fixed a flashing when the affordances were launched" into nyc-dev

This commit is contained in:
Selim Cinek
2016-05-23 19:26:22 +00:00
committed by Android (Google) Code Review
4 changed files with 36 additions and 15 deletions

View File

@@ -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.

View File

@@ -3865,6 +3865,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)

View File

@@ -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);
}
});
}

View File

@@ -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();
@@ -3610,22 +3612,33 @@ public class NotificationStackScrollLayout extends ViewGroup
updateNotificationAnimationStates();
}
public void setFadedOut(boolean fadingOut) {
if (fadingOut != mFadedOut) {
mFadedOut = fadingOut;
if (fadingOut) {
mScrimController.setExcludedBackgroundArea(null);
} else {
applyCurrentBackgroundBounds();
}
updateSrcDrawing();
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);
}
/**