diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt index 0a7e1ff6..8d5139ca 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/CollectionFolderGrid.kt @@ -158,26 +158,28 @@ class CollectionFolderViewModel } suspend fun positionOfLetter(letter: Char): Int? = - item.value?.let { item -> - val includeItemTypes = - when (item.data.collectionType) { - CollectionType.MOVIES -> listOf(BaseItemKind.MOVIE) - CollectionType.TVSHOWS -> listOf(BaseItemKind.SERIES) - CollectionType.HOMEVIDEOS -> listOf(BaseItemKind.VIDEO) + withContext(Dispatchers.IO) { + item.value?.let { item -> + val includeItemTypes = + when (item.data.collectionType) { + CollectionType.MOVIES -> listOf(BaseItemKind.MOVIE) + CollectionType.TVSHOWS -> listOf(BaseItemKind.SERIES) + CollectionType.HOMEVIDEOS -> listOf(BaseItemKind.VIDEO) - else -> listOf() - } - val request = - GetItemsRequest( - parentId = item.id, - includeItemTypes = includeItemTypes, - nameLessThan = letter.toString(), - limit = 0, - enableTotalRecordCount = true, - recursive = true, - ) - val result by GetItemsRequestHandler.execute(api, request) - result.totalRecordCount + else -> listOf() + } + val request = + GetItemsRequest( + parentId = item.id, + includeItemTypes = includeItemTypes, + nameLessThan = letter.toString(), + limit = 0, + enableTotalRecordCount = true, + recursive = true, + ) + val result by GetItemsRequestHandler.execute(api, request) + result.totalRecordCount + } } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt index 94710301..e2ce1b79 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt @@ -64,17 +64,18 @@ class GenreViewModel } } - suspend fun positionOfLetter(letter: Char): Int { - val request = - GetGenresRequest( - parentId = itemId, - nameLessThan = letter.toString(), - limit = 0, - enableTotalRecordCount = true, - ) - val result by GetGenresRequestHandler.execute(api, request) - return result.totalRecordCount - } + suspend fun positionOfLetter(letter: Char): Int = + withContext(Dispatchers.IO) { + val request = + GetGenresRequest( + parentId = itemId, + nameLessThan = letter.toString(), + limit = 0, + enableTotalRecordCount = true, + ) + val result by GetGenresRequestHandler.execute(api, request) + return@withContext result.totalRecordCount + } } @Composable diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/CardGrid.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/CardGrid.kt index 9a7d3d77..bea5d281 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/CardGrid.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/CardGrid.kt @@ -59,7 +59,9 @@ import com.github.damontecres.wholphin.ui.playback.isForwardButton import com.github.damontecres.wholphin.ui.playback.isPlayKeyUp import com.github.damontecres.wholphin.ui.tryRequestFocus import com.github.damontecres.wholphin.util.ExceptionHandler +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import timber.log.Timber private const val DEBUG = false @@ -350,7 +352,10 @@ fun CardGrid( modifier = Modifier.align(Alignment.CenterVertically), letterClicked = { letter -> scope.launch(ExceptionHandler()) { - val jumpPosition = letterPosition.invoke(letter) + val jumpPosition = + withContext(Dispatchers.IO) { + letterPosition.invoke(letter) + } Timber.d("Alphabet jump to $jumpPosition") if (jumpPosition >= 0) { gridState.scrollToItem(jumpPosition)