From 9c4d7b031293758116f653ab957ca6daa872358a Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 6 May 2021 10:35:56 +0200 Subject: [PATCH] RTL list fixes --- app/src/main/java/eu/faircode/email/BulletSpanEx.java | 2 +- app/src/main/java/eu/faircode/email/NumberSpan.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/BulletSpanEx.java b/app/src/main/java/eu/faircode/email/BulletSpanEx.java index 07f95af863..111bf96c1d 100644 --- a/app/src/main/java/eu/faircode/email/BulletSpanEx.java +++ b/app/src/main/java/eu/faircode/email/BulletSpanEx.java @@ -63,6 +63,6 @@ public class BulletSpanEx extends BulletSpan { @Override public void drawLeadingMargin(@NonNull Canvas canvas, @NonNull Paint paint, int x, int dir, int top, int baseline, int bottom, @NonNull CharSequence text, int start, int end, boolean first, @Nullable Layout layout) { - super.drawLeadingMargin(canvas, paint, x + indentWidth * level, dir, top, baseline, bottom, text, start, end, first, layout); + super.drawLeadingMargin(canvas, paint, x + indentWidth * level * dir, dir, top, baseline, bottom, text, start, end, first, layout); } } diff --git a/app/src/main/java/eu/faircode/email/NumberSpan.java b/app/src/main/java/eu/faircode/email/NumberSpan.java index a305503ef3..15f0338628 100644 --- a/app/src/main/java/eu/faircode/email/NumberSpan.java +++ b/app/src/main/java/eu/faircode/email/NumberSpan.java @@ -28,12 +28,13 @@ import android.text.TextPaint; import android.text.style.BulletSpan; public class NumberSpan extends BulletSpan { - int indentWidth; + private int indentWidth; private int level; private int index; private TextPaint tp; private String number; + private int numberWidth; private int margin; public NumberSpan(int indentWidth, int gapWidth, int color, float textSize, int level, int index) { @@ -48,7 +49,8 @@ public class NumberSpan extends BulletSpan { this.index = index; number = index + "."; - margin = Math.round(tp.measureText(number)) + gapWidth; + numberWidth = Math.round(tp.measureText(number)); + margin = numberWidth + gapWidth; } float getTextSize() { @@ -81,7 +83,8 @@ public class NumberSpan extends BulletSpan { float textSize = tp.getTextSize(); if (textSize > p.getTextSize()) tp.setTextSize(p.getTextSize()); - c.drawText(number, x + indentWidth * level, baseline, tp); + int offset = (dir < 0 ? numberWidth : 0); + c.drawText(number, x + indentWidth * level * dir - offset, baseline, tp); tp.setTextSize(textSize); } }