mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Maybe avoid extensions list rendering crashes
This commit is contained in:
		| @@ -119,14 +119,14 @@ private fun ExtensionContent( | ||||
|             items = state.items, | ||||
|             contentType = { | ||||
|                 when (it) { | ||||
|                     is ExtensionUiModel.Header -> "header" | ||||
|                     is ExtensionUiModel.Item -> "item" | ||||
|                     else -> "header" | ||||
|                 } | ||||
|             }, | ||||
|             key = { | ||||
|                 when (it) { | ||||
|                     is ExtensionUiModel.Header -> "extensionHeader-${it.hashCode()}" | ||||
|                     is ExtensionUiModel.Item -> "extension-${it.extension.hashCode()}" | ||||
|                     is ExtensionUiModel.Item -> "extension-${it.hashCode()}" | ||||
|                 } | ||||
|             }, | ||||
|         ) { item -> | ||||
|   | ||||
| @@ -52,7 +52,7 @@ import java.util.Date | ||||
| fun LazyListScope.updatesLastUpdatedItem( | ||||
|     lastUpdated: Long, | ||||
| ) { | ||||
|     item(key = "last_updated") { | ||||
|     item(key = "updates-lastUpdated") { | ||||
|         val time = remember(lastUpdated) { | ||||
|             DateUtils.getRelativeTimeSpanString(lastUpdated, Date().time, DateUtils.MINUTE_IN_MILLIS) | ||||
|         } | ||||
| @@ -92,8 +92,8 @@ fun LazyListScope.updatesUiItems( | ||||
|         }, | ||||
|         key = { | ||||
|             when (it) { | ||||
|                 is UpdatesUiModel.Header -> it.hashCode() | ||||
|                 is UpdatesUiModel.Item -> "updates-${it.item.update.chapterId}" | ||||
|                 is UpdatesUiModel.Header -> "updatesHeader-${it.hashCode()}" | ||||
|                 is UpdatesUiModel.Item -> "updates-${it.item.update.mangaId}-${it.item.update.chapterId}" | ||||
|             } | ||||
|         }, | ||||
|     ) { item -> | ||||
|   | ||||
| @@ -20,6 +20,7 @@ import kotlinx.coroutines.flow.StateFlow | ||||
| import kotlinx.coroutines.flow.asStateFlow | ||||
| import kotlinx.coroutines.flow.collectLatest | ||||
| import kotlinx.coroutines.flow.combine | ||||
| import kotlinx.coroutines.flow.debounce | ||||
| import kotlinx.coroutines.flow.launchIn | ||||
| import kotlinx.coroutines.flow.onEach | ||||
| import kotlinx.coroutines.flow.update | ||||
| @@ -114,10 +115,12 @@ class ExtensionsPresenter( | ||||
|                 } | ||||
|  | ||||
|                 items | ||||
|             }.collectLatest { | ||||
|                 state.isLoading = false | ||||
|                 state.items = it | ||||
|             } | ||||
|                 .debounce(500) // Avoid crashes due to LazyColumn rendering | ||||
|                 .collectLatest { | ||||
|                     state.isLoading = false | ||||
|                     state.items = it | ||||
|                 } | ||||
|         } | ||||
|  | ||||
|         presenterScope.launchIO { findAvailableExtensions() } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user