Avoid unnecessary string creation when sorting

This commit is contained in:
arkon 2021-12-24 10:26:24 -05:00
parent 448645d83a
commit 1c5c370c12
4 changed files with 7 additions and 8 deletions

View file

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

View file

@ -42,7 +42,7 @@ class SourceFilterController : SettingsController() {
) )
orderedLangs.forEach { lang -> 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 // Create a preference group and set initial state and change listener
switchPreferenceCategory { switchPreferenceCategory {

View file

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

View file

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