From 5c30822fecd67f8087d02b692545cbac285ca1bb Mon Sep 17 00:00:00 2001 From: grechka62 Date: Fri, 11 Apr 2025 13:02:39 +0300 Subject: [PATCH] Fix background image horizontal alignment commit_hash:4bff604a1605e26b1fb9d5b3bae4d88194584c1d --- .../yandex/div/core/view2/divs/BaseDivViewExtensions.kt | 8 ++++++-- .../com/yandex/div/core/view2/divs/DivBackgroundBinder.kt | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/divs/BaseDivViewExtensions.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/divs/BaseDivViewExtensions.kt index 9ade62759..1809fd490 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/divs/BaseDivViewExtensions.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/divs/BaseDivViewExtensions.kt @@ -493,11 +493,15 @@ internal fun DivImageScale.toScaleType(): ScalingDrawable.ScaleType { } } -internal fun DivAlignmentHorizontal.toHorizontalAlignment(): ScalingDrawable.AlignmentHorizontal { +internal fun DivAlignmentHorizontal.toHorizontalAlignment(isRtl: Boolean): ScalingDrawable.AlignmentHorizontal { return when(this) { + DivAlignmentHorizontal.LEFT -> ScalingDrawable.AlignmentHorizontal.LEFT DivAlignmentHorizontal.CENTER -> ScalingDrawable.AlignmentHorizontal.CENTER DivAlignmentHorizontal.RIGHT -> ScalingDrawable.AlignmentHorizontal.RIGHT - else -> ScalingDrawable.AlignmentHorizontal.LEFT + DivAlignmentHorizontal.START -> + if (isRtl) ScalingDrawable.AlignmentHorizontal.RIGHT else ScalingDrawable.AlignmentHorizontal.LEFT + DivAlignmentHorizontal.END -> + if (isRtl) ScalingDrawable.AlignmentHorizontal.LEFT else ScalingDrawable.AlignmentHorizontal.RIGHT } } diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/divs/DivBackgroundBinder.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/divs/DivBackgroundBinder.kt index f03f8a012..93591b9f1 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/divs/DivBackgroundBinder.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/divs/DivBackgroundBinder.kt @@ -20,6 +20,7 @@ import com.yandex.div.core.images.CachedBitmap import com.yandex.div.core.images.DivImageLoader import com.yandex.div.core.util.equalsToConstant import com.yandex.div.core.util.isConstant +import com.yandex.div.core.util.isLayoutRtl import com.yandex.div.core.util.observeBackground import com.yandex.div.core.util.toCachedBitmap import com.yandex.div.core.util.toColormap @@ -458,7 +459,8 @@ internal class DivBackgroundBinder @Inject constructor( val scaleDrawable = ScalingDrawable() scaleDrawable.alpha = (alpha * 255).toInt() scaleDrawable.customScaleType = scale.toScaleType() - scaleDrawable.alignmentHorizontal = contentAlignmentHorizontal.toHorizontalAlignment() + scaleDrawable.alignmentHorizontal = + contentAlignmentHorizontal.toHorizontalAlignment(target.isLayoutRtl()) scaleDrawable.alignmentVertical = contentAlignmentVertical.toVerticalAlignment() val url = imageUrl.toString()