Browse Source

Add option to sort library by source. (#985)

* Add option to sort library by source.

* Implement change suggested by NoodleMage.
ddmgy 7 years ago
parent
commit
74fd70416f

+ 5 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryNavigationView.kt

@@ -117,7 +117,9 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
 
         private val unread = Item.MultiSort(R.string.action_filter_unread, this)
 
-        override val items = listOf(alphabetically, lastRead, lastUpdated, unread, total)
+        private val source = Item.MultiSort(R.string.manga_info_source_label, this)
+
+        override val items = listOf(alphabetically, lastRead, lastUpdated, unread, total, source)
 
         override val header = Item.Header(R.string.action_sort)
 
@@ -133,6 +135,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
             lastUpdated.state = if (sorting == LibrarySort.LAST_UPDATED) order else SORT_NONE
             unread.state = if (sorting == LibrarySort.UNREAD) order else SORT_NONE
             total.state = if (sorting == LibrarySort.TOTAL) order else SORT_NONE
+            source.state = if (sorting == LibrarySort.SOURCE) order else SORT_NONE
         }
 
         override fun onItemClicked(item: Item) {
@@ -153,6 +156,7 @@ class LibraryNavigationView @JvmOverloads constructor(context: Context, attrs: A
                 lastUpdated -> LibrarySort.LAST_UPDATED
                 unread -> LibrarySort.UNREAD
                 total -> LibrarySort.TOTAL
+                source -> LibrarySort.SOURCE
                 else -> throw Exception("Unknown sorting")
             })
             preferences.librarySortingAscending().set(if (item.state == SORT_ASC) true else false)

+ 5 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt

@@ -174,6 +174,11 @@ class LibraryPresenter(
                     val mange2TotalChapter = totalChapterManga[manga2.id!!] ?: 0
                     manga1TotalChapter.compareTo(mange2TotalChapter)
                 }
+                LibrarySort.SOURCE -> {
+                    val source1Name = sourceManager.get(manga1.source)?.name ?: ""
+                    val source2Name = sourceManager.get(manga2.source)?.name ?: ""
+                    source1Name.compareTo(source2Name)
+                }
                 else -> throw Exception("Unknown sorting mode")
             }
         }

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySort.kt

@@ -7,4 +7,5 @@ object LibrarySort {
     const val LAST_UPDATED = 2
     const val UNREAD = 3
     const val TOTAL = 4
+    const val SOURCE = 5
 }