Cleanup
This commit is contained in:
parent
56f4b1f224
commit
60f9391b4e
@ -612,7 +612,7 @@ class MangaController :
|
||||
// SY -->
|
||||
fun openMergedMangaWebview() {
|
||||
val sourceManager: SourceManager = Injekt.get()
|
||||
val mergedManga = presenter.mergedManga.filterNot { it.source == MERGED_SOURCE_ID }
|
||||
val mergedManga = presenter.mergedManga.values.filterNot { it.source == MERGED_SOURCE_ID }
|
||||
val sources = mergedManga.map { sourceManager.getOrStub(it.source) }
|
||||
MaterialDialog(activity!!)
|
||||
.title(R.string.action_open_in_web_view)
|
||||
|
@ -148,7 +148,7 @@ class MangaPresenter(
|
||||
|
||||
var meta: RaisedSearchMetadata? = null
|
||||
|
||||
var mergedManga = emptyList<Manga>()
|
||||
var mergedManga = emptyMap<Long, Manga>()
|
||||
private set
|
||||
|
||||
var dedupe: Boolean = true
|
||||
@ -161,7 +161,7 @@ class MangaPresenter(
|
||||
|
||||
// SY -->
|
||||
if (source is MergedSource) {
|
||||
launchIO { mergedManga = db.getMergedMangas(manga.id!!).executeAsBlocking() }
|
||||
launchIO { mergedManga = db.getMergedMangas(manga.id!!).executeAsBlocking().associateBy { it.id!! } }
|
||||
}
|
||||
// SY <--
|
||||
|
||||
@ -559,7 +559,7 @@ class MangaPresenter(
|
||||
fun deleteDownloads() {
|
||||
// SY -->
|
||||
if (source is MergedSource) {
|
||||
val mergedManga = mergedManga.map { it to sourceManager.getOrStub(it.source) }
|
||||
val mergedManga = mergedManga.map { it.value to sourceManager.getOrStub(it.value.source) }
|
||||
mergedManga.forEach { (manga, source) ->
|
||||
downloadManager.deleteManga(manga, source)
|
||||
}
|
||||
@ -685,7 +685,7 @@ class MangaPresenter(
|
||||
private fun observeDownloads() {
|
||||
// SY -->
|
||||
val isMergedSource = source is MergedSource
|
||||
val mergedIds = if (isMergedSource) mergedManga.mapNotNull { it.id } else emptyList()
|
||||
val mergedIds = if (isMergedSource) mergedManga.keys else emptySet()
|
||||
// SY <--
|
||||
observeDownloadsStatusSubscription?.let { remove(it) }
|
||||
observeDownloadsStatusSubscription = downloadManager.queue.getStatusObservable()
|
||||
@ -741,7 +741,7 @@ class MangaPresenter(
|
||||
val isMergedSource = source is MergedSource
|
||||
// SY <--
|
||||
chapters
|
||||
.filter { downloadManager.isChapterDownloaded(/* SY --> */ if (isMergedSource) it.toMergedDownloadChapter() else it, if (isMergedSource) mergedManga.firstOrNull { manga -> it.manga_id == manga.id } ?: manga else /* SY <-- */ manga) }
|
||||
.filter { downloadManager.isChapterDownloaded(/* SY --> */ if (isMergedSource) it.toMergedDownloadChapter() else it, if (isMergedSource) mergedManga[it.manga_id] ?: manga else /* SY <-- */ manga) }
|
||||
.forEach { it.status = Download.State.DOWNLOADED }
|
||||
}
|
||||
|
||||
@ -921,7 +921,7 @@ class MangaPresenter(
|
||||
// SY -->
|
||||
if (source is MergedSource) {
|
||||
chapters.groupBy { it.manga_id }.forEach { map ->
|
||||
val manga = mergedManga.firstOrNull { it.id == map.key } ?: return@forEach
|
||||
val manga = mergedManga[map.key] ?: return@forEach
|
||||
downloadManager.downloadChapters(manga, map.value.map { it.toMergedDownloadChapter() })
|
||||
}
|
||||
} else /* SY <-- */ downloadManager.downloadChapters(manga, chapters)
|
||||
@ -1117,7 +1117,7 @@ class MangaPresenter(
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
// SY -->
|
||||
.map { trackItems ->
|
||||
if (manga.source in mangaDexSourceIds || mergedManga.any { it.source in mangaDexSourceIds }) {
|
||||
if (manga.source in mangaDexSourceIds || mergedManga.values.any { it.source in mangaDexSourceIds }) {
|
||||
val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST }
|
||||
when {
|
||||
mdTrack == null -> {
|
||||
@ -1137,7 +1137,7 @@ class MangaPresenter(
|
||||
|
||||
// SY -->
|
||||
private fun createMdListTrack(): TrackItem {
|
||||
val mdManga = mergedManga.find { it.source in mangaDexSourceIds }
|
||||
val mdManga = mergedManga.values.find { it.source in mangaDexSourceIds }
|
||||
val track = trackManager.mdList.createInitialTracker(manga, mdManga ?: manga)
|
||||
track.id = db.insertTrack(track).executeAsBlocking().insertedId()
|
||||
return TrackItem(track, trackManager.mdList)
|
||||
|
@ -84,7 +84,7 @@ class ReaderPresenter(
|
||||
// SY -->
|
||||
var meta: RaisedSearchMetadata? = null
|
||||
private set
|
||||
var mergedManga: List<Manga>? = null
|
||||
var mergedManga: Map<Long, Manga>? = null
|
||||
private set
|
||||
// SY <--
|
||||
|
||||
@ -284,8 +284,8 @@ class ReaderPresenter(
|
||||
val context = Injekt.get<Application>()
|
||||
val source = sourceManager.getOrStub(manga.source)
|
||||
val mergedReferences = if (source is MergedSource) db.getMergedMangaReferences(manga.id!!).executeAsBlocking() else emptyList()
|
||||
mergedManga = if (source is MergedSource) db.getMergedMangas(manga.id!!).executeAsBlocking() else emptyList()
|
||||
loader = ChapterLoader(context, downloadManager, manga, source, sourceManager, mergedReferences, mergedManga ?: emptyList())
|
||||
mergedManga = if (source is MergedSource) db.getMergedMangas(manga.id!!).executeAsBlocking().associateBy { it.id!! } else emptyMap()
|
||||
loader = ChapterLoader(context, downloadManager, manga, source, sourceManager, mergedReferences, mergedManga ?: emptyMap())
|
||||
|
||||
Observable.just(manga).subscribeLatestCache(ReaderActivity::setManga)
|
||||
viewerChaptersRelay.subscribeLatestCache(ReaderActivity::setChapters)
|
||||
@ -601,11 +601,12 @@ class ReaderPresenter(
|
||||
// SY -->
|
||||
return when {
|
||||
resolveDefault && readingMode == ReadingModeType.DEFAULT && preferences.useAutoWebtoon().get() -> {
|
||||
manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name)) ?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) {
|
||||
default
|
||||
} else {
|
||||
readingMode.prefValue
|
||||
}
|
||||
manga.defaultReaderType(manga.mangaType(sourceName = sourceManager.get(manga.source)?.name))
|
||||
?: if (manga.readingModeType == ReadingModeType.DEFAULT.flagValue) {
|
||||
default
|
||||
} else {
|
||||
readingMode.prefValue
|
||||
}
|
||||
}
|
||||
resolveDefault && readingMode == ReadingModeType.DEFAULT -> default
|
||||
else -> manga.readingModeType
|
||||
@ -929,7 +930,7 @@ class ReaderPresenter(
|
||||
val manga = if (mergedManga.isNullOrEmpty()) {
|
||||
manga
|
||||
} else {
|
||||
mergedManga?.find { it.id == chapter.chapter.manga_id }
|
||||
mergedManga.orEmpty()[chapter.chapter.manga_id]
|
||||
} ?: return
|
||||
// SY <--
|
||||
|
||||
|
@ -29,7 +29,7 @@ class ChapterLoader(
|
||||
// SY -->
|
||||
private val sourceManager: SourceManager,
|
||||
private val mergedReferences: List<MergedMangaReference>,
|
||||
private val mergedManga: List<Manga>
|
||||
private val mergedManga: Map<Long, Manga>
|
||||
// SY <--
|
||||
) {
|
||||
|
||||
@ -93,7 +93,7 @@ class ChapterLoader(
|
||||
source is MergedSource -> {
|
||||
val mangaReference = mergedReferences.firstOrNull { it.mangaId == chapter.chapter.manga_id } ?: error("Merge reference null")
|
||||
val source = sourceManager.get(mangaReference.mangaSourceId) ?: error("Source ${mangaReference.mangaSourceId} was null")
|
||||
val manga = mergedManga.firstOrNull { it.id == chapter.chapter.manga_id } ?: error("Manga for merged chapter was null")
|
||||
val manga = mergedManga[chapter.chapter.manga_id] ?: error("Manga for merged chapter was null")
|
||||
val isMergedMangaDownloaded = downloadManager.isChapterDownloaded(chapter.chapter, manga, true)
|
||||
when {
|
||||
isMergedMangaDownloaded -> DownloadPageLoader(chapter, manga, source, downloadManager)
|
||||
|
Loading…
x
Reference in New Issue
Block a user