Skip to content

Commit 8ad0bdc

Browse files
committed
Alignment fixed for texts that contain RTL characters in HeaderRenderer
1 parent 5b7711e commit 8ad0bdc

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

core/src/main/java/com/alamkanak/weekview/HeaderRenderer.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.graphics.Paint
66
import android.graphics.Rect
77
import android.graphics.RectF
88
import android.graphics.drawable.Drawable
9+
import android.text.Layout
910
import android.text.StaticLayout
1011
import android.text.TextPaint
1112
import android.util.SparseArray
@@ -127,7 +128,8 @@ private class HeaderUpdater(
127128
date.isWeekend -> viewState.weekendHeaderTextPaint
128129
else -> viewState.headerTextPaint
129130
}
130-
return dayLabel.toTextLayout(textPaint = textPaint, width = viewState.dayWidth.toInt())
131+
val alignment = if (dayLabel.isArabic()) Layout.Alignment.ALIGN_CENTER else Layout.Alignment.ALIGN_NORMAL
132+
return dayLabel.toTextLayout(textPaint = textPaint, width = viewState.dayWidth.toInt(), alignment = alignment)
131133
}
132134

133135
private fun <E> SparseArray<E>.hasKey(key: Int): Boolean = indexOfKey(key) >= 0
@@ -173,8 +175,9 @@ private class DateLabelsDrawer(
173175
val key = date.toEpochDays()
174176
val textLayout = dateLabelLayouts[key]
175177

178+
val offset = if (textLayout.text.toString().isArabic()) 0f else viewState.dayWidth / 2f
176179
withTranslation(
177-
x = startPixel + viewState.dayWidth / 2f,
180+
x = startPixel + offset,
178181
y = viewState.headerPadding,
179182
) {
180183
draw(textLayout)

0 commit comments

Comments
 (0)