Loading packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +32 −29 Original line number Diff line number Diff line Loading @@ -127,6 +127,16 @@ public class BatteryMeterView extends View implements DemoMode { }); } } protected boolean shouldIndicateCharging() { if (status == BatteryManager.BATTERY_STATUS_CHARGING) { return true; } if (plugged) { return status == BatteryManager.BATTERY_STATUS_FULL; } return false; } } private final Runnable mInvalidate = new Runnable() { Loading Loading @@ -217,15 +227,16 @@ public class BatteryMeterView extends View implements DemoMode { } protected BatteryMeterDrawable createBatteryMeterDrawable(BatteryMeterMode mode) { Resources res = mContext.getResources(); switch (mode) { case BATTERY_METER_CIRCLE: return new CircleBatteryMeterDrawable(mContext); return new CircleBatteryMeterDrawable(res); case BATTERY_METER_ICON_LANDSCAPE: return new NormalBatteryMeterDrawable(mContext, true); return new NormalBatteryMeterDrawable(res, true); default: return new NormalBatteryMeterDrawable(mContext, false); return new NormalBatteryMeterDrawable(res, false); } } Loading Loading @@ -313,7 +324,8 @@ public class BatteryMeterView extends View implements DemoMode { public void draw(Canvas c) { synchronized (mLock) { if (mBatteryMeterDrawable != null) { mBatteryMeterDrawable.onDraw(c); BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; mBatteryMeterDrawable.onDraw(c, tracker); } } } Loading Loading @@ -343,7 +355,7 @@ public class BatteryMeterView extends View implements DemoMode { } protected interface BatteryMeterDrawable { void onDraw(Canvas c); void onDraw(Canvas c, BatteryTracker tracker); void onSizeChanged(int w, int h, int oldw, int oldh); void onDispose(); } Loading Loading @@ -374,13 +386,11 @@ public class BatteryMeterView extends View implements DemoMode { private final RectF mClipFrame = new RectF(); private final RectF mBoltFrame = new RectF(); public NormalBatteryMeterDrawable(Context ctx, boolean horizontal) { public NormalBatteryMeterDrawable(Resources res, boolean horizontal) { super(); mHorizontal = horizontal; mDisposed = false; Resources res = ctx.getResources(); mFramePaint = new Paint(Paint.ANTI_ALIAS_FLAG); mFramePaint.setColor(res.getColor(R.color.batterymeter_frame_color)); mFramePaint.setDither(true); Loading Loading @@ -412,10 +422,9 @@ public class BatteryMeterView extends View implements DemoMode { } @Override public void onDraw(Canvas c) { public void onDraw(Canvas c, BatteryTracker tracker) { if (mDisposed) return; BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; final int level = tracker.level; if (level == BatteryTracker.UNKNOWN_LEVEL) return; Loading Loading @@ -493,7 +502,7 @@ public class BatteryMeterView extends View implements DemoMode { c.drawRect(mFrame, mBatteryPaint); c.restore(); if (tracker.plugged) { if (tracker.shouldIndicateCharging()) { // draw the bolt final float bl = (int)(mFrame.left + mFrame.width() / (mHorizontal ? 9f : 4.5f)); final float bt = (int)(mFrame.top + mFrame.height() / (mHorizontal ? 4.5f : 6f)); Loading Loading @@ -607,12 +616,10 @@ public class BatteryMeterView extends View implements DemoMode { private final float[] mBoltPoints; private final Path mBoltPath = new Path(); public CircleBatteryMeterDrawable(Context ctx) { public CircleBatteryMeterDrawable(Resources res) { super(); mDisposed = false; Resources res = getResources(); mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mTextPaint.setColor(res.getColor(R.color.status_bar_clock_color)); Typeface font = Typeface.create("sans-serif-condensed", Typeface.NORMAL); Loading Loading @@ -641,21 +648,15 @@ public class BatteryMeterView extends View implements DemoMode { } @Override public void onDraw(Canvas c) { public void onDraw(Canvas c, BatteryTracker tracker) { if (mDisposed) return; if (mRectLeft == null) { initSizeBasedStuff(); } final int status = mTracker.status; final int level = mTracker.level; updateChargeAnim(status); boolean charging = mTracker.status == BatteryManager.BATTERY_STATUS_CHARGING; int offset = charging ? mAnimOffset : 0; drawCircle(c, status, level, offset, mTextX, mRectLeft); updateChargeAnim(tracker); drawCircle(c, tracker, mTextX, mRectLeft); } @Override Loading Loading @@ -688,9 +689,11 @@ public class BatteryMeterView extends View implements DemoMode { return R.array.batterymeter_bolt_points; } private void drawCircle(Canvas canvas, int status, int level, int animOffset, private void drawCircle(Canvas canvas, BatteryTracker tracker, float textX, RectF drawRect) { boolean unknownStatus = status == BatteryManager.BATTERY_STATUS_UNKNOWN; boolean unknownStatus = tracker.status == BatteryManager.BATTERY_STATUS_UNKNOWN; int animOffset = tracker.shouldIndicateCharging() ? mAnimOffset : 0; int level = tracker.level; Paint paint; if (unknownStatus) { Loading @@ -699,7 +702,7 @@ public class BatteryMeterView extends View implements DemoMode { } else { paint = mFrontPaint; paint.setColor(getColorForLevel(level)); if (status == BatteryManager.BATTERY_STATUS_FULL) { if (tracker.status == BatteryManager.BATTERY_STATUS_FULL) { level = 100; } } Loading @@ -714,7 +717,7 @@ public class BatteryMeterView extends View implements DemoMode { mTextPaint.setColor(paint.getColor()); canvas.drawText("?", textX, mTextY, mTextPaint); } else if (mTracker.plugged && (!mShowPercent || level == 100)) { } else if (tracker.shouldIndicateCharging() && (!mShowPercent || level == 100)) { // draw the bolt final float bl = (int)(drawRect.left + drawRect.width() / 3.2f); final float bt = (int)(drawRect.top + drawRect.height() / 4f); Loading Loading @@ -749,8 +752,8 @@ public class BatteryMeterView extends View implements DemoMode { * cares for timed callbacks to continue animation cycles * uses mInvalidate for delayed invalidate() callbacks */ private void updateChargeAnim(int status) { if (status != BatteryManager.BATTERY_STATUS_CHARGING) { private void updateChargeAnim(BatteryTracker tracker) { if (!tracker.shouldIndicateCharging()) { if (mIsAnimating) { mIsAnimating = false; mAnimOffset = 0; Loading packages/SystemUI/src/com/android/systemui/DockBatteryMeterView.java +9 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.os.BatteryManager; import android.util.AttributeSet; import android.view.View; Loading Loading @@ -137,22 +138,23 @@ public class DockBatteryMeterView extends BatteryMeterView { @Override protected BatteryMeterDrawable createBatteryMeterDrawable(BatteryMeterMode mode) { Resources res = mContext.getResources(); switch (mode) { case BATTERY_METER_CIRCLE: return new DockCircleBatteryMeterDrawable(mContext); return new DockCircleBatteryMeterDrawable(res); case BATTERY_METER_ICON_LANDSCAPE: return new DockNormalBatteryMeterDrawable(mContext, true); return new DockNormalBatteryMeterDrawable(res, true); default: return new DockNormalBatteryMeterDrawable(mContext, false); return new DockNormalBatteryMeterDrawable(res, false); } } protected class DockNormalBatteryMeterDrawable extends NormalBatteryMeterDrawable { public DockNormalBatteryMeterDrawable(Context ctx, boolean inverted) { super(ctx, inverted); public DockNormalBatteryMeterDrawable(Resources res, boolean horizontal) { super(res, horizontal); } @Override Loading @@ -164,8 +166,8 @@ public class DockBatteryMeterView extends BatteryMeterView { } protected class DockCircleBatteryMeterDrawable extends CircleBatteryMeterDrawable { public DockCircleBatteryMeterDrawable(Context ctx) { super(ctx); public DockCircleBatteryMeterDrawable(Resources res) { super(res); } @Override Loading Loading
packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +32 −29 Original line number Diff line number Diff line Loading @@ -127,6 +127,16 @@ public class BatteryMeterView extends View implements DemoMode { }); } } protected boolean shouldIndicateCharging() { if (status == BatteryManager.BATTERY_STATUS_CHARGING) { return true; } if (plugged) { return status == BatteryManager.BATTERY_STATUS_FULL; } return false; } } private final Runnable mInvalidate = new Runnable() { Loading Loading @@ -217,15 +227,16 @@ public class BatteryMeterView extends View implements DemoMode { } protected BatteryMeterDrawable createBatteryMeterDrawable(BatteryMeterMode mode) { Resources res = mContext.getResources(); switch (mode) { case BATTERY_METER_CIRCLE: return new CircleBatteryMeterDrawable(mContext); return new CircleBatteryMeterDrawable(res); case BATTERY_METER_ICON_LANDSCAPE: return new NormalBatteryMeterDrawable(mContext, true); return new NormalBatteryMeterDrawable(res, true); default: return new NormalBatteryMeterDrawable(mContext, false); return new NormalBatteryMeterDrawable(res, false); } } Loading Loading @@ -313,7 +324,8 @@ public class BatteryMeterView extends View implements DemoMode { public void draw(Canvas c) { synchronized (mLock) { if (mBatteryMeterDrawable != null) { mBatteryMeterDrawable.onDraw(c); BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; mBatteryMeterDrawable.onDraw(c, tracker); } } } Loading Loading @@ -343,7 +355,7 @@ public class BatteryMeterView extends View implements DemoMode { } protected interface BatteryMeterDrawable { void onDraw(Canvas c); void onDraw(Canvas c, BatteryTracker tracker); void onSizeChanged(int w, int h, int oldw, int oldh); void onDispose(); } Loading Loading @@ -374,13 +386,11 @@ public class BatteryMeterView extends View implements DemoMode { private final RectF mClipFrame = new RectF(); private final RectF mBoltFrame = new RectF(); public NormalBatteryMeterDrawable(Context ctx, boolean horizontal) { public NormalBatteryMeterDrawable(Resources res, boolean horizontal) { super(); mHorizontal = horizontal; mDisposed = false; Resources res = ctx.getResources(); mFramePaint = new Paint(Paint.ANTI_ALIAS_FLAG); mFramePaint.setColor(res.getColor(R.color.batterymeter_frame_color)); mFramePaint.setDither(true); Loading Loading @@ -412,10 +422,9 @@ public class BatteryMeterView extends View implements DemoMode { } @Override public void onDraw(Canvas c) { public void onDraw(Canvas c, BatteryTracker tracker) { if (mDisposed) return; BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; final int level = tracker.level; if (level == BatteryTracker.UNKNOWN_LEVEL) return; Loading Loading @@ -493,7 +502,7 @@ public class BatteryMeterView extends View implements DemoMode { c.drawRect(mFrame, mBatteryPaint); c.restore(); if (tracker.plugged) { if (tracker.shouldIndicateCharging()) { // draw the bolt final float bl = (int)(mFrame.left + mFrame.width() / (mHorizontal ? 9f : 4.5f)); final float bt = (int)(mFrame.top + mFrame.height() / (mHorizontal ? 4.5f : 6f)); Loading Loading @@ -607,12 +616,10 @@ public class BatteryMeterView extends View implements DemoMode { private final float[] mBoltPoints; private final Path mBoltPath = new Path(); public CircleBatteryMeterDrawable(Context ctx) { public CircleBatteryMeterDrawable(Resources res) { super(); mDisposed = false; Resources res = getResources(); mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mTextPaint.setColor(res.getColor(R.color.status_bar_clock_color)); Typeface font = Typeface.create("sans-serif-condensed", Typeface.NORMAL); Loading Loading @@ -641,21 +648,15 @@ public class BatteryMeterView extends View implements DemoMode { } @Override public void onDraw(Canvas c) { public void onDraw(Canvas c, BatteryTracker tracker) { if (mDisposed) return; if (mRectLeft == null) { initSizeBasedStuff(); } final int status = mTracker.status; final int level = mTracker.level; updateChargeAnim(status); boolean charging = mTracker.status == BatteryManager.BATTERY_STATUS_CHARGING; int offset = charging ? mAnimOffset : 0; drawCircle(c, status, level, offset, mTextX, mRectLeft); updateChargeAnim(tracker); drawCircle(c, tracker, mTextX, mRectLeft); } @Override Loading Loading @@ -688,9 +689,11 @@ public class BatteryMeterView extends View implements DemoMode { return R.array.batterymeter_bolt_points; } private void drawCircle(Canvas canvas, int status, int level, int animOffset, private void drawCircle(Canvas canvas, BatteryTracker tracker, float textX, RectF drawRect) { boolean unknownStatus = status == BatteryManager.BATTERY_STATUS_UNKNOWN; boolean unknownStatus = tracker.status == BatteryManager.BATTERY_STATUS_UNKNOWN; int animOffset = tracker.shouldIndicateCharging() ? mAnimOffset : 0; int level = tracker.level; Paint paint; if (unknownStatus) { Loading @@ -699,7 +702,7 @@ public class BatteryMeterView extends View implements DemoMode { } else { paint = mFrontPaint; paint.setColor(getColorForLevel(level)); if (status == BatteryManager.BATTERY_STATUS_FULL) { if (tracker.status == BatteryManager.BATTERY_STATUS_FULL) { level = 100; } } Loading @@ -714,7 +717,7 @@ public class BatteryMeterView extends View implements DemoMode { mTextPaint.setColor(paint.getColor()); canvas.drawText("?", textX, mTextY, mTextPaint); } else if (mTracker.plugged && (!mShowPercent || level == 100)) { } else if (tracker.shouldIndicateCharging() && (!mShowPercent || level == 100)) { // draw the bolt final float bl = (int)(drawRect.left + drawRect.width() / 3.2f); final float bt = (int)(drawRect.top + drawRect.height() / 4f); Loading Loading @@ -749,8 +752,8 @@ public class BatteryMeterView extends View implements DemoMode { * cares for timed callbacks to continue animation cycles * uses mInvalidate for delayed invalidate() callbacks */ private void updateChargeAnim(int status) { if (status != BatteryManager.BATTERY_STATUS_CHARGING) { private void updateChargeAnim(BatteryTracker tracker) { if (!tracker.shouldIndicateCharging()) { if (mIsAnimating) { mIsAnimating = false; mAnimOffset = 0; Loading
packages/SystemUI/src/com/android/systemui/DockBatteryMeterView.java +9 −7 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.os.BatteryManager; import android.util.AttributeSet; import android.view.View; Loading Loading @@ -137,22 +138,23 @@ public class DockBatteryMeterView extends BatteryMeterView { @Override protected BatteryMeterDrawable createBatteryMeterDrawable(BatteryMeterMode mode) { Resources res = mContext.getResources(); switch (mode) { case BATTERY_METER_CIRCLE: return new DockCircleBatteryMeterDrawable(mContext); return new DockCircleBatteryMeterDrawable(res); case BATTERY_METER_ICON_LANDSCAPE: return new DockNormalBatteryMeterDrawable(mContext, true); return new DockNormalBatteryMeterDrawable(res, true); default: return new DockNormalBatteryMeterDrawable(mContext, false); return new DockNormalBatteryMeterDrawable(res, false); } } protected class DockNormalBatteryMeterDrawable extends NormalBatteryMeterDrawable { public DockNormalBatteryMeterDrawable(Context ctx, boolean inverted) { super(ctx, inverted); public DockNormalBatteryMeterDrawable(Resources res, boolean horizontal) { super(res, horizontal); } @Override Loading @@ -164,8 +166,8 @@ public class DockBatteryMeterView extends BatteryMeterView { } protected class DockCircleBatteryMeterDrawable extends CircleBatteryMeterDrawable { public DockCircleBatteryMeterDrawable(Context ctx) { super(ctx); public DockCircleBatteryMeterDrawable(Resources res) { super(res); } @Override Loading