mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Avoid infinite loading in global search if a single catalogue fails (#2097)
This commit is contained in:
		| @@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.source.CatalogueSource | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.source.model.FilterList | ||||
| import eu.kanade.tachiyomi.source.model.MangasPage | ||||
| import eu.kanade.tachiyomi.source.model.SManga | ||||
| import eu.kanade.tachiyomi.source.online.LoginSource | ||||
| import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter | ||||
| @@ -157,9 +158,9 @@ open class CatalogueSearchPresenter( | ||||
|         fetchSourcesSubscription?.unsubscribe() | ||||
|         fetchSourcesSubscription = Observable.from(sources) | ||||
|                 .flatMap({ source -> | ||||
|                     source.fetchSearchManga(1, query, FilterList()) | ||||
|                     Observable.defer { source.fetchSearchManga(1, query, FilterList()) } | ||||
|                             .subscribeOn(Schedulers.io()) | ||||
|                             .onExceptionResumeNext(Observable.empty()) // Ignore timeouts. | ||||
|                             .onErrorReturn { MangasPage(emptyList(), false) } // Ignore timeouts or other exceptions | ||||
|                             .map { it.mangas.take(10) } // Get at most 10 manga from search result. | ||||
|                             .map { it.map { networkToLocalManga(it, source.id) } } // Convert to local manga. | ||||
|                             .doOnNext { fetchImage(it, source) } // Load manga covers. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user