diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
index 69c9cc6b6e..fe3c074d5e 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
@@ -78,7 +78,8 @@ interface Manga : SManga {
const val SORTING_SOURCE = 0x00000000
const val SORTING_NUMBER = 0x00000100
- const val SORTING_MASK = 0x00000100
+ const val SORTING_UPLOAD_DATE = 0x00000200
+ const val SORTING_MASK = 0x00000300
const val DISPLAY_NAME = 0x00000000
const val DISPLAY_NUMBER = 0x00100000
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersController.kt
index 59e64f6951..b2aa4ba3c3 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersController.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersController.kt
@@ -196,11 +196,13 @@ class ChaptersController :
}
// Sorting mode submenu
- if (presenter.manga.sorting == Manga.SORTING_SOURCE) {
- menu.findItem(R.id.sort_by_source).isChecked = true
- } else {
- menu.findItem(R.id.sort_by_number).isChecked = true
+ val sortingItem = when (presenter.manga.sorting) {
+ Manga.SORTING_SOURCE -> R.id.sort_by_source
+ Manga.SORTING_NUMBER -> R.id.sort_by_number
+ Manga.SORTING_UPLOAD_DATE -> R.id.sort_by_upload_date
+ else -> throw NotImplementedError("Unimplemented sorting method")
}
+ menu.findItem(sortingItem).isChecked = true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
@@ -222,6 +224,10 @@ class ChaptersController :
item.isChecked = true
presenter.setSorting(Manga.SORTING_NUMBER)
}
+ R.id.sort_by_upload_date -> {
+ item.isChecked = true
+ presenter.setSorting(Manga.SORTING_UPLOAD_DATE)
+ }
R.id.download_next, R.id.download_next_5, R.id.download_next_10,
R.id.download_custom, R.id.download_unread, R.id.download_all
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersPresenter.kt
index e108a8eb73..1434e3d56a 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersPresenter.kt
@@ -203,6 +203,10 @@ class ChaptersPresenter(
true -> { c1, c2 -> c2.chapter_number.compareTo(c1.chapter_number) }
false -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) }
}
+ Manga.SORTING_UPLOAD_DATE -> when (sortDescending()) {
+ true -> { c1, c2 -> c2.date_upload.compareTo(c1.date_upload) }
+ false -> { c1, c2 -> c1.date_upload.compareTo(c2.date_upload) }
+ }
else -> throw NotImplementedError("Unimplemented sorting method")
}
return observable.toSortedList(sortFunction)
diff --git a/app/src/main/res/menu/chapters.xml b/app/src/main/res/menu/chapters.xml
index 13ae70dc31..e4d16d4071 100644
--- a/app/src/main/res/menu/chapters.xml
+++ b/app/src/main/res/menu/chapters.xml
@@ -64,6 +64,9 @@
+
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index f69266a231..330af7f1eb 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -183,6 +183,7 @@
Ordenado de capítulos
Por fuente
Por número de capítulo
+ Por fecha de carga
Descargar
Siguiente capítulo
Siguientes 5 capítulos
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 788a8bcec2..ef12c49dfd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -473,6 +473,7 @@
Sorting mode
By source
By chapter number
+ By chapter upload date
Download
Download custom amount
Next chapter