mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Avoid unnecessary string creation when sorting
This commit is contained in:
		@@ -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())
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user