mirror of
https://git.mihon.tech/mihonapp/mihon
synced 2024-11-27 09:44:55 +03:00
Chapters FAB doesn't depend on the recognized chapter number. Cloudflare resolver fix
This commit is contained in:
parent
6beff242b0
commit
02a697031f
4 changed files with 20 additions and 25 deletions
|
@ -68,8 +68,8 @@ public class Manga implements Serializable {
|
||||||
public static final int COMPLETED = 2;
|
public static final int COMPLETED = 2;
|
||||||
public static final int LICENSED = 3;
|
public static final int LICENSED = 3;
|
||||||
|
|
||||||
public static final int SORT_AZ = 0x00000000;
|
public static final int SORT_DESC = 0x00000000;
|
||||||
public static final int SORT_ZA = 0x00000001;
|
public static final int SORT_ASC = 0x00000001;
|
||||||
public static final int SORT_MASK = 0x00000001;
|
public static final int SORT_MASK = 0x00000001;
|
||||||
|
|
||||||
// Generic filter that does not filter anything
|
// Generic filter that does not filter anything
|
||||||
|
@ -174,8 +174,8 @@ public class Manga implements Serializable {
|
||||||
chapter_flags = (chapter_flags & ~mask) | (flag & mask);
|
chapter_flags = (chapter_flags & ~mask) | (flag & mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean sortChaptersAZ() {
|
public boolean sortDescending() {
|
||||||
return (chapter_flags & SORT_MASK) == SORT_AZ;
|
return (chapter_flags & SORT_MASK) == SORT_DESC;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used to display the chapter's title one way or another
|
// Used to display the chapter's title one way or another
|
||||||
|
|
|
@ -21,7 +21,7 @@ class CloudflareInterceptor(private val cookies: PersistentCookieStore) : Interc
|
||||||
val response = chain.proceed(chain.request())
|
val response = chain.proceed(chain.request())
|
||||||
|
|
||||||
// Check if we already solved a challenge
|
// Check if we already solved a challenge
|
||||||
if (response.code() != 502 &&
|
if (response.code() != 503 &&
|
||||||
cookies.get(response.request().url()).any { it.name() == "cf_clearance" }) {
|
cookies.get(response.request().url()).any { it.name() == "cf_clearance" }) {
|
||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@ class ChaptersFragment : BaseRxFragment<ChaptersPresenter>(), ActionMode.Callbac
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (chapters.size > 0) {
|
if (chapters.size > 0) {
|
||||||
if (!presenter.sortOrder()) {
|
if (!presenter.sortDescending()) {
|
||||||
chapters.reverse()
|
chapters.reverse()
|
||||||
}
|
}
|
||||||
when (i) {
|
when (i) {
|
||||||
|
|
|
@ -123,23 +123,18 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() {
|
||||||
if (onlyDownloaded()) {
|
if (onlyDownloaded()) {
|
||||||
observable = observable.filter { chapter -> chapter.status == Download.DOWNLOADED }
|
observable = observable.filter { chapter -> chapter.status == Download.DOWNLOADED }
|
||||||
}
|
}
|
||||||
return observable.toSortedList { chapter1, chapter2 ->
|
val sortFunction: (Chapter, Chapter) -> Int = when (manga.sorting) {
|
||||||
when (manga.sorting) {
|
Manga.SORTING_SOURCE -> when (sortDescending()) {
|
||||||
Manga.SORTING_NUMBER -> {
|
true -> { c1, c2 -> c1.source_order.compareTo(c2.source_order) }
|
||||||
if (sortOrder())
|
false -> { c1, c2 -> c2.source_order.compareTo(c1.source_order) }
|
||||||
chapter2.chapter_number.compareTo(chapter1.chapter_number)
|
|
||||||
else
|
|
||||||
chapter1.chapter_number.compareTo(chapter2.chapter_number)
|
|
||||||
}
|
}
|
||||||
Manga.SORTING_SOURCE -> {
|
Manga.SORTING_NUMBER -> when (sortDescending()) {
|
||||||
if (sortOrder())
|
true -> { c1, c2 -> c2.chapter_number.compareTo(c1.chapter_number) }
|
||||||
chapter1.source_order.compareTo(chapter2.source_order)
|
false -> { c1, c2 -> c1.chapter_number.compareTo(c2.chapter_number) }
|
||||||
else
|
|
||||||
chapter2.source_order.compareTo(chapter1.source_order)
|
|
||||||
}
|
|
||||||
else -> throw AssertionError("Unknown sorting method")
|
|
||||||
}
|
}
|
||||||
|
else -> throw NotImplementedError("Unimplemented sorting method")
|
||||||
}
|
}
|
||||||
|
return observable.toSortedList(sortFunction)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setChapterStatus(chapter: Chapter) {
|
private fun setChapterStatus(chapter: Chapter) {
|
||||||
|
@ -169,7 +164,7 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getNextUnreadChapter(): Chapter? {
|
fun getNextUnreadChapter(): Chapter? {
|
||||||
return db.getNextUnreadChapter(manga).executeAsBlocking()
|
return chapters.sortedByDescending { it.source_order }.find { !it.read }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun markChaptersRead(selectedChapters: List<Chapter>, read: Boolean) {
|
fun markChaptersRead(selectedChapters: List<Chapter>, read: Boolean) {
|
||||||
|
@ -228,7 +223,7 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun revertSortOrder() {
|
fun revertSortOrder() {
|
||||||
manga.setChapterOrder(if (sortOrder()) Manga.SORT_ZA else Manga.SORT_AZ)
|
manga.setChapterOrder(if (sortDescending()) Manga.SORT_ASC else Manga.SORT_DESC)
|
||||||
db.insertManga(manga).executeAsBlocking()
|
db.insertManga(manga).executeAsBlocking()
|
||||||
refreshChapters()
|
refreshChapters()
|
||||||
}
|
}
|
||||||
|
@ -264,8 +259,8 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() {
|
||||||
return manga.readFilter == Manga.SHOW_UNREAD
|
return manga.readFilter == Manga.SHOW_UNREAD
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sortOrder(): Boolean {
|
fun sortDescending(): Boolean {
|
||||||
return manga.sortChaptersAZ()
|
return manga.sortDescending()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue