diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 728f5bdde5..9762578538 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -13,7 +13,6 @@ import com.bluelinelabs.conductor.RouterTransaction import com.bluelinelabs.conductor.support.RouterPagerAdapter import com.google.android.material.tabs.TabLayout import com.jakewharton.rxrelay.BehaviorRelay -import com.jakewharton.rxrelay.PublishRelay import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Manga @@ -63,8 +62,6 @@ class MangaController : RxController, TabbedController { val fromSource = args.getBoolean(FROM_SOURCE_EXTRA, false) - val mangaFavoriteRelay: PublishRelay = PublishRelay.create() - private val trackingIconRelay: BehaviorRelay = BehaviorRelay.create() private var trackingIconSubscription: Subscription? = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersController.kt index 2334fd9343..364523295c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersController.kt @@ -97,7 +97,7 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) : override fun createPresenter(): MangaInfoChaptersPresenter { val ctrl = parentController as MangaController return MangaInfoChaptersPresenter( - ctrl.manga!!, ctrl.source!!, ctrl.mangaFavoriteRelay + ctrl.manga!!, ctrl.source!! ) } @@ -381,35 +381,39 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) : toggleFavorite() activity?.toast(activity?.getString(R.string.manga_removed_library)) } else { - val categories = presenter.getCategories() - val defaultCategoryId = preferences.defaultCategory() - val defaultCategory = categories.find { it.id == defaultCategoryId } + addToLibrary(manga) + } + } - when { - // Default category set - defaultCategory != null -> { - toggleFavorite() - presenter.moveMangaToCategory(manga, defaultCategory) - activity?.toast(activity?.getString(R.string.manga_added_library)) - } + private fun addToLibrary(manga: Manga) { + val categories = presenter.getCategories() + val defaultCategoryId = preferences.defaultCategory() + val defaultCategory = categories.find { it.id == defaultCategoryId } - // Automatic 'Default' or no categories - defaultCategoryId == 0 || categories.isEmpty() -> { - toggleFavorite() - presenter.moveMangaToCategory(manga, null) - activity?.toast(activity?.getString(R.string.manga_added_library)) - } + when { + // Default category set + defaultCategory != null -> { + toggleFavorite() + presenter.moveMangaToCategory(manga, defaultCategory) + activity?.toast(activity?.getString(R.string.manga_added_library)) + } - // Choose a category - else -> { - val ids = presenter.getMangaCategoryIds(manga) - val preselected = ids.mapNotNull { id -> - categories.indexOfFirst { it.id == id }.takeIf { it != -1 } - }.toTypedArray() + // Automatic 'Default' or no categories + defaultCategoryId == 0 || categories.isEmpty() -> { + toggleFavorite() + presenter.moveMangaToCategory(manga, null) + activity?.toast(activity?.getString(R.string.manga_added_library)) + } - ChangeMangaCategoriesDialog(this, listOf(manga), categories, preselected) - .showDialog(router) - } + // Choose a category + else -> { + val ids = presenter.getMangaCategoryIds(manga) + val preselected = ids.mapNotNull { id -> + categories.indexOfFirst { it.id == id }.takeIf { it != -1 } + }.toTypedArray() + + ChangeMangaCategoriesDialog(this, listOf(manga), categories, preselected) + .showDialog(router) } } } @@ -755,11 +759,12 @@ class MangaInfoChaptersController(private val fromSource: Boolean = false) : private fun downloadChapters(chapters: List) { val view = view + val manga = presenter.manga presenter.downloadChapters(chapters) - if (view != null && !presenter.manga.favorite) { + if (view != null && !manga.favorite) { binding.recycler.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) { setAction(R.string.action_add) { - presenter.addToLibrary() + addToLibrary(manga) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersPresenter.kt index 15189c8793..0acd1da6f5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/MangaInfoChaptersPresenter.kt @@ -31,7 +31,6 @@ import uy.kohesive.injekt.api.get class MangaInfoChaptersPresenter( val manga: Manga, val source: Source, - private val mangaFavoriteRelay: PublishRelay, val preferences: PreferencesHelper = Injekt.get(), private val db: DatabaseHelper = Injekt.get(), private val downloadManager: DownloadManager = Injekt.get(), @@ -80,11 +79,6 @@ class MangaInfoChaptersPresenter( getMangaObservable() .subscribeLatestCache({ view, manga -> view.onNextMangaInfo(manga, source) }) - // Update favorite status - mangaFavoriteRelay.observeOn(AndroidSchedulers.mainThread()) - .subscribe { setFavorite(it) } - .apply { add(this) } - // Prepare the relay. chaptersRelay.flatMap { applyChapterFilters(it) } .observeOn(AndroidSchedulers.mainThread()) @@ -162,13 +156,6 @@ class MangaInfoChaptersPresenter( return manga.favorite } - private fun setFavorite(favorite: Boolean) { - if (manga.favorite == favorite) { - return - } - toggleFavorite() - } - /** * Returns true if the manga has any downloads. */ @@ -503,13 +490,6 @@ class MangaInfoChaptersPresenter( refreshChapters() } - /** - * Adds manga to library - */ - fun addToLibrary() { - mangaFavoriteRelay.call(true) - } - /** * Sets the active display mode. * @param mode the mode to set.