From 3298fd44933ed23053b7f4b2669c079f66a1865c Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 5 Feb 2024 20:26:37 -0500 Subject: [PATCH] BugFix for short lists --- .../ExpandableViewComputationBenchmark.kt | 15 +++++++++++++++ .../amethyst/commons/ExpandableTextParser.kt | 1 + 2 files changed, 16 insertions(+) diff --git a/benchmark/src/androidTest/java/com/vitorpamplona/amethyst/benchmark/ExpandableViewComputationBenchmark.kt b/benchmark/src/androidTest/java/com/vitorpamplona/amethyst/benchmark/ExpandableViewComputationBenchmark.kt index b4e52f3d3..dc97a4449 100644 --- a/benchmark/src/androidTest/java/com/vitorpamplona/amethyst/benchmark/ExpandableViewComputationBenchmark.kt +++ b/benchmark/src/androidTest/java/com/vitorpamplona/amethyst/benchmark/ExpandableViewComputationBenchmark.kt @@ -75,6 +75,16 @@ class ExpandableViewComputationBenchmark { } } + @Test + fun computeTestCase3All() { + benchmarkRule.measureRepeated { + TestCase.assertEquals( + 65, + ExpandableTextParser.computeWhereToCutIfPostIsTooLong(testCase3), + ) + } + } + val testCase1 = """ #Amethyst v0.83.10 @@ -137,4 +147,9 @@ Download: - [Play Edition](https://github.com/vitorpamplona/amethyst/releases/download/v0.83.10/amethyst-googleplay-universal-v0.83.10.apk ) - [FOSS Edition - No translations](https://github.com/vitorpamplona/amethyst/releases/download/v0.83.10/amethyst-fdroid-universal-v0.83.10.apk ) """ + + val testCase3 = """#100aDayUntil100k +Day 5 ✔️ + +Seems like they may be getting easier""" } diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/ExpandableTextParser.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/ExpandableTextParser.kt index 38b43528a..601993357 100644 --- a/commons/src/main/java/com/vitorpamplona/amethyst/commons/ExpandableTextParser.kt +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/ExpandableTextParser.kt @@ -49,6 +49,7 @@ fun String.nthIndexOf( while (occur > 0) { // calling the native function multiple times is faster than looping just once pos = indexOf(ch, pos + 1) + if (pos == -1) return -1 occur-- }