From bf0a7954f9ee9ec8a5cd16e4f61930988764192d Mon Sep 17 00:00:00 2001 From: Marcella Souza Date: Fri, 30 Oct 2020 14:33:57 -0300 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20[DSY-1590]=20Adding?= =?UTF-8?q?=20ellipsis=20at=20shortcut=20label?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/natura/android/shortcut/Shortcut.kt | 2 +- designsystem/src/main/res/layout/shortcut.xml | 3 +- sample/build.gradle | 1 + .../ShortcutActivityFunctionalTest.kt | 40 +++++++++++++++++++ .../sample/components/ShortcutActivityTest.kt | 17 ++++++++ 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt diff --git a/designsystem/src/main/kotlin/com/natura/android/shortcut/Shortcut.kt b/designsystem/src/main/kotlin/com/natura/android/shortcut/Shortcut.kt index 1bb864408..5d66d26f2 100644 --- a/designsystem/src/main/kotlin/com/natura/android/shortcut/Shortcut.kt +++ b/designsystem/src/main/kotlin/com/natura/android/shortcut/Shortcut.kt @@ -32,7 +32,7 @@ class Shortcut @JvmOverloads constructor( private var iconAttribute: String? = null private var shortcutAttributesArray: TypedArray - private val labelContainer by lazy { findViewById(R.id.shortCutLabel) } + val labelContainer by lazy { findViewById(R.id.shortCutLabel) } private val backgroundContainer by lazy { findViewById(R.id.shortcutBackground) } private val iconContainer by lazy { findViewById(R.id.shortCutIcon) } diff --git a/designsystem/src/main/res/layout/shortcut.xml b/designsystem/src/main/res/layout/shortcut.xml index d5b1f0b9b..ebc0636bb 100644 --- a/designsystem/src/main/res/layout/shortcut.xml +++ b/designsystem/src/main/res/layout/shortcut.xml @@ -50,10 +50,11 @@ android:layout_height="wrap_content" android:layout_marginTop="?spacingTiny" android:textAlignment="center" + android:ellipsize="end" + android:maxLines="1" tools:text="Contained big label to check the behavior" android:autoSizeTextType="uniform" android:textAppearance="?textAppearanceCaption" - android:singleLine="false" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/sample/build.gradle b/sample/build.gradle index 4de4dd13d..a7950bed2 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -61,6 +61,7 @@ dependencies { androidTestImplementation "androidx.test.ext:junit:$rootProject.junitExtVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$rootProject.espressoVersion" testImplementation "androidx.test.ext:truth:$rootProject.truthVersion" + androidTestImplementation "androidx.test.ext:truth:$rootProject.truthVersion" androidTestImplementation "androidx.test:rules:$rootProject.androidXTestVersion" androidTestImplementation "androidx.test:runner:$rootProject.androidXTestVersion" androidTestImplementation "androidx.test:core-ktx:$rootProject.testCoreKtxVersion" diff --git a/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt b/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt new file mode 100644 index 000000000..32b7247b9 --- /dev/null +++ b/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt @@ -0,0 +1,40 @@ +package com.natura.android.sample.components + +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth +import kotlinx.android.synthetic.main.activity_shortcut.* +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class ShortcutActivityFunctionalTest { + + private lateinit var scenario: ActivityScenario + + @Before + fun setUp() { + scenario = ActivityScenario.launch(ShortcutActivity::class.java) + } + + @Test + fun checksEllipsisAtShortcutContainedLabel() { + scenario.onActivity { + val shortcut = it.shortcutContained1 + val ellipsis = shortcut.labelContainer.layout.getEllipsisCount(0) + + Truth.assertThat(ellipsis > 0).isTrue() + } + } + + @Test + fun checksEllipsisAtShortcutOutlinedLabel() { + scenario.onActivity { + val shortcut = it.shortcutOutlined1 + val ellipsis = shortcut.labelContainer.layout.getEllipsisCount(0) + + Truth.assertThat(ellipsis > 0).isTrue() + } + } +} \ No newline at end of file diff --git a/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt b/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt index 4c7095123..8215aa5e8 100644 --- a/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt +++ b/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt @@ -40,4 +40,21 @@ class ShortcutActivityTest { Truth.assertThat(counter.text).isEqualTo("Counter click 1") } } + + @Test + fun shortcutLabelHasEllipsisWhenTextIsTooLong() { + shortcutActivityScenario.onActivity { shortcutActivity -> + val shortcutOutlined = shortcutActivity.shortcutOutlined1 + val textContainer = shortcutOutlined.labelContainer.layout + var ellipsisCount = 0 + textContainer?.apply { + val lines = this.lineCount + if(lines > 0) { + ellipsisCount = this.getEllipsisCount(lines-1) + } + } + + Truth.assertThat(ellipsisCount).isEqualTo(1) + } + } } From aa4cdd73b074b2d9b4433e99896da64789e4d64f Mon Sep 17 00:00:00 2001 From: Marcella Souza Date: Fri, 30 Oct 2020 14:48:31 -0300 Subject: [PATCH 2/2] =?UTF-8?q?style:=20=F0=9F=92=84=20[DSY-1590]=20Adjust?= =?UTF-8?q?ing=20lint=20issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShortcutActivityFunctionalTest.kt | 2 +- .../sample/components/ShortcutActivityTest.kt | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt b/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt index 32b7247b9..3476cb129 100644 --- a/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt +++ b/sample/src/androidTest/kotlin/com/natura/android/sample/components/ShortcutActivityFunctionalTest.kt @@ -37,4 +37,4 @@ class ShortcutActivityFunctionalTest { Truth.assertThat(ellipsis > 0).isTrue() } } -} \ No newline at end of file +} diff --git a/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt b/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt index 8215aa5e8..4c7095123 100644 --- a/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt +++ b/sample/src/test/kotlin/com/natura/android/sample/components/ShortcutActivityTest.kt @@ -40,21 +40,4 @@ class ShortcutActivityTest { Truth.assertThat(counter.text).isEqualTo("Counter click 1") } } - - @Test - fun shortcutLabelHasEllipsisWhenTextIsTooLong() { - shortcutActivityScenario.onActivity { shortcutActivity -> - val shortcutOutlined = shortcutActivity.shortcutOutlined1 - val textContainer = shortcutOutlined.labelContainer.layout - var ellipsisCount = 0 - textContainer?.apply { - val lines = this.lineCount - if(lines > 0) { - ellipsisCount = this.getEllipsisCount(lines-1) - } - } - - Truth.assertThat(ellipsisCount).isEqualTo(1) - } - } }