|
|
@ -80,6 +80,7 @@ class RecentsPresenter(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val pairs = mangaList.mapNotNull {
|
|
|
|
val pairs = mangaList.mapNotNull {
|
|
|
|
val chapter = if (it.chapter.read || it.chapter.id == null) getNextChapter(it.manga)
|
|
|
|
val chapter = if (it.chapter.read || it.chapter.id == null) getNextChapter(it.manga)
|
|
|
|
|
|
|
|
else if (it.history.id == null) getFirstUpdatedChapter(it.manga, it.chapter)
|
|
|
|
else it.chapter
|
|
|
|
else it.chapter
|
|
|
|
if (chapter == null) if (query.isNotEmpty() && it.chapter.id != null) Pair(
|
|
|
|
if (chapter == null) if (query.isNotEmpty() && it.chapter.id != null) Pair(
|
|
|
|
it, it.chapter
|
|
|
|
it, it.chapter
|
|
|
@ -92,7 +93,7 @@ class RecentsPresenter(
|
|
|
|
pairs.filter { it.first.history.id == null && it.first.chapter.id != null }
|
|
|
|
pairs.filter { it.first.history.id == null && it.first.chapter.id != null }
|
|
|
|
.sortedWith(Comparator<Pair<MangaChapterHistory, Chapter>> { f1, f2 ->
|
|
|
|
.sortedWith(Comparator<Pair<MangaChapterHistory, Chapter>> { f1, f2 ->
|
|
|
|
if (abs(f1.second.date_fetch - f2.second.date_fetch) <=
|
|
|
|
if (abs(f1.second.date_fetch - f2.second.date_fetch) <=
|
|
|
|
TimeUnit.HOURS.toMillis(2))
|
|
|
|
TimeUnit.HOURS.toMillis(12))
|
|
|
|
f2.second.date_upload.compareTo(f1.second.date_upload)
|
|
|
|
f2.second.date_upload.compareTo(f1.second.date_upload)
|
|
|
|
else
|
|
|
|
else
|
|
|
|
f2.second.date_fetch.compareTo(f1.second.date_fetch)
|
|
|
|
f2.second.date_fetch.compareTo(f1.second.date_fetch)
|
|
|
@ -132,6 +133,13 @@ class RecentsPresenter(
|
|
|
|
return chapters.sortedByDescending { it.source_order }.find { !it.read }
|
|
|
|
return chapters.sortedByDescending { it.source_order }.find { !it.read }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun getFirstUpdatedChapter(manga: Manga, chapter: Chapter): Chapter? {
|
|
|
|
|
|
|
|
val chapters = db.getChapters(manga).executeAsBlocking()
|
|
|
|
|
|
|
|
return chapters.sortedByDescending { it.source_order }.find {
|
|
|
|
|
|
|
|
!it.read && abs(it.date_fetch - chapter.date_fetch) <= TimeUnit.HOURS.toMillis(12)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fun onDestroy() {
|
|
|
|
fun onDestroy() {
|
|
|
|
downloadManager.removeListener(this)
|
|
|
|
downloadManager.removeListener(this)
|
|
|
|
LibraryUpdateService.removeListener(this)
|
|
|
|
LibraryUpdateService.removeListener(this)
|
|
|
|