Volume: Defend against monkeys pulling tags too early.
Bug: 22197117
Change-Id: I0f944fbc7fd6dd5176300c4fd0fd7b79234efe2d
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogMotion.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogMotion.java
index fdf1840..2f104bd 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogMotion.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogMotion.java
@@ -126,6 +126,11 @@
return mChevron.getHeight() / 6;
}
+ private int chevronPosY() {
+ final Object tag = mChevron == null ? null : mChevron.getTag();
+ return tag == null ? 0 : (Integer) tag;
+ }
+
private void startShowAnimation() {
if (D.BUG) Log.d(TAG, "startShowAnimation");
mDialogView.animate()
@@ -139,7 +144,7 @@
if (mChevronPositionAnimator == null) return;
// reposition chevron
final float v = (Float) mChevronPositionAnimator.getAnimatedValue();
- final int posY = (Integer) mChevron.getTag();
+ final int posY = chevronPosY();
mChevron.setTranslationY(posY + v + -mDialogView.getTranslationY());
}})
.start();
@@ -212,7 +217,7 @@
@Override
public void onAnimationUpdate(ValueAnimator animation) {
mContents.setTranslationY(-mDialogView.getTranslationY());
- int posY = (Integer) mChevron.getTag();
+ final int posY = chevronPosY();
mChevron.setTranslationY(posY + -mDialogView.getTranslationY());
}
})