private float mMaxShelfEnd;
private int mRelativeOffset;
private boolean mInteractive;
+ private float mOpenedAmount;
+ private boolean mNoAnimationsInThisFrame;
private boolean mAnimationsEnabled = true;
public NotificationShelf(Context context, AttributeSet attrs) {
} else {
// We take the clamped position instead
transitionAmount = clampedAmount;
- iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount;
+ iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount
+ && !mNoAnimationsInThisFrame;
}
iconState.iconAppearAmount = !USE_ANIMATIONS_WHEN_OPENING
|| iconState.useFullTransitionAmount
}
private void setOpenedAmount(float openedAmount) {
+ mNoAnimationsInThisFrame = openedAmount == 1.0f && mOpenedAmount == 0.0f;
+ mOpenedAmount = openedAmount;
if (!mAmbientState.isPanelFullWidth()) {
// We don't do a transformation at all, lets just assume we are fully opened
openedAmount = 1.0f;