Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d783c8af authored by Evan Laird's avatar Evan Laird
Browse files

Battery saver color changes

Outline the battery with 1dp colorError border when in powersave mode to
make it more obvious.

Also un-bold the '+'. Doesn't look so wonderful

Test: turn on power save mode; look at it
Fixes: visual
Bug: 78638798
Change-Id: I9c649814764c41893c972d707449ad30095a131d
parent a1aafd77
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -563,18 +563,18 @@
        <item>0</item>  <item>334</item>
    </array>
    <array name="batterymeter_plus_points">
        <item>3</item><item>0</item>
        <item>5</item><item>0</item>
        <item>11</item><item>0</item>
        <item>11</item><item>5</item>
        <item>16</item><item>5</item>
        <item>16</item><item>11</item>
        <item>11</item><item>11</item>
        <item>11</item><item>16</item>
        <item>5</item><item>16</item>
        <item>5</item><item>11</item>
        <item>0</item><item>11</item>
        <item>0</item><item>5</item>
        <item>5</item><item>3</item>
        <item>8</item><item>3</item>
        <item>8</item><item>5</item>
        <item>5</item><item>5</item>
        <item>5</item><item>8</item>
        <item>3</item><item>8</item>
        <item>3</item><item>5</item>
        <item>0</item><item>5</item>
        <item>0</item><item>3</item>
        <item>3</item><item>3</item>
    </array>

</resources>
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@

    <dimen name="battery_height">14.5dp</dimen>
    <dimen name="battery_width">9.5dp</dimen>
    <dimen name="battery_powersave_outline_thickness">1dp</dimen>

    <dimen name="bt_battery_padding">2dp</dimen>

+23 −1
Original line number Diff line number Diff line
@@ -24,9 +24,11 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.Path.Direction;
import android.graphics.Path.FillType;
import android.graphics.Path.Op;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
@@ -49,6 +51,7 @@ public class BatteryMeterDrawableBase extends Drawable {
    protected final Paint mTextPaint;
    protected final Paint mBoltPaint;
    protected final Paint mPlusPaint;
    protected final Paint mPowersavePaint;
    protected float mButtonHeightFraction;

    private int mLevel = -1;
@@ -90,6 +93,7 @@ public class BatteryMeterDrawableBase extends Drawable {
    private final RectF mPlusFrame = new RectF();

    private final Path mShapePath = new Path();
    private final Path mOutlinePath = new Path();
    private final Path mTextPath = new Path();

    public BatteryMeterDrawableBase(Context context, int frameColor) {
@@ -155,6 +159,12 @@ public class BatteryMeterDrawableBase extends Drawable {
        mPlusPaint.setColor(Utils.getDefaultColor(mContext, R.color.batterymeter_plus_color));
        mPlusPoints = loadPoints(res, R.array.batterymeter_plus_points);

        mPowersavePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPowersavePaint.setColor(mPlusPaint.getColor());
        mPowersavePaint.setStyle(Style.STROKE);
        mPowersavePaint.setStrokeWidth(context.getResources()
                .getDimensionPixelSize(R.dimen.battery_powersave_outline_thickness));

        mIntrinsicWidth = context.getResources().getDimensionPixelSize(R.dimen.battery_width);
        mIntrinsicHeight = context.getResources().getDimensionPixelSize(R.dimen.battery_height);
    }
@@ -286,7 +296,9 @@ public class BatteryMeterDrawableBase extends Drawable {
    }

    protected int batteryColorForLevel(int level) {
        return mCharging ? mChargeColor : getColorForLevel(level);
        return (mCharging || (mPowerSaveEnabled && mPowerSaveAsColorError))
                ? mChargeColor
                : getColorForLevel(level);
    }

    @Override
@@ -331,10 +343,15 @@ public class BatteryMeterDrawableBase extends Drawable {

        // define the battery shape
        mShapePath.reset();
        mOutlinePath.reset();
        final float radius = getRadiusRatio() * (mFrame.height() + buttonHeight);
        mShapePath.setFillType(FillType.WINDING);
        mShapePath.addRoundRect(mFrame, radius, radius, Direction.CW);
        mShapePath.addRect(mButtonFrame, Direction.CW);
        mOutlinePath.addRoundRect(mFrame, radius, radius, Direction.CW);
        Path p = new Path();
        p.addRect(mButtonFrame, Direction.CW);
        mOutlinePath.op(p, Op.XOR);

        if (mCharging) {
            // define the bolt shape
@@ -443,6 +460,11 @@ public class BatteryMeterDrawableBase extends Drawable {
                c.drawText(pctText, pctX, pctY, mTextPaint);
            }
        }

        // Draw the powersave outline last
        if (!mCharging && mPowerSaveEnabled && mPowerSaveAsColorError) {
            c.drawPath(mOutlinePath, mPowersavePaint);
        }
    }

    // Some stuff required by Drawable.
+2 −1
Original line number Diff line number Diff line
@@ -31,5 +31,6 @@
    <com.android.systemui.BatteryMeterView android:id="@+id/battery"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        />
        android:clipToPadding="false"
        android:clipChildren="false" />
</LinearLayout>
 No newline at end of file