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