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

Commit 74809c26 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Fix RTL layout of text in Battery history screen

Change the anchor position and alignment direction for text.

Bug: 10447666
Change-Id: Ida4161c738cf9a32cc8ff98037f3755046e64e33
parent 9506d857
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -657,15 +657,22 @@ public class BatteryHistoryChart extends View {

        final int width = getWidth();
        final int height = getHeight();
        final boolean layoutRtl = isLayoutRtl();
        final int textStartX = layoutRtl ? width : 0;
        mTextPaint.setTextAlign(layoutRtl ? Paint.Align.RIGHT : Paint.Align.LEFT);

        canvas.drawPath(mBatLevelPath, mBatteryBackgroundPaint);
        if (mLargeMode) {
            canvas.drawText(mDurationString, 0, -mTextAscent + (mLineWidth/2),
            int durationHalfWidth = mTotalDurationStringWidth / 2;
            if (layoutRtl) durationHalfWidth = -durationHalfWidth;
            canvas.drawText(mDurationString, textStartX, -mTextAscent + (mLineWidth / 2),
                    mTextPaint);
            canvas.drawText(mTotalDurationString, (width/2) - (mTotalDurationStringWidth/2),
            canvas.drawText(mTotalDurationString, (width / 2) - durationHalfWidth,
                    mLevelBottom - mTextAscent + mThinLineWidth, mTextPaint);
        } else {
            canvas.drawText(mDurationString, (width/2) - (mDurationStringWidth/2),
            int durationHalfWidth = mDurationStringWidth / 2;
            if (layoutRtl) durationHalfWidth = -durationHalfWidth;
            canvas.drawText(mDurationString, (width / 2) - durationHalfWidth,
                    (height / 2) - ((mTextDescent - mTextAscent) / 2) - mTextAscent, mTextPaint);
        }
        if (!mBatGoodPath.isEmpty()) {
@@ -703,22 +710,22 @@ public class BatteryHistoryChart extends View {

        if (mLargeMode) {
            if (mHavePhoneSignal) {
                canvas.drawText(mPhoneSignalLabel, 0,
                canvas.drawText(mPhoneSignalLabel, textStartX,
                        height - mPhoneSignalOffset - mTextDescent, mTextPaint);
            }
            if (mHaveGps) {
                canvas.drawText(mGpsOnLabel, 0,
                canvas.drawText(mGpsOnLabel, textStartX,
                        height - mGpsOnOffset - mTextDescent, mTextPaint);
            }
            if (mHaveWifi) {
                canvas.drawText(mWifiRunningLabel, 0,
                canvas.drawText(mWifiRunningLabel, textStartX,
                        height - mWifiRunningOffset - mTextDescent, mTextPaint);
            }
            canvas.drawText(mWakeLockLabel, 0,
            canvas.drawText(mWakeLockLabel, textStartX,
                    height - mWakeLockOffset - mTextDescent, mTextPaint);
            canvas.drawText(mChargingLabel, 0,
            canvas.drawText(mChargingLabel, textStartX,
                    height - mChargingOffset - mTextDescent, mTextPaint);
            canvas.drawText(mScreenOnLabel, 0,
            canvas.drawText(mScreenOnLabel, textStartX,
                    height - mScreenOnOffset - mTextDescent, mTextPaint);
            canvas.drawLine(0, mLevelBottom+(mThinLineWidth/2), width,
                    mLevelBottom+(mThinLineWidth/2), mTextPaint);