summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
diff options
context:
space:
mode:
authorshawnlin <shawnlin@google.com>2019-03-12 15:44:37 +0800
committershawnlin <shawnlin@google.com>2019-03-12 15:44:37 +0800
commitf603ea01213a76574572940cc6838ea32abcee22 (patch)
tree1b906197f7ff809ece03b80ae985575faad8233f /packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
parentfb462f00b4746fe0bcfaa6b8a4b4275b7a0d0b02 (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.java19
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);
}