mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Use SharedFlow for available extensions to always emit the value (#7609)
- Fixes Extension screen being stuck refreshing due to StateFlow not emitting due to the value being the same
This commit is contained in:
		| @@ -19,8 +19,11 @@ import eu.kanade.tachiyomi.util.preference.plusAssign | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
| import kotlinx.coroutines.async | ||||
| import kotlinx.coroutines.flow.Flow | ||||
| import kotlinx.coroutines.flow.MutableSharedFlow | ||||
| import kotlinx.coroutines.flow.MutableStateFlow | ||||
| import kotlinx.coroutines.flow.StateFlow | ||||
| import kotlinx.coroutines.flow.asSharedFlow | ||||
| import kotlinx.coroutines.flow.asStateFlow | ||||
| import logcat.LogPriority | ||||
| import rx.Observable | ||||
| @@ -93,15 +96,15 @@ class ExtensionManager( | ||||
|     var availableExtensions = emptyList<Extension.Available>() | ||||
|         private set(value) { | ||||
|             field = value | ||||
|             availableExtensionsFlow.value = field | ||||
|             availableExtensionsFlow.tryEmit(field) | ||||
|             updatedInstalledExtensionsStatuses(value) | ||||
|             setupAvailableExtensionsSourcesDataMap(value) | ||||
|         } | ||||
|  | ||||
|     private val availableExtensionsFlow = MutableStateFlow(availableExtensions) | ||||
|     private val availableExtensionsFlow = MutableSharedFlow<List<Extension.Available>>(replay = 1) | ||||
|  | ||||
|     fun getAvailableExtensionsFlow(): StateFlow<List<Extension.Available>> { | ||||
|         return availableExtensionsFlow.asStateFlow() | ||||
|     fun getAvailableExtensionsFlow(): Flow<List<Extension.Available>> { | ||||
|         return availableExtensionsFlow.asSharedFlow() | ||||
|     } | ||||
|  | ||||
|     private var availableExtensionsSourcesData: Map<Long, SourceData> = mapOf() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user