diff options
author | shawnlin <shawnlin@google.com> | 2019-03-12 15:44:37 +0800 |
---|---|---|
committer | shawnlin <shawnlin@google.com> | 2019-03-12 15:44:37 +0800 |
commit | f603ea01213a76574572940cc6838ea32abcee22 (patch) | |
tree | 1b906197f7ff809ece03b80ae985575faad8233f /packages/SystemUI/src/com/android/systemui/BatteryMeterView.java | |
parent | fb462f00b4746fe0bcfaa6b8a4b4275b7a0d0b02 (diff) |
Fixed battery percentage not animating when showing/hiding
Add layout transition animation
Fixed: 123362236
Test: manual - turn on/off show battery percentage in settings and go to
AOD
Change-Id: Ie98434e565d23461d82729d582f8ff4e63d8ac88
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/BatteryMeterView.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/BatteryMeterView.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java index 39a584272585..62b0542bd7fe 100644 --- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java @@ -24,6 +24,8 @@ import static com.android.systemui.util.SysuiLifecycle.viewAttachLifecycle; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.animation.ArgbEvaluator; +import android.animation.LayoutTransition; +import android.animation.ObjectAnimator; import android.annotation.IntDef; import android.app.ActivityManager; import android.content.Context; @@ -141,6 +143,8 @@ public class BatteryMeterView extends LinearLayout implements addOnAttachStateChangeListener( new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS)); + setupLayoutTransition(); + mSlotBattery = context.getString( com.android.internal.R.string.status_bar_battery); mBatteryIconView = new ImageView(context); @@ -178,6 +182,21 @@ public class BatteryMeterView extends LinearLayout implements setLayerType(LAYER_TYPE_SOFTWARE, null); } + private void setupLayoutTransition() { + LayoutTransition transition = new LayoutTransition(); + transition.setDuration(200); + + ObjectAnimator appearAnimator = ObjectAnimator.ofFloat(null, "alpha", 0f, 1f); + transition.setAnimator(LayoutTransition.APPEARING, appearAnimator); + transition.setInterpolator(LayoutTransition.APPEARING, Interpolators.ALPHA_IN); + + ObjectAnimator disappearAnimator = ObjectAnimator.ofFloat(null, "alpha", 1f, 0f); + transition.setInterpolator(LayoutTransition.DISAPPEARING, Interpolators.ALPHA_OUT); + transition.setAnimator(LayoutTransition.DISAPPEARING, disappearAnimator); + + setLayoutTransition(transition); + } + public void setForceShowPercent(boolean show) { setPercentShowMode(show ? MODE_ON : MODE_DEFAULT); } |