From 89d976875959a80d76faee5d0139a43756a62e2d Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Mon, 19 Oct 2020 21:05:24 -0400 Subject: [PATCH] Re-add some stuff from EH that I lost along the way --- .../tachiyomi/ui/manga/MangaController.kt | 22 +++++++++++++++++++ .../tachiyomi/ui/manga/MangaPresenter.kt | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) 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 95f4acc76..d2243036c 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 @@ -33,6 +33,7 @@ import androidx.recyclerview.widget.RecyclerView import com.bluelinelabs.conductor.ControllerChangeHandler import com.bluelinelabs.conductor.ControllerChangeType import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.elvishew.xlog.XLog import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton import com.google.android.material.snackbar.Snackbar import eu.davidea.flexibleadapter.FlexibleAdapter @@ -107,6 +108,7 @@ import kotlinx.coroutines.withContext import reactivecircus.flowbinding.android.view.clicks import reactivecircus.flowbinding.recyclerview.scrollEvents import reactivecircus.flowbinding.swiperefreshlayout.refreshes +import rx.android.schedulers.AndroidSchedulers import timber.log.Timber import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -149,6 +151,18 @@ class MangaController : @Suppress("unused") constructor(bundle: Bundle) : this(bundle.getLong(MANGA_EXTRA)) + // SY --> + constructor(redirect: MangaPresenter.EXHRedirect) : super(Bundle().apply { + putLong(MANGA_EXTRA, redirect.manga.id!!) + putBoolean(UPDATE_EXTRA, redirect.update) + }) { + this.manga = redirect.manga + if (manga != null) { + source = Injekt.get().getOrStub(redirect.manga.source) + } + } + // SY <-- + var manga: Manga? = null private set @@ -321,6 +335,14 @@ class MangaController : } } + presenter.redirectUserRelay + .observeOn(AndroidSchedulers.mainThread()) + .subscribeUntilDestroy { redirect -> + XLog.d("Redirecting to updated manga (manga.id: %s, manga.title: %s, update: %s)!", redirect.manga.id, redirect.manga.title, redirect.update) + // Replace self + router?.replaceTopController(MangaController(redirect).withFadeTransaction()) + } + updateFilterIconState() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index a25a8f24e..683c3f3f4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -116,7 +116,7 @@ class MangaPresenter( private val updateHelper: EHentaiUpdateHelper by injectLazy() - private val redirectUserRelay = BehaviorRelay.create() + val redirectUserRelay = BehaviorRelay.create() data class EXHRedirect(val manga: Manga, val update: Boolean)