mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Properly modify StateFlow value (#7059)
This commit is contained in:
		| @@ -27,10 +27,10 @@ class MigrationMangaPresenter( | ||||
|             getFavoritesBySourceId | ||||
|                 .subscribe(sourceId) | ||||
|                 .catch { exception -> | ||||
|                     _state.emit(MigrateMangaState.Error(exception)) | ||||
|                     _state.value = MigrateMangaState.Error(exception) | ||||
|                 } | ||||
|                 .collectLatest { list -> | ||||
|                     _state.emit(MigrateMangaState.Success(list)) | ||||
|                     _state.value = MigrateMangaState.Success(list) | ||||
|                 } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -28,10 +28,10 @@ class MigrationSourcesPresenter( | ||||
|         presenterScope.launchIO { | ||||
|             getSourcesWithFavoriteCount.subscribe() | ||||
|                 .catch { exception -> | ||||
|                     _state.emit(MigrateSourceState.Error(exception)) | ||||
|                     _state.value = MigrateSourceState.Error(exception) | ||||
|                 } | ||||
|                 .collectLatest { sources -> | ||||
|                     _state.emit(MigrateSourceState.Success(sources)) | ||||
|                     _state.value = MigrateSourceState.Success(sources) | ||||
|                 } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -31,11 +31,11 @@ class SourceFilterPresenter( | ||||
|         presenterScope.launchIO { | ||||
|             getLanguagesWithSources.subscribe() | ||||
|                 .catch { exception -> | ||||
|                     _state.emit(SourceFilterState.Error(exception)) | ||||
|                     _state.value = SourceFilterState.Error(exception) | ||||
|                 } | ||||
|                 .collectLatest { sourceLangMap -> | ||||
|                     val uiModels = sourceLangMap.toFilterUiModels() | ||||
|                     _state.emit(SourceFilterState.Success(uiModels)) | ||||
|                     _state.value = SourceFilterState.Success(uiModels) | ||||
|                 } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -36,7 +36,7 @@ class SourcePresenter( | ||||
|         presenterScope.launchIO { | ||||
|             getEnabledSources.subscribe() | ||||
|                 .catch { exception -> | ||||
|                     _state.emit(SourceState.Error(exception)) | ||||
|                     _state.value = SourceState.Error(exception) | ||||
|                 } | ||||
|                 .collectLatest(::collectLatestSources) | ||||
|         } | ||||
| @@ -71,7 +71,7 @@ class SourcePresenter( | ||||
|                 }.toTypedArray(), | ||||
|             ) | ||||
|         } | ||||
|         _state.emit(SourceState.Success(uiModels)) | ||||
|         _state.value = SourceState.Success(uiModels) | ||||
|     } | ||||
|  | ||||
|     fun toggleSource(source: Source) { | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter | ||||
| import eu.kanade.tachiyomi.util.lang.launchIO | ||||
| import kotlinx.coroutines.flow.MutableStateFlow | ||||
| import kotlinx.coroutines.flow.StateFlow | ||||
| import kotlinx.coroutines.flow.asStateFlow | ||||
| import rx.Observable | ||||
| import rx.Subscription | ||||
| import rx.android.schedulers.AndroidSchedulers | ||||
| @@ -24,7 +25,7 @@ class MorePresenter( | ||||
|     val incognitoMode = preferencesHelper.incognitoMode().asState() | ||||
|  | ||||
|     private var _state: MutableStateFlow<DownloadQueueState> = MutableStateFlow(DownloadQueueState.Stopped) | ||||
|     val downloadQueueState: StateFlow<DownloadQueueState> = _state | ||||
|     val downloadQueueState: StateFlow<DownloadQueueState> = _state.asStateFlow() | ||||
|  | ||||
|     private var isDownloading: Boolean = false | ||||
|     private var downloadQueueSize: Int = 0 | ||||
| @@ -66,14 +67,12 @@ class MorePresenter( | ||||
|     private fun updateDownloadQueueState() { | ||||
|         presenterScope.launchIO { | ||||
|             val pendingDownloadExists = downloadQueueSize != 0 | ||||
|             _state.emit( | ||||
|                 when { | ||||
|                     !pendingDownloadExists -> DownloadQueueState.Stopped | ||||
|                     !isDownloading && !pendingDownloadExists -> DownloadQueueState.Paused(0) | ||||
|                     !isDownloading && pendingDownloadExists -> DownloadQueueState.Paused(downloadQueueSize) | ||||
|                     else -> DownloadQueueState.Downloading(downloadQueueSize) | ||||
|                 } | ||||
|             ) | ||||
|             _state.value = when { | ||||
|                 !pendingDownloadExists -> DownloadQueueState.Stopped | ||||
|                 !isDownloading && !pendingDownloadExists -> DownloadQueueState.Paused(0) | ||||
|                 !isDownloading && pendingDownloadExists -> DownloadQueueState.Paused(downloadQueueSize) | ||||
|                 else -> DownloadQueueState.Downloading(downloadQueueSize) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -53,14 +53,14 @@ class HistoryPresenter( | ||||
|             _query.collectLatest { query -> | ||||
|                 getHistory.subscribe(query) | ||||
|                     .catch { exception -> | ||||
|                         _state.emit(HistoryState.Error(exception)) | ||||
|                         _state.value = HistoryState.Error(exception) | ||||
|                     } | ||||
|                     .map { pagingData -> | ||||
|                         pagingData.toHistoryUiModels() | ||||
|                     } | ||||
|                     .cachedIn(presenterScope) | ||||
|                     .let { uiModelsPagingDataFlow -> | ||||
|                         _state.emit(HistoryState.Success(uiModelsPagingDataFlow)) | ||||
|                         _state.value = HistoryState.Success(uiModelsPagingDataFlow) | ||||
|                     } | ||||
|             } | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user