mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Actually compare chapter numbers as numbers when sorting (fixes #7247)
(cherry picked from commit da8669c826)
			
			
This commit is contained in:
		| @@ -20,8 +20,8 @@ object MigrationFlags { | ||||
|     private const val CATEGORIES2 = 0x2 | ||||
|     private const val TRACK2 = 0x4 | ||||
|  | ||||
| 	private val coverCache: CoverCache by injectLazy() | ||||
| 	private val db: DatabaseHelper = Injekt.get() | ||||
|     private val coverCache: CoverCache by injectLazy() | ||||
|     private val db: DatabaseHelper = Injekt.get() | ||||
|  | ||||
|     val flags get() = arrayOf(CHAPTERS, CATEGORIES, TRACK, CUSTOM_COVER) | ||||
|  | ||||
| @@ -49,19 +49,19 @@ object MigrationFlags { | ||||
|         return positions.fold(0) { accumulated, position -> accumulated or (1 shl position) } | ||||
|     } | ||||
|  | ||||
| 	fun titles(manga: Manga?): Array<Int> { | ||||
| 		val titles = arrayOf(R.string.chapters, R.string.categories).toMutableList() | ||||
| 		if (manga != null) { | ||||
| 			db.inTransaction { | ||||
| 				if (db.getTracks(manga).executeAsBlocking().isNotEmpty()) { | ||||
| 					titles.add(R.string.track) | ||||
| 				} | ||||
|     fun titles(manga: Manga?): Array<Int> { | ||||
|         val titles = arrayOf(R.string.chapters, R.string.categories).toMutableList() | ||||
|         if (manga != null) { | ||||
|             db.inTransaction { | ||||
|                 if (db.getTracks(manga).executeAsBlocking().isNotEmpty()) { | ||||
|                     titles.add(R.string.track) | ||||
|                 } | ||||
|  | ||||
| 				if (manga.hasCustomCover(coverCache)) { | ||||
| 					titles.add(R.string.custom_cover) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 			return titles.toTypedArray() | ||||
| 	} | ||||
|                 if (manga.hasCustomCover(coverCache)) { | ||||
|                     titles.add(R.string.custom_cover) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return titles.toTypedArray() | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.util.chapter | ||||
|  | ||||
| import eu.kanade.tachiyomi.data.database.models.Chapter | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder | ||||
|  | ||||
| fun getChapterSort(manga: Manga, sortDescending: Boolean = manga.sortDescending()): (Chapter, Chapter) -> Int { | ||||
|     return when (manga.sorting) { | ||||
| @@ -11,13 +10,13 @@ fun getChapterSort(manga: Manga, sortDescending: Boolean = manga.sortDescending( | ||||
|             false -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) } | ||||
|         } | ||||
|         Manga.CHAPTER_SORTING_NUMBER -> when (sortDescending) { | ||||
|             true -> { c1, c2 -> c2.chapter_number.toString().compareToCaseInsensitiveNaturalOrder(c1.chapter_number.toString()) } | ||||
|             false -> { c1, c2 -> c1.chapter_number.toString().compareToCaseInsensitiveNaturalOrder(c2.chapter_number.toString()) } | ||||
|             true -> { c1, c2 -> c2.chapter_number.compareTo(c1.chapter_number) } | ||||
|             false -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) } | ||||
|         } | ||||
|         Manga.CHAPTER_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") | ||||
|         else -> throw NotImplementedError("Invalid chapter sorting method: ${manga.sorting}") | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user