Lets try this for sort by tag performance

This commit is contained in:
Jobobby04 2020-10-24 13:38:45 -04:00
parent 01496ab34c
commit 024a39d06b

View File

@ -312,14 +312,15 @@ class LibraryPresenter(
// SY --> // SY -->
val listOfTags by lazy { val listOfTags by lazy {
preferences.sortTagsForLibrary().get().toList() preferences.sortTagsForLibrary().get()
.asSequence()
.mapNotNull { .mapNotNull {
val list = it.split("|") val list = it.split("|")
(list.getOrNull(0)?.toIntOrNull() ?: return@mapNotNull null) to (list.getOrNull(1) ?: return@mapNotNull null) (list.getOrNull(0)?.toIntOrNull() ?: return@mapNotNull null) to (list.getOrNull(1) ?: return@mapNotNull null)
} }
.sortedBy { it.first } .sortedBy { it.first }
.map { it.second } .map { it.second }
.map { ("(, |^)$it").toRegex(RegexOption.IGNORE_CASE) } .toList()
} }
// SY <-- // SY <--
@ -352,8 +353,8 @@ class LibraryPresenter(
0 0
} }
LibrarySort.TAG_LIST -> { LibrarySort.TAG_LIST -> {
val manga1IndexOfTag = listOfTags.indexOfFirst { i1.manga.genre?.let { tagString -> it.containsMatchIn(tagString) } ?: false } val manga1IndexOfTag = listOfTags.indexOfFirst { i1.manga.getGenres()?.contains(it) ?: false }
val manga2IndexOfTag = listOfTags.indexOfFirst { i2.manga.genre?.let { tagString -> it.containsMatchIn(tagString) } ?: false } val manga2IndexOfTag = listOfTags.indexOfFirst { i2.manga.getGenres()?.contains(it) ?: false }
manga1IndexOfTag.compareTo(manga2IndexOfTag) manga1IndexOfTag.compareTo(manga2IndexOfTag)
} }
// SY <-- // SY <--