From bbd818084d61a109f13b8f6fa26ddca8d48da0ad Mon Sep 17 00:00:00 2001 From: Levi Bard Date: Thu, 24 Mar 2022 19:52:18 +0100 Subject: [PATCH] When calculating post length, count all urls as being of the reserved character count, even if they're shorter. (#2404) Addresses #2399 --- .../tusky/components/compose/ComposeActivity.kt | 4 +++- .../java/com/keylesspalace/tusky/ComposeActivityTest.kt | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt index b2a3328d..0a4dd933 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt @@ -716,7 +716,9 @@ class ComposeActivity : val urlSpans = binding.composeEditField.urls if (urlSpans != null) { for (span in urlSpans) { - offset += max(0, span.url.length - charactersReservedPerUrl) + // it's expected that this will be negative + // when the url length is less than the reserved character count + offset += (span.url.length - charactersReservedPerUrl) } } var length = binding.composeEditField.length() - offset diff --git a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt index 41052232..e7b3a1a9 100644 --- a/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt +++ b/app/src/test/java/com/keylesspalace/tusky/ComposeActivityTest.kt @@ -242,12 +242,12 @@ class ComposeActivityTest { } @Test - fun whenTextContainsMultipleUrls_onlyEllipsizedURLIsCounted() { + fun whenTextContainsShortUrls_allUrlsGetEllipsized() { val shortUrl = "https://tusky.app" val url = "https://www.google.dk/search?biw=1920&bih=990&tbm=isch&sa=1&ei=bmDrWuOoKMv6kwWOkIaoDQ&q=indiana+jones+i+hate+snakes+animated&oq=indiana+jones+i+hate+snakes+animated&gs_l=psy-ab.3...54174.55443.0.55553.9.7.0.0.0.0.255.333.1j0j1.2.0....0...1c.1.64.psy-ab..7.0.0....0.40G-kcDkC6A#imgdii=PSp15hQjN1JqvM:&imgrc=H0hyE2JW5wrpBM:" val additionalContent = " Check out this @image #search result: " insertSomeTextInContent(shortUrl + additionalContent + url) - assertEquals(activity.calculateTextLength(), additionalContent.length + shortUrl.length + DEFAULT_MAXIMUM_URL_LENGTH) + assertEquals(activity.calculateTextLength(), additionalContent.length + (DEFAULT_MAXIMUM_URL_LENGTH * 2)) } @Test @@ -271,7 +271,7 @@ class ComposeActivityTest { } @Test - fun whenTextContainsMultipleUrls_onlyEllipsizedURLIsCounted_withCustomConfiguration() { + fun whenTextContainsShortUrls_allUrlsGetEllipsized_withCustomConfiguration() { val shortUrl = "https://tusky.app" val url = "https://www.google.dk/search?biw=1920&bih=990&tbm=isch&sa=1&ei=bmDrWuOoKMv6kwWOkIaoDQ&q=indiana+jones+i+hate+snakes+animated&oq=indiana+jones+i+hate+snakes+animated&gs_l=psy-ab.3...54174.55443.0.55553.9.7.0.0.0.0.255.333.1j0j1.2.0....0...1c.1.64.psy-ab..7.0.0....0.40G-kcDkC6A#imgdii=PSp15hQjN1JqvM:&imgrc=H0hyE2JW5wrpBM:" val additionalContent = " Check out this @image #search result: " @@ -280,7 +280,7 @@ class ComposeActivityTest { setupActivity() shadowOf(getMainLooper()).idle() insertSomeTextInContent(shortUrl + additionalContent + url) - assertEquals(activity.calculateTextLength(), additionalContent.length + shortUrl.length + customUrlLength) + assertEquals(activity.calculateTextLength(), additionalContent.length + (customUrlLength * 2)) } @Test