소스 검색

Revert to old sorting library (fixes #3034)

arkon 4 년 전
부모
커밋
e29e94a5a1
2개의 변경된 파일6개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 0
      app/build.gradle
  2. 3 3
      app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt

+ 3 - 0
app/build.gradle

@@ -210,6 +210,9 @@ dependencies {
     final acra_version = '5.5.0'
     implementation "ch.acra:acra-http:$acra_version"
 
+    // Sort
+    implementation 'com.github.gpanther:java-nat-sort:natural-comparator-1.1'
+
     // UI
     implementation 'com.dmitrymalkovich.android:material-design-dimens:1.4'
     implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'

+ 3 - 3
app/src/main/java/eu/kanade/tachiyomi/util/lang/StringExtensions.kt

@@ -1,6 +1,7 @@
 package eu.kanade.tachiyomi.util.lang
 
 import kotlin.math.floor
+import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
 
 /**
  * Replaces the given string to have at most [count] characters using [replacement] at its end.
@@ -32,9 +33,8 @@ fun String.truncateCenter(count: Int, replacement: String = "..."): String {
  * Case-insensitive natural comparator for strings.
  */
 fun String.compareToCaseInsensitiveNaturalOrder(other: String): Int {
-    return compareBy<String> { it.length }
-        .then(String.CASE_INSENSITIVE_ORDER)
-        .then(naturalOrder()).compare(this, other)
+    val comparator = CaseInsensitiveSimpleNaturalComparator.getInstance<String>()
+    return comparator.compare(this, other)
 }
 
 /**