Loading packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +0 −2 Original line number Diff line number Diff line Loading @@ -23,10 +23,8 @@ import android.graphics.drawable.Drawable; import android.service.notification.StatusBarNotification; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; import android.view.accessibility.AccessibilityEvent; import android.widget.ImageView; import com.android.systemui.R; Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java +40 −2 Original line number Diff line number Diff line Loading @@ -27,11 +27,11 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewTreeObserver; import android.view.animation.Interpolator; import android.view.animation.LinearInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; import com.android.systemui.R; /** Loading Loading @@ -60,6 +60,16 @@ public class NotificationContentView extends FrameLayout { private boolean mDark; private final Paint mFadePaint = new Paint(); private boolean mAnimate; private ViewTreeObserver.OnPreDrawListener mEnableAnimationPredrawListener = new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { mAnimate = true; getViewTreeObserver().removeOnPreDrawListener(this); return true; } }; public NotificationContentView(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -73,6 +83,12 @@ public class NotificationContentView extends FrameLayout { updateClipping(); } @Override protected void onFinishInflate() { super.onFinishInflate(); updateVisibility(); } public void reset() { if (mContractedChild != null) { mContractedChild.animate().cancel(); Loading Loading @@ -117,9 +133,31 @@ public class NotificationContentView extends FrameLayout { selectLayout(false /* animate */, true /* force */); } @Override protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); updateVisibility(); } private void updateVisibility() { setVisible(isShown()); } private void setVisible(final boolean isVisible) { if (isVisible) { // We only animate if we are drawn at least once, otherwise the view might animate when // it's shown the first time getViewTreeObserver().addOnPreDrawListener(mEnableAnimationPredrawListener); } else { getViewTreeObserver().removeOnPreDrawListener(mEnableAnimationPredrawListener); mAnimate = false; } } public void setActualHeight(int actualHeight) { mActualHeight = actualHeight; selectLayout(true /* animate */, false /* force */); selectLayout(mAnimate /* animate */, false /* force */); updateClipping(); } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +0 −2 Original line number Diff line number Diff line Loading @@ -23,10 +23,8 @@ import android.graphics.drawable.Drawable; import android.service.notification.StatusBarNotification; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; import android.view.accessibility.AccessibilityEvent; import android.widget.ImageView; import com.android.systemui.R; Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java +40 −2 Original line number Diff line number Diff line Loading @@ -27,11 +27,11 @@ import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewTreeObserver; import android.view.animation.Interpolator; import android.view.animation.LinearInterpolator; import android.widget.FrameLayout; import android.widget.ImageView; import com.android.systemui.R; /** Loading Loading @@ -60,6 +60,16 @@ public class NotificationContentView extends FrameLayout { private boolean mDark; private final Paint mFadePaint = new Paint(); private boolean mAnimate; private ViewTreeObserver.OnPreDrawListener mEnableAnimationPredrawListener = new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { mAnimate = true; getViewTreeObserver().removeOnPreDrawListener(this); return true; } }; public NotificationContentView(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -73,6 +83,12 @@ public class NotificationContentView extends FrameLayout { updateClipping(); } @Override protected void onFinishInflate() { super.onFinishInflate(); updateVisibility(); } public void reset() { if (mContractedChild != null) { mContractedChild.animate().cancel(); Loading Loading @@ -117,9 +133,31 @@ public class NotificationContentView extends FrameLayout { selectLayout(false /* animate */, true /* force */); } @Override protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); updateVisibility(); } private void updateVisibility() { setVisible(isShown()); } private void setVisible(final boolean isVisible) { if (isVisible) { // We only animate if we are drawn at least once, otherwise the view might animate when // it's shown the first time getViewTreeObserver().addOnPreDrawListener(mEnableAnimationPredrawListener); } else { getViewTreeObserver().removeOnPreDrawListener(mEnableAnimationPredrawListener); mAnimate = false; } } public void setActualHeight(int actualHeight) { mActualHeight = actualHeight; selectLayout(true /* animate */, false /* force */); selectLayout(mAnimate /* animate */, false /* force */); updateClipping(); } Loading