diff --git a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt index b1fdde9cd..8bab8a38f 100644 --- a/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt +++ b/design/src/main/java/nl/rijksoverheid/ctr/design/ext/SpannedExt.kt @@ -1,10 +1,8 @@ package nl.rijksoverheid.ctr.design.ext -import android.graphics.Typeface import android.text.Spanned import android.text.style.BulletSpan import android.text.style.RelativeSizeSpan -import android.text.style.StyleSpan import androidx.core.text.getSpans import nl.rijksoverheid.ctr.design.spans.BulletPointSpan @@ -50,17 +48,11 @@ fun Spanned.substring(start: Int, end: Int): Spanned { /** * Determines whether a Spanned object is a heading - * This is the case in two situations: - * (1) If the Spanned object contains a StyleSpan with Typeface.Bold for the whole length - * (2) If the Spanned object contains one or more RelativeSizeSpans with a size change (= h1-h6) + * If the Spanned object contains one or more RelativeSizeSpans with a size change (= h1-h6) */ val Spanned.isHeading: Boolean get() { - return getSpans().any { span -> - return span.style == Typeface.BOLD && - getSpanStart(span) == 0 && - getSpanEnd(span) == length - } || getSpans().any { span -> + return getSpans().any { span -> return span.sizeChange > 0 } } diff --git a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt index 895da94ab..07aa75023 100644 --- a/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt +++ b/holder/src/test/java/nl/rijksoverheid/ctr/HtmlTextViewWidgetTest.kt @@ -13,6 +13,7 @@ import androidx.core.view.ViewCompat import androidx.core.view.children import androidx.test.core.app.ApplicationProvider import nl.rijksoverheid.ctr.design.widgets.HtmlTextViewWidget +import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith import org.koin.test.AutoCloseKoinTest @@ -53,9 +54,18 @@ class HtmlTextViewWidgetTest : AutoCloseKoinTest() { assertEquals(widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), 0) // 2: Heading 1 + Heading 2 assertEquals(widget.childCount, 1) // 5: Heading + Text + Linebreak + Heading + Text - widget.setHtmlText("

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6
") - assertEquals(widget.children.filter { ViewCompat.isAccessibilityHeading(it) }.count(), 0) // 6: h1, h2, h3, h4, h5, h6 - assertEquals(widget.childCount, 1) // 7: Heading + Heading + Heading + Heading + Heading + Heading + Linebreak + widget.setHtmlText("

Heading 1

") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("

Heading 1

") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("
Heading 1
") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) + widget.setHtmlText("
Heading 1
") + assertTrue(ViewCompat.isAccessibilityHeading(widget.getChildAt(0))) // List test widget.setHtmlText("
  • List item 1
  • List item 2
")