Loading packages/SystemUI/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ <item>0</item> </integer-array> <bool name="config_showRsrpSignalLevelforLTE">false</bool> <bool name="config_show_battery_charging_anim">false</bool> <!-- The duration in seconds to wait before the dismiss buttons are shown. --> <integer name="recents_task_bar_dismiss_delay_seconds">1</integer> Loading packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +43 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.graphics.RectF; import android.graphics.Typeface; import android.os.BatteryManager; import android.os.Bundle; import android.os.Handler; import android.provider.Settings; import android.util.AttributeSet; import android.view.View; Loading @@ -45,7 +46,8 @@ public class BatteryMeterView extends View implements DemoMode, private static final boolean SHOW_100_PERCENT = false; private static final int FULL = 96; private static final int ADD_LEVEL = 10; private static final int ANIM_DURATION = 500; private static final float BOLT_LEVEL_THRESHOLD = 0.3f; // opaque bolt below this fraction private final int[] mColors; Loading @@ -56,6 +58,8 @@ public class BatteryMeterView extends View implements DemoMode, private float mSubpixelSmoothingRight; private final Paint mFramePaint, mBatteryPaint, mWarningTextPaint, mTextPaint, mBoltPaint; private float mTextHeight, mWarningTextHeight; private int mAnimOffset; private boolean mIsCharging; private int mHeight; private int mWidth; Loading @@ -75,6 +79,7 @@ public class BatteryMeterView extends View implements DemoMode, private BatteryController mBatteryController; private boolean mPowerSaveEnabled; private final Handler mHandler; private class BatteryTracker extends BroadcastReceiver { public static final int UNKNOWN_LEVEL = -1; Loading Loading @@ -150,6 +155,12 @@ public class BatteryMeterView extends View implements DemoMode, } BatteryTracker mTracker = new BatteryTracker(); private final Runnable mInvalidate = new Runnable() { @Override public void run() { postInvalidate(); } }; @Override public void onAttachedToWindow() { Loading Loading @@ -185,6 +196,7 @@ public class BatteryMeterView extends View implements DemoMode, public BatteryMeterView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mHandler = new Handler(); final Resources res = context.getResources(); TypedArray atts = context.obtainStyledAttributes(attrs, R.styleable.BatteryMeterView, defStyle, 0); Loading Loading @@ -297,10 +309,39 @@ public class BatteryMeterView extends View implements DemoMode, return color; } private int updateChargingAnimLevel(BatteryTracker tracker) { int curLevel = tracker.level; if (tracker.status != BatteryManager.BATTERY_STATUS_CHARGING) { if (mIsCharging) { mIsCharging = false; mAnimOffset = 0; mHandler.removeCallbacks(mInvalidate); } } else { mIsCharging = true; curLevel += mAnimOffset; if (curLevel >= FULL) { curLevel = 100; mAnimOffset = 0; } else { mAnimOffset += ADD_LEVEL; } mHandler.removeCallbacks(mInvalidate); mHandler.postDelayed(mInvalidate, ANIM_DURATION); } return curLevel; } @Override public void draw(Canvas c) { BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; final int level = tracker.level; final int level = mContext.getResources().getBoolean(R.bool.config_show_battery_charging_anim) ? updateChargingAnimLevel(tracker) : tracker.level; if (level == BatteryTracker.UNKNOWN_LEVEL) return; Loading Loading
packages/SystemUI/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ <item>0</item> </integer-array> <bool name="config_showRsrpSignalLevelforLTE">false</bool> <bool name="config_show_battery_charging_anim">false</bool> <!-- The duration in seconds to wait before the dismiss buttons are shown. --> <integer name="recents_task_bar_dismiss_delay_seconds">1</integer> Loading
packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +43 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.graphics.RectF; import android.graphics.Typeface; import android.os.BatteryManager; import android.os.Bundle; import android.os.Handler; import android.provider.Settings; import android.util.AttributeSet; import android.view.View; Loading @@ -45,7 +46,8 @@ public class BatteryMeterView extends View implements DemoMode, private static final boolean SHOW_100_PERCENT = false; private static final int FULL = 96; private static final int ADD_LEVEL = 10; private static final int ANIM_DURATION = 500; private static final float BOLT_LEVEL_THRESHOLD = 0.3f; // opaque bolt below this fraction private final int[] mColors; Loading @@ -56,6 +58,8 @@ public class BatteryMeterView extends View implements DemoMode, private float mSubpixelSmoothingRight; private final Paint mFramePaint, mBatteryPaint, mWarningTextPaint, mTextPaint, mBoltPaint; private float mTextHeight, mWarningTextHeight; private int mAnimOffset; private boolean mIsCharging; private int mHeight; private int mWidth; Loading @@ -75,6 +79,7 @@ public class BatteryMeterView extends View implements DemoMode, private BatteryController mBatteryController; private boolean mPowerSaveEnabled; private final Handler mHandler; private class BatteryTracker extends BroadcastReceiver { public static final int UNKNOWN_LEVEL = -1; Loading Loading @@ -150,6 +155,12 @@ public class BatteryMeterView extends View implements DemoMode, } BatteryTracker mTracker = new BatteryTracker(); private final Runnable mInvalidate = new Runnable() { @Override public void run() { postInvalidate(); } }; @Override public void onAttachedToWindow() { Loading Loading @@ -185,6 +196,7 @@ public class BatteryMeterView extends View implements DemoMode, public BatteryMeterView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mHandler = new Handler(); final Resources res = context.getResources(); TypedArray atts = context.obtainStyledAttributes(attrs, R.styleable.BatteryMeterView, defStyle, 0); Loading Loading @@ -297,10 +309,39 @@ public class BatteryMeterView extends View implements DemoMode, return color; } private int updateChargingAnimLevel(BatteryTracker tracker) { int curLevel = tracker.level; if (tracker.status != BatteryManager.BATTERY_STATUS_CHARGING) { if (mIsCharging) { mIsCharging = false; mAnimOffset = 0; mHandler.removeCallbacks(mInvalidate); } } else { mIsCharging = true; curLevel += mAnimOffset; if (curLevel >= FULL) { curLevel = 100; mAnimOffset = 0; } else { mAnimOffset += ADD_LEVEL; } mHandler.removeCallbacks(mInvalidate); mHandler.postDelayed(mInvalidate, ANIM_DURATION); } return curLevel; } @Override public void draw(Canvas c) { BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; final int level = tracker.level; final int level = mContext.getResources().getBoolean(R.bool.config_show_battery_charging_anim) ? updateChargingAnimLevel(tracker) : tracker.level; if (level == BatteryTracker.UNKNOWN_LEVEL) return; Loading