From ddab6137e72669df7e8168b569a98fb9997c24f9 Mon Sep 17 00:00:00 2001 From: Yan Fang1 Date: Tue, 16 May 2023 20:18:34 +0800 Subject: [PATCH] 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 --- .../src/com/android/systemui/volume/VolumeDialogImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index b24a692921861..b848d2e84faf0 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -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