浏览代码

Avoid unnecessary string creation when sorting

arkon 3 年之前
父节点
当前提交
1c5c370c12

+ 3 - 4
app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt

@@ -34,7 +34,6 @@ import uy.kohesive.injekt.injectLazy
 import java.io.File
 import java.io.FileInputStream
 import java.io.InputStream
-import java.util.Locale
 import java.util.concurrent.TimeUnit
 import java.util.zip.ZipFile
 
@@ -111,9 +110,9 @@ class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSour
         when (state?.index) {
             0 -> {
                 mangaDirs = if (state.ascending) {
-                    mangaDirs.sortedBy { it.name.lowercase(Locale.ENGLISH) }
+                    mangaDirs.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER, { it.name }))
                 } else {
-                    mangaDirs.sortedByDescending { it.name.lowercase(Locale.ENGLISH) }
+                    mangaDirs.sortedWith(compareByDescending(String.CASE_INSENSITIVE_ORDER, { it.name }))
                 }
             }
             1 -> {
@@ -176,7 +175,7 @@ class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSour
             .asSequence()
             .mapNotNull { File(it, manga.key).listFiles()?.toList() }
             .flatten()
-            .firstOrNull { it.extension.lowercase() == "json" }
+            .firstOrNull { it.extension.equals("json", ignoreCase = true) }
 
         return if (localDetails != null) {
             val obj = json.decodeFromStream<JsonObject>(localDetails.inputStream())

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceFilterController.kt

@@ -42,7 +42,7 @@ class SourceFilterController : SettingsController() {
         )
 
         orderedLangs.forEach { lang ->
-            val sources = sourcesByLang[lang].orEmpty().sortedBy { it.name.lowercase() }
+            val sources = sourcesByLang[lang].orEmpty().sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER, { it.name }))
 
             // Create a preference group and set initial state and change listener
             switchPreferenceCategory {

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/more/licenses/LicensesController.kt

@@ -45,7 +45,7 @@ class LicensesController :
         viewScope.launchUI {
             val licenseItems = withIOContext {
                 Libs(view.context).libraries
-                    .sortedBy { it.libraryName.lowercase() }
+                    .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER, { it.libraryName }))
                     .map { LicensesItem(it) }
             }
             binding.progress.hide()

+ 2 - 2
app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt

@@ -130,8 +130,8 @@ fun syncChaptersWithSource(
                     // Try to to use the fetch date it originally had to not pollute 'Updates' tab
                     toDelete.filter { it.chapter_number == chapter.chapter_number }
                         .minByOrNull { it.date_fetch }!!.let {
-                            chapter.date_fetch = it.date_fetch
-                        }
+                        chapter.date_fetch = it.date_fetch
+                    }
                     readded.add(chapter)
                 }
             }