mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Open migrated/copied MangaController right away (#5005)
This commit is contained in:
		| @@ -6,6 +6,7 @@ import androidx.core.view.isVisible | ||||
| import com.afollestad.materialdialogs.MaterialDialog | ||||
| import com.afollestad.materialdialogs.list.listItemsMultiChoice | ||||
| import com.bluelinelabs.conductor.Controller | ||||
| import com.bluelinelabs.conductor.RouterTransaction | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| @@ -15,6 +16,7 @@ import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction | ||||
| import eu.kanade.tachiyomi.ui.browse.migration.MigrationFlags | ||||
| import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController | ||||
| import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchPresenter | ||||
| import eu.kanade.tachiyomi.ui.manga.MangaController | ||||
| import uy.kohesive.injekt.injectLazy | ||||
|  | ||||
| class SearchController( | ||||
| @@ -69,12 +71,14 @@ class SearchController( | ||||
|         super.onMangaClick(manga) | ||||
|     } | ||||
|  | ||||
|     fun renderIsReplacingManga(isReplacingManga: Boolean) { | ||||
|         if (isReplacingManga) { | ||||
|             binding.progress.isVisible = true | ||||
|         } else { | ||||
|             binding.progress.isVisible = false | ||||
|     fun renderIsReplacingManga(isReplacingManga: Boolean, newManga: Manga?) { | ||||
|         binding.progress.isVisible = isReplacingManga | ||||
|         if (!isReplacingManga) { | ||||
|             router.popController(this) | ||||
|             if (newManga != null) { | ||||
|                 // Replaces old MangaController | ||||
|                 router.replaceTopController(RouterTransaction.with(MangaController(newManga))) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -26,12 +26,16 @@ class SearchPresenter( | ||||
|     private val manga: Manga | ||||
| ) : GlobalSearchPresenter(initialQuery) { | ||||
|  | ||||
|     private val replacingMangaRelay = BehaviorRelay.create<Boolean>() | ||||
|     private val replacingMangaRelay = BehaviorRelay.create<Pair<Boolean, Manga?>>() | ||||
|  | ||||
|     override fun onCreate(savedState: Bundle?) { | ||||
|         super.onCreate(savedState) | ||||
|  | ||||
|         replacingMangaRelay.subscribeLatestCache({ controller, isReplacingManga -> (controller as? SearchController)?.renderIsReplacingManga(isReplacingManga) }) | ||||
|         replacingMangaRelay.subscribeLatestCache( | ||||
|             { controller, (isReplacingManga, newManga) -> | ||||
|                 (controller as? SearchController)?.renderIsReplacingManga(isReplacingManga, newManga) | ||||
|             } | ||||
|         ) | ||||
|     } | ||||
|  | ||||
|     override fun getEnabledSources(): List<CatalogueSource> { | ||||
| @@ -55,7 +59,7 @@ class SearchPresenter( | ||||
|     fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) { | ||||
|         val source = sourceManager.get(manga.source) ?: return | ||||
|  | ||||
|         replacingMangaRelay.call(true) | ||||
|         replacingMangaRelay.call(Pair(true, null)) | ||||
|  | ||||
|         presenterScope.launchIO { | ||||
|             try { | ||||
| @@ -67,7 +71,7 @@ class SearchPresenter( | ||||
|                 withUIContext { view?.applicationContext?.toast(e.message) } | ||||
|             } | ||||
|  | ||||
|             presenterScope.launchUI { replacingMangaRelay.call(false) } | ||||
|             presenterScope.launchUI { replacingMangaRelay.call(Pair(false, manga)) } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user