Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java +28 −3 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,18 @@ public abstract class StackScrollerDecorView extends ExpandableView { } } }; }; private boolean mSecondaryAnimating = false; private final Runnable mSecondaryVisibilityEndRunnable = () -> { mSecondaryAnimating = false; // If we were on screen, become GONE to avoid touches if (mSecondaryView == null) return; if (getVisibility() != View.GONE && mSecondaryView.getVisibility() != View.GONE && !mIsSecondaryVisible) { mSecondaryView.setVisibility(View.GONE); } }; public StackScrollerDecorView(Context context, AttributeSet attrs) { public StackScrollerDecorView(Context context, AttributeSet attrs) { super(context, attrs); super(context, attrs); setClipChildren(false); setClipChildren(false); Loading Loading @@ -88,9 +100,11 @@ public abstract class StackScrollerDecorView extends ExpandableView { private void setContentVisible(boolean contentVisible, boolean animate) { private void setContentVisible(boolean contentVisible, boolean animate) { if (mContentVisible != contentVisible) { if (mContentVisible != contentVisible) { mContentAnimating = animate; mContentAnimating = animate; setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable); mContentVisible = contentVisible; mContentVisible = contentVisible; } if (!mContentAnimating) { setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable); } if (!mContentAnimating) { mContentVisibilityEndRunnable.run(); mContentVisibilityEndRunnable.run(); } } } } Loading Loading @@ -136,8 +150,13 @@ public abstract class StackScrollerDecorView extends ExpandableView { */ */ public void setSecondaryVisible(boolean nowVisible, boolean animate) { public void setSecondaryVisible(boolean nowVisible, boolean animate) { if (mIsSecondaryVisible != nowVisible) { if (mIsSecondaryVisible != nowVisible) { setViewVisible(mSecondaryView, nowVisible, animate, null /* endRunnable */); mSecondaryAnimating = animate; mIsSecondaryVisible = nowVisible; mIsSecondaryVisible = nowVisible; setViewVisible(mSecondaryView, nowVisible, animate, mSecondaryVisibilityEndRunnable); } if (!mSecondaryAnimating) { mSecondaryVisibilityEndRunnable.run(); } } } } Loading Loading @@ -170,6 +189,12 @@ public abstract class StackScrollerDecorView extends ExpandableView { if (view == null) { if (view == null) { return; return; } } // Make sure we're visible so animations work if (view.getVisibility() != View.VISIBLE) { view.setVisibility(View.VISIBLE); } // cancel any previous animations // cancel any previous animations view.animate().cancel(); view.animate().cancel(); float endValue = nowVisible ? 1.0f : 0.0f; float endValue = nowVisible ? 1.0f : 0.0f; Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/row/StackScrollerDecorView.java +28 −3 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,18 @@ public abstract class StackScrollerDecorView extends ExpandableView { } } }; }; private boolean mSecondaryAnimating = false; private final Runnable mSecondaryVisibilityEndRunnable = () -> { mSecondaryAnimating = false; // If we were on screen, become GONE to avoid touches if (mSecondaryView == null) return; if (getVisibility() != View.GONE && mSecondaryView.getVisibility() != View.GONE && !mIsSecondaryVisible) { mSecondaryView.setVisibility(View.GONE); } }; public StackScrollerDecorView(Context context, AttributeSet attrs) { public StackScrollerDecorView(Context context, AttributeSet attrs) { super(context, attrs); super(context, attrs); setClipChildren(false); setClipChildren(false); Loading Loading @@ -88,9 +100,11 @@ public abstract class StackScrollerDecorView extends ExpandableView { private void setContentVisible(boolean contentVisible, boolean animate) { private void setContentVisible(boolean contentVisible, boolean animate) { if (mContentVisible != contentVisible) { if (mContentVisible != contentVisible) { mContentAnimating = animate; mContentAnimating = animate; setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable); mContentVisible = contentVisible; mContentVisible = contentVisible; } if (!mContentAnimating) { setViewVisible(mContent, contentVisible, animate, mContentVisibilityEndRunnable); } if (!mContentAnimating) { mContentVisibilityEndRunnable.run(); mContentVisibilityEndRunnable.run(); } } } } Loading Loading @@ -136,8 +150,13 @@ public abstract class StackScrollerDecorView extends ExpandableView { */ */ public void setSecondaryVisible(boolean nowVisible, boolean animate) { public void setSecondaryVisible(boolean nowVisible, boolean animate) { if (mIsSecondaryVisible != nowVisible) { if (mIsSecondaryVisible != nowVisible) { setViewVisible(mSecondaryView, nowVisible, animate, null /* endRunnable */); mSecondaryAnimating = animate; mIsSecondaryVisible = nowVisible; mIsSecondaryVisible = nowVisible; setViewVisible(mSecondaryView, nowVisible, animate, mSecondaryVisibilityEndRunnable); } if (!mSecondaryAnimating) { mSecondaryVisibilityEndRunnable.run(); } } } } Loading Loading @@ -170,6 +189,12 @@ public abstract class StackScrollerDecorView extends ExpandableView { if (view == null) { if (view == null) { return; return; } } // Make sure we're visible so animations work if (view.getVisibility() != View.VISIBLE) { view.setVisibility(View.VISIBLE); } // cancel any previous animations // cancel any previous animations view.animate().cancel(); view.animate().cancel(); float endValue = nowVisible ? 1.0f : 0.0f; float endValue = nowVisible ? 1.0f : 0.0f; Loading