Add listener once for volume row animation

volume UI stuck when press volume up/down for long time
add listener for volume row animation everytime volume key,
and cause listener size too large.
only add listener once.

Bug: 279696149
Test: manual testing with adjusting volume by remote
(cherry picked from https://android-review.googlesource.com/q/commit:ac24e6276ccbe2cc937df88a8c15208ce23c1ade)
Merged-In: I738c07fb9a3a804b4864e246ac986460ee1d0568
Change-Id: I738c07fb9a3a804b4864e246ac986460ee1d0568
This commit is contained in:
Yan Fang1
2023-05-16 20:18:34 +08:00
committed by Cherrypicker Worker
parent e6ce51f316
commit ddab6137e7

View File

@@ -2006,14 +2006,14 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
if (row.anim == null) {
row.anim = ObjectAnimator.ofInt(row.slider, "progress", progress, newProgress);
row.anim.setInterpolator(new DecelerateInterpolator());
row.anim.addListener(
getJankListener(row.view, TYPE_UPDATE, UPDATE_ANIMATION_DURATION));
} else {
row.anim.cancel();
row.anim.setIntValues(progress, newProgress);
}
row.animTargetProgress = newProgress;
row.anim.setDuration(UPDATE_ANIMATION_DURATION);
row.anim.addListener(
getJankListener(row.view, TYPE_UPDATE, UPDATE_ANIMATION_DURATION));
row.anim.start();
} else {
// update slider directly to clamped value