From f42eb880760a413523ddc010d04276c270d93328 Mon Sep 17 00:00:00 2001
From: Jay <jays2kings@gmail.com>
Date: Tue, 14 Jan 2020 22:19:33 -0800
Subject: [PATCH] Sorting for library now honors skipping articles in other
 sorting modes

---
 .../tachiyomi/ui/library/LibraryPresenter.kt     | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
index a61ddd072b..daa00e65da 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
@@ -208,24 +208,23 @@ class LibraryPresenter(
             listOf(default) + db.getCategories().executeAsBlocking()
         }
 
+        val ascending = preferences.librarySortingAscending().getOrDefault()
 
         val sortFn: (LibraryItem, LibraryItem) -> Int = { i1, i2 ->
-            when (sortingMode) {
+            val compare = when (sortingMode) {
                 LibrarySort.ALPHA -> sortAlphabetical(i1, i2)
                 LibrarySort.LAST_READ -> {
                     // Get index of manga, set equal to list if size unknown.
                     val manga1LastRead = lastReadManga[i1.manga.id!!] ?: lastReadManga.size
                     val manga2LastRead = lastReadManga[i2.manga.id!!] ?: lastReadManga.size
-                    val mangaCompare = manga1LastRead.compareTo(manga2LastRead)
-                    if (mangaCompare == 0) sortAlphabetical(i1, i2) else mangaCompare
+                    manga1LastRead.compareTo(manga2LastRead)
                 }
                 LibrarySort.LAST_UPDATED -> i2.manga.last_update.compareTo(i1.manga.last_update)
                 LibrarySort.UNREAD -> i1.manga.unread.compareTo(i2.manga.unread)
                 LibrarySort.TOTAL -> {
                     val manga1TotalChapter = totalChapterManga[i1.manga.id!!] ?: 0
                     val mange2TotalChapter = totalChapterManga[i2.manga.id!!] ?: 0
-                    val mangaCompare = manga1TotalChapter.compareTo(mange2TotalChapter)
-                    if (mangaCompare == 0) sortAlphabetical(i1, i2) else mangaCompare
+                    manga1TotalChapter.compareTo(mange2TotalChapter)
                 }
                 LibrarySort.DRAG_AND_DROP -> {
                     if (i1.manga.category == i2.manga.category) {
@@ -258,9 +257,14 @@ class LibraryPresenter(
                 }
                 else -> 0
             }
+            if (compare == 0) {
+                if (ascending) sortAlphabetical(i1, i2)
+                else sortAlphabetical(i2, i1)
+            }
+            else compare
         }
 
-        val comparator = if (preferences.librarySortingAscending().getOrDefault())
+        val comparator = if (ascending)
             Comparator(sortFn)
         else
             Collections.reverseOrder(sortFn)