Fix text ranges background height and alignment
commit_hash:bc60ac6cdad2b11a4bb99b2ed44bea0ea99bfcb6
@@ -3211,6 +3211,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -4524,6 +4525,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -5837,6 +5839,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -7150,6 +7153,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -8463,6 +8467,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -9776,6 +9781,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -11089,6 +11095,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -12402,6 +12409,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -13715,6 +13723,7 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/custom_shadow.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/diagonal-gradient-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/display-text.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellips-ranges-background.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis-with-image.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/ellipsis.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2ScreenshotTest/div-text/empty-text-height.png",
|
||||
@@ -18099,6 +18108,8 @@
|
||||
"client/ios/Tests/reference_snapshots/div-text/diagonal-gradient-background_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/diagonal-gradient-background_414@3x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/display-text_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/display-text_375@2x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/display-text_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/display-text_414@3x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/ellips-ranges-background_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/ellips-ranges-background_375@2x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/ellips-ranges-background_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/ellips-ranges-background_414@3x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/ellipsis-with-image_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/ellipsis-with-image_375@2x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/ellipsis-with-image_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/ellipsis-with-image_414@3x.png",
|
||||
"client/ios/Tests/reference_snapshots/div-text/ellipsis_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-text/ellipsis_375@2x.png",
|
||||
@@ -24233,6 +24244,7 @@
|
||||
"test_data/snapshot_test_data/div-text/custom_shadow.json":"divkit/public/test_data/snapshot_test_data/div-text/custom_shadow.json",
|
||||
"test_data/snapshot_test_data/div-text/diagonal-gradient-background.json":"divkit/public/test_data/snapshot_test_data/div-text/diagonal-gradient-background.json",
|
||||
"test_data/snapshot_test_data/div-text/display-text.json":"divkit/public/test_data/snapshot_test_data/div-text/display-text.json",
|
||||
"test_data/snapshot_test_data/div-text/ellips-ranges-background.json":"divkit/public/test_data/snapshot_test_data/div-text/ellips-ranges-background.json",
|
||||
"test_data/snapshot_test_data/div-text/ellipsis-with-image.json":"divkit/public/test_data/snapshot_test_data/div-text/ellipsis-with-image.json",
|
||||
"test_data/snapshot_test_data/div-text/ellipsis.json":"divkit/public/test_data/snapshot_test_data/div-text/ellipsis.json",
|
||||
"test_data/snapshot_test_data/div-text/empty-text-height.json":"divkit/public/test_data/snapshot_test_data/div-text/empty-text-height.json",
|
||||
|
||||
@@ -13,8 +13,6 @@ import com.yandex.div.core.view2.divs.unitToPx
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivCloudBackground
|
||||
import com.yandex.div2.DivSizeUnit
|
||||
import com.yandex.div2.DivTextRangeBackground
|
||||
import com.yandex.div2.DivTextRangeBorder
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
@@ -39,10 +37,9 @@ internal class CloudTextRangeBackgroundRenderer(
|
||||
endLine: Int,
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
border: DivTextRangeBorder?,
|
||||
background: DivTextRangeBackground?
|
||||
span: DivBackgroundSpan,
|
||||
) {
|
||||
val cloudBackground = background?.value() as? DivCloudBackground ?: return
|
||||
val cloudBackground = span.background?.value() as? DivCloudBackground ?: return
|
||||
draw(canvas, layout, startLine, endLine, startOffset, endOffset, cloudBackground)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
package com.yandex.div.core.util.text
|
||||
|
||||
import android.graphics.Typeface
|
||||
import android.text.TextPaint
|
||||
import android.text.style.UnderlineSpan
|
||||
import androidx.annotation.Px
|
||||
import com.yandex.div2.DivTextAlignmentVertical
|
||||
import com.yandex.div2.DivTextRangeBackground
|
||||
import com.yandex.div2.DivTextRangeBorder
|
||||
|
||||
internal class DivBackgroundSpan(
|
||||
val border: DivTextRangeBorder?,
|
||||
val background: DivTextRangeBackground?
|
||||
val background: DivTextRangeBackground?,
|
||||
@param:Px val baselineOffset: Int,
|
||||
val alignmentVertical: DivTextAlignmentVertical?,
|
||||
@param:Px val lineHeight: Int?,
|
||||
@param:Px val fontSize: Int?,
|
||||
@param:Px val topOffset: Int?,
|
||||
val typeface: Typeface?,
|
||||
val fontFeatureSettings: String?,
|
||||
val fontVariationSettings: String?,
|
||||
) : UnderlineSpan() {
|
||||
|
||||
override fun updateDrawState(ds: TextPaint) {
|
||||
|
||||
@@ -34,6 +34,14 @@ internal class DivTextRangesBackgroundHelper(
|
||||
val spannedText = text as? Spannable ?: return false
|
||||
return spans.any { span ->
|
||||
span.border == backgroundSpan.border && span.background == backgroundSpan.background
|
||||
&& span.baselineOffset == backgroundSpan.baselineOffset
|
||||
&& span.alignmentVertical == backgroundSpan.alignmentVertical
|
||||
&& span.lineHeight == backgroundSpan.lineHeight
|
||||
&& span.fontSize == backgroundSpan.fontSize
|
||||
&& span.topOffset == backgroundSpan.topOffset
|
||||
&& span.typeface == backgroundSpan.typeface
|
||||
&& span.fontFeatureSettings == backgroundSpan.fontFeatureSettings
|
||||
&& span.fontVariationSettings == backgroundSpan.fontVariationSettings
|
||||
&& end == spannedText.getSpanEnd(span) && start == spannedText.getSpanStart(span)
|
||||
}
|
||||
}
|
||||
@@ -75,14 +83,12 @@ internal class DivTextRangesBackgroundHelper(
|
||||
|
||||
when (span.background) {
|
||||
is DivTextRangeBackground.Cloud -> {
|
||||
cloudBackgroundRenderer.draw(canvas, layout, startLine, endLine, startOffset, endOffset,
|
||||
span.border, span.background)
|
||||
cloudBackgroundRenderer.draw(canvas, layout, startLine, endLine, startOffset, endOffset, span)
|
||||
}
|
||||
|
||||
else -> {
|
||||
val renderer = if (startLine == endLine) singleLineRenderer else multiLineRenderer
|
||||
renderer.draw(canvas, layout, startLine, endLine, startOffset, endOffset,
|
||||
span.border, span.background)
|
||||
renderer.draw(canvas, layout, startLine, endLine, startOffset, endOffset, span)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,21 +5,24 @@ import android.graphics.Paint
|
||||
import android.graphics.Path
|
||||
import android.graphics.RectF
|
||||
import android.text.Layout
|
||||
import android.text.TextPaint
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.View
|
||||
import com.yandex.div.core.view2.divs.dpToPx
|
||||
import com.yandex.div.core.view2.divs.supportFontVariations
|
||||
import com.yandex.div.core.view2.divs.widgets.widthPx
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivSolidBackground
|
||||
import com.yandex.div2.DivTextAlignmentVertical
|
||||
import com.yandex.div2.DivTextRangeBackground
|
||||
import com.yandex.div2.DivTextRangeBorder
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
|
||||
private const val DEFAULT_LINESPACING_EXTRA = 0f
|
||||
private const val DEFAULT_LINESPACING_MULTIPLIER = 1f
|
||||
|
||||
internal abstract class DivTextRangesBackgroundRenderer() {
|
||||
|
||||
private val tempPaint = TextPaint()
|
||||
|
||||
abstract fun draw(
|
||||
canvas: Canvas,
|
||||
layout: Layout,
|
||||
@@ -27,56 +30,80 @@ internal abstract class DivTextRangesBackgroundRenderer() {
|
||||
endLine: Int,
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
border: DivTextRangeBorder?,
|
||||
background: DivTextRangeBackground?,
|
||||
span: DivBackgroundSpan,
|
||||
)
|
||||
|
||||
protected fun getLineTop(layout: Layout, line: Int): Int {
|
||||
var lineTop = layout.getLineTop(line)
|
||||
if (line == 0) {
|
||||
lineTop -= layout.topPadding
|
||||
}
|
||||
return lineTop
|
||||
}
|
||||
protected fun getLineBounds(
|
||||
layout: Layout,
|
||||
line: Int,
|
||||
span: DivBackgroundSpan,
|
||||
isFirstLine: Boolean = false,
|
||||
): LineBounds {
|
||||
val baseline = layout.getLineBaseline(line)
|
||||
val lineAscent = layout.getLineAscent(line)
|
||||
val lineDescent = layout.getLineDescent(line)
|
||||
|
||||
protected fun getLineBottom(layout: Layout, line: Int): Int {
|
||||
var lineBottom = layout.getLineBottomWithoutSpacing(line)
|
||||
if (line == layout.lineCount - 1) {
|
||||
lineBottom -= layout.bottomPadding
|
||||
}
|
||||
return lineBottom
|
||||
}
|
||||
|
||||
private fun Layout.getLineBottomWithoutSpacing(line: Int): Int {
|
||||
val lineBottom = getLineBottom(line)
|
||||
val isLastLine = line == lineCount - 1
|
||||
|
||||
val lineBottomWithoutSpacing: Int
|
||||
val lineSpacingExtra = spacingAdd
|
||||
val lineSpacingMultiplier = spacingMultiplier
|
||||
val hasLineSpacing = lineSpacingExtra != DEFAULT_LINESPACING_EXTRA
|
||||
|| lineSpacingMultiplier != DEFAULT_LINESPACING_MULTIPLIER
|
||||
|
||||
if (!hasLineSpacing || isLastLine) {
|
||||
lineBottomWithoutSpacing = lineBottom
|
||||
} else {
|
||||
val extra: Float
|
||||
if (lineSpacingMultiplier.compareTo(DEFAULT_LINESPACING_MULTIPLIER) != 0) {
|
||||
val lineHeight = getLineHeight(line)
|
||||
extra = lineHeight - (lineHeight - lineSpacingExtra) / lineSpacingMultiplier
|
||||
} else {
|
||||
extra = lineSpacingExtra
|
||||
val textAscent: Int
|
||||
val textDescent: Int
|
||||
if (span.fontSize != null) {
|
||||
tempPaint.textSize = span.fontSize.toFloat()
|
||||
tempPaint.typeface = span.typeface
|
||||
tempPaint.fontFeatureSettings = span.fontFeatureSettings
|
||||
if (supportFontVariations) {
|
||||
tempPaint.fontVariationSettings = span.fontVariationSettings
|
||||
}
|
||||
|
||||
lineBottomWithoutSpacing = (lineBottom - extra).toInt()
|
||||
val fontMetrics = tempPaint.fontMetricsInt
|
||||
textAscent = fontMetrics.ascent
|
||||
textDescent = fontMetrics.descent
|
||||
} else {
|
||||
textAscent = lineAscent
|
||||
textDescent = lineDescent
|
||||
}
|
||||
|
||||
return lineBottomWithoutSpacing
|
||||
val backgroundAscent: Int
|
||||
val backgroundDescent: Int
|
||||
if (span.lineHeight != null) {
|
||||
val textHeight = textDescent - textAscent
|
||||
val extraSpace = span.lineHeight - textHeight
|
||||
val extraTop = extraSpace / 2
|
||||
val extraBottom = extraSpace - extraTop
|
||||
backgroundAscent = textAscent - extraTop
|
||||
backgroundDescent = textDescent + extraBottom
|
||||
} else {
|
||||
backgroundAscent = textAscent
|
||||
backgroundDescent = textDescent
|
||||
}
|
||||
|
||||
val baselineShift = when {
|
||||
span.baselineOffset != 0 -> -span.baselineOffset
|
||||
span.alignmentVertical == DivTextAlignmentVertical.TOP -> {
|
||||
lineAscent - textAscent
|
||||
}
|
||||
span.alignmentVertical == DivTextAlignmentVertical.CENTER -> {
|
||||
val lineCenter = (lineAscent + lineDescent) / 2
|
||||
val textCenter = (textAscent + textDescent) / 2
|
||||
lineCenter - textCenter
|
||||
}
|
||||
|
||||
span.alignmentVertical == DivTextAlignmentVertical.BOTTOM -> {
|
||||
lineDescent - textDescent
|
||||
}
|
||||
else -> 0
|
||||
}
|
||||
|
||||
val topOffsetShift = if (isFirstLine) -(span.topOffset ?: 0) else 0
|
||||
|
||||
val top = baseline + backgroundAscent + baselineShift + topOffsetShift
|
||||
val bottom = baseline + backgroundDescent + baselineShift
|
||||
|
||||
return LineBounds(top, bottom)
|
||||
}
|
||||
|
||||
private fun Layout.getLineHeight(line: Int): Int {
|
||||
return getLineTop(line + 1) - getLineTop(line)
|
||||
}
|
||||
protected data class LineBounds(
|
||||
val top: Int,
|
||||
val bottom: Int
|
||||
)
|
||||
}
|
||||
|
||||
internal class SingleLineRenderer(
|
||||
@@ -91,15 +118,13 @@ internal class SingleLineRenderer(
|
||||
endLine: Int,
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
border: DivTextRangeBorder?,
|
||||
background: DivTextRangeBackground?,
|
||||
span: DivBackgroundSpan,
|
||||
) {
|
||||
val lineTop = getLineTop(layout, startLine)
|
||||
val lineBottom = getLineBottom(layout, startLine)
|
||||
val bounds = getLineBounds(layout, startLine, span, isFirstLine = true)
|
||||
val left = min(startOffset, endOffset)
|
||||
val right = max(startOffset, endOffset)
|
||||
val borderDrawer = BackgroundDrawer(view.resources.displayMetrics, border, background, canvas, resolver)
|
||||
borderDrawer.drawBackground(left.toFloat(), lineTop.toFloat(), right.toFloat(), lineBottom.toFloat())
|
||||
val borderDrawer = BackgroundDrawer(view.resources.displayMetrics, span.border, span.background, canvas, resolver)
|
||||
borderDrawer.drawBackground(left.toFloat(), bounds.top.toFloat(), right.toFloat(), bounds.bottom.toFloat())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,8 +141,7 @@ internal class MultiLineRenderer(
|
||||
endLine: Int,
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
border: DivTextRangeBorder?,
|
||||
background: DivTextRangeBackground?,
|
||||
span: DivBackgroundSpan,
|
||||
) {
|
||||
val paragDir = layout.getParagraphDirection(startLine)
|
||||
val lineEndOffset = if (paragDir == Layout.DIR_RIGHT_TO_LEFT) {
|
||||
@@ -126,20 +150,18 @@ internal class MultiLineRenderer(
|
||||
layout.getLineRight(startLine)
|
||||
}.toInt()
|
||||
|
||||
var lineBottom = getLineBottom(layout, startLine)
|
||||
var lineTop = getLineTop(layout, startLine)
|
||||
val drawer = BackgroundDrawer(view.resources.displayMetrics, border, background, canvas, resolver)
|
||||
drawer.drawBackgroundStart(startOffset.toFloat(), lineTop.toFloat(),
|
||||
lineEndOffset.toFloat(), lineBottom.toFloat())
|
||||
var bounds = getLineBounds(layout, startLine, span, isFirstLine = true)
|
||||
val drawer = BackgroundDrawer(view.resources.displayMetrics, span.border, span.background, canvas, resolver)
|
||||
drawer.drawBackgroundStart(startOffset.toFloat(), bounds.top.toFloat(),
|
||||
lineEndOffset.toFloat(), bounds.bottom.toFloat())
|
||||
|
||||
for (line in startLine + 1 until endLine) {
|
||||
lineTop = getLineTop(layout, line)
|
||||
lineBottom = getLineBottom(layout, line)
|
||||
bounds = getLineBounds(layout, line, span, isFirstLine = false)
|
||||
drawer.drawBackgroundMiddle(
|
||||
(layout.getLineLeft(line).toInt()).toFloat(),
|
||||
lineTop.toFloat(),
|
||||
bounds.top.toFloat(),
|
||||
(layout.getLineRight(line).toInt()).toFloat(),
|
||||
lineBottom.toFloat()
|
||||
bounds.bottom.toFloat()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -149,11 +171,10 @@ internal class MultiLineRenderer(
|
||||
layout.getLineLeft(startLine)
|
||||
}.toInt()
|
||||
|
||||
lineBottom = getLineBottom(layout, endLine)
|
||||
lineTop = getLineTop(layout, endLine)
|
||||
bounds = getLineBounds(layout, endLine, span, isFirstLine = false)
|
||||
|
||||
drawer.drawBackgroundEnd(lineStartOffset.toFloat(), lineTop.toFloat(), endOffset.toFloat(),
|
||||
lineBottom.toFloat())
|
||||
drawer.drawBackgroundEnd(lineStartOffset.toFloat(), bounds.top.toFloat(), endOffset.toFloat(),
|
||||
bounds.bottom.toFloat())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,14 +41,13 @@ import com.yandex.div.internal.spannable.NoStrikethroughSpan
|
||||
import com.yandex.div.internal.spannable.NoUnderlineSpan
|
||||
import com.yandex.div.internal.spannable.TextColorSpan
|
||||
import com.yandex.div.internal.spannable.TypefaceSpan
|
||||
import com.yandex.div.internal.util.makeIf
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivAction
|
||||
import com.yandex.div2.DivLineStyle
|
||||
import com.yandex.div2.DivShadow
|
||||
import com.yandex.div2.DivText
|
||||
import com.yandex.div2.DivTextAlignmentVertical
|
||||
import com.yandex.div2.DivTextRangeBackground
|
||||
import com.yandex.div2.DivTextRangeBorder
|
||||
import com.yandex.div2.DivTextRangeMask
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -169,8 +168,8 @@ internal class SpannedTextBuilder @Inject constructor(
|
||||
spannedText,
|
||||
start,
|
||||
end,
|
||||
range.border,
|
||||
range.background,
|
||||
range,
|
||||
textData,
|
||||
inEllipsis
|
||||
)
|
||||
}
|
||||
@@ -478,14 +477,51 @@ internal class SpannedTextBuilder @Inject constructor(
|
||||
spannedText: Spannable,
|
||||
start: Int,
|
||||
end: Int,
|
||||
border: DivTextRangeBorder?,
|
||||
background: DivTextRangeBackground?,
|
||||
range: DivText.Range,
|
||||
textData: TextData,
|
||||
inEllipsis: Boolean,
|
||||
) {
|
||||
val border = range.border
|
||||
val background = range.background
|
||||
if (border == null && background == null) return
|
||||
|
||||
val displayMetrics = textView.context.resources.displayMetrics
|
||||
val resolver = bindingContext.expressionResolver
|
||||
val backgroundSpan = DivBackgroundSpan(border, background)
|
||||
|
||||
val fontSizeValue = range.fontSize?.evaluate(resolver)?.toIntSafely()
|
||||
val fontSizeUnit = range.fontSizeUnit.evaluate(resolver)
|
||||
|
||||
val typefaceProvider = typefaceResolver.getTypefaceProvider(
|
||||
range.fontFamily?.evaluate(resolver) ?: textData.fontFamily
|
||||
)
|
||||
|
||||
val rangeFontWeight = range.fontWeight?.evaluate(resolver)
|
||||
val rangeFontWeightValue = range.fontWeightValue?.evaluate(resolver)?.toIntSafely()
|
||||
val fontWeightValue = if (rangeFontWeight != null || rangeFontWeightValue != null) {
|
||||
getTypefaceValue(rangeFontWeight, rangeFontWeightValue)
|
||||
} else {
|
||||
getTypefaceValue(textData.fontWeight, textData.fontWeightValue)
|
||||
}
|
||||
|
||||
val rangeFontVariationSettings = range.fontVariationSettings?.evaluate(resolver)
|
||||
val fontVariationSettings = makeIf(typefaceProvider.isVariable &&
|
||||
(rangeFontWeight != null || rangeFontWeightValue != null || rangeFontVariationSettings != null)
|
||||
) {
|
||||
getFontVariations(rangeFontWeight, rangeFontWeightValue, rangeFontVariationSettings)
|
||||
}
|
||||
|
||||
val backgroundSpan = DivBackgroundSpan(
|
||||
border = border,
|
||||
background = background,
|
||||
baselineOffset = range.baselineOffset.evaluate(resolver).unitToPx(displayMetrics, fontSizeUnit),
|
||||
alignmentVertical = range.alignmentVertical?.evaluate(resolver),
|
||||
lineHeight = range.lineHeight?.evaluate(resolver)?.unitToPx(displayMetrics, fontSizeUnit),
|
||||
fontSize = fontSizeValue?.unitToPx(displayMetrics, fontSizeUnit),
|
||||
topOffset = range.topOffset?.evaluate(resolver)?.toIntSafely()?.unitToPx(displayMetrics, fontSizeUnit),
|
||||
typeface = getTypeface(fontWeightValue, typefaceProvider),
|
||||
fontFeatureSettings = range.fontFeatureSettings?.evaluate(resolver),
|
||||
fontVariationSettings = fontVariationSettings,
|
||||
)
|
||||
if (textView is DivLineHeightTextView &&
|
||||
!textView.hasBackgroundSpan(spannedText, backgroundSpan, start, end, resolver)) {
|
||||
spannedText.setSpan(backgroundSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
|
||||
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 182 KiB |
|
After Width: | Height: | Size: 181 KiB |
|
After Width: | Height: | Size: 182 KiB |
|
After Width: | Height: | Size: 181 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 169 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 171 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 324 KiB |
@@ -0,0 +1,339 @@
|
||||
{
|
||||
"description": "Text with auto_ellipsize and ellipsis using various range properties",
|
||||
"platforms": [
|
||||
"android",
|
||||
"ios"
|
||||
],
|
||||
"unsupported_platforms": {
|
||||
"web": "There is no css implementation for this."
|
||||
},
|
||||
"templates": {
|
||||
"title": {
|
||||
"type": "text",
|
||||
"paddings": {
|
||||
"left": 4,
|
||||
"right": 4
|
||||
},
|
||||
"font_size": 12,
|
||||
"font_weight": "medium",
|
||||
"text_color": "#586E75"
|
||||
},
|
||||
"test_text": {
|
||||
"type": "text",
|
||||
"paddings": {
|
||||
"left": 4,
|
||||
"right": 4
|
||||
},
|
||||
"background": [
|
||||
{
|
||||
"type": "solid",
|
||||
"$color": "background_color"
|
||||
}
|
||||
],
|
||||
"border": {
|
||||
"corner_radius": 4
|
||||
},
|
||||
"font_size": 16,
|
||||
"font_weight": "medium",
|
||||
"text_color": "#002B36",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 280
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"log_id": "ellipsis_range_properties",
|
||||
"states": [
|
||||
{
|
||||
"state_id": 0,
|
||||
"div": {
|
||||
"type": "container",
|
||||
"orientation": "vertical",
|
||||
"paddings": {
|
||||
"left": 16,
|
||||
"top": 16,
|
||||
"right": 16,
|
||||
"bottom": 16
|
||||
},
|
||||
"background": [
|
||||
{
|
||||
"type": "solid",
|
||||
"color": "#FDF6E3"
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with corner_radius and border stroke on range"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has corner_radius on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"border": {
|
||||
"corner_radius": 8,
|
||||
"stroke": {
|
||||
"color": "#191817",
|
||||
"width": 2.0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with background_color on range"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has background_color on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"background": {
|
||||
"type": "solid",
|
||||
"color": "#FFEB3B"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with alignment_vertical: top"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has alignment_vertical top on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"font_size": 12,
|
||||
"alignment_vertical": "top",
|
||||
"text_color": "#FF0000"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with alignment_vertical: center"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has alignment_vertical center on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"font_size": 12,
|
||||
"alignment_vertical": "center",
|
||||
"text_color": "#00FF00"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with alignment_vertical: bottom"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has alignment_vertical bottom on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"font_size": 12,
|
||||
"alignment_vertical": "bottom",
|
||||
"text_color": "#0000FF"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with positive baseline_offset"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has positive baseline_offset on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"baseline_offset": 7,
|
||||
"text_color": "#FF5722"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis with negative baseline_offset"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis that has negative baseline_offset on range",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"baseline_offset": -7,
|
||||
"text_color": "#9C27B0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis combining alignment_vertical, border stroke, corner_radius and background_color"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis combining border stroke, corner_radius, background and alignment_vertical properties",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"alignment_vertical": "top",
|
||||
"background": {
|
||||
"type": "solid",
|
||||
"color": "#FFEB3B"
|
||||
},
|
||||
"border": {
|
||||
"stroke": {
|
||||
"color": "#000",
|
||||
"width": 1.0
|
||||
},
|
||||
"corner_radius": 4
|
||||
},
|
||||
"font_size": 11,
|
||||
"text_color": "#1976D2"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "title",
|
||||
"margins": {
|
||||
"bottom": 4
|
||||
},
|
||||
"text": "Ellipsis combining baseline_offset, border stroke, corner_radius and background_color"
|
||||
},
|
||||
{
|
||||
"type": "test_text",
|
||||
"margins": {
|
||||
"bottom": 16
|
||||
},
|
||||
"background_color": "#FFFFFF",
|
||||
"text": "This is a very long text that will be truncated with ellipsis combining border stroke, corner_radius, background and baseline_offset properties",
|
||||
"max_lines": 2,
|
||||
"auto_ellipsize": true,
|
||||
"ellipsis": {
|
||||
"text": "… more",
|
||||
"ranges": [
|
||||
{
|
||||
"font_size": 11,
|
||||
"background": {
|
||||
"type": "solid",
|
||||
"color": "#FFEB3B"
|
||||
},
|
||||
"border": {
|
||||
"stroke": {
|
||||
"color": "#000",
|
||||
"width": 1.0
|
||||
},
|
||||
"corner_radius": 4
|
||||
},
|
||||
"baseline_offset": -7,
|
||||
"text_color": "#1976D2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||