Fix favorites not querying for people & fix restoring focus on search page for discover items (#1961)

## Description
Fix two bugs:
- Favorites page didn't query for favorite people, introduced by #1864
- Fixes restoring focus on the search page after clicking a discover
item and going back

### Related issues
N/A

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
This commit is contained in:
Damontecres 2026-09-13 20:09:08 -04:00 • committed by GitHub
parent 2fb295cbed
commit 45c1ceca27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 3 deletions

View file

@ -787,7 +787,9 @@ fun List<Library>.possibleFavoriteTypes(sort: Boolean) =
flatMap { it.collectionType.baseItemKinds } flatMap { it.collectionType.baseItemKinds }
.distinct() .distinct()
.filter { it in favoriteOptions } .filter { it in favoriteOptions }
.let { list -> .let {
// No library for persons, so always include it
val list = it + listOf(BaseItemKind.PERSON)
if (sort) { if (sort) {
list.sortedWith(compareBy { favoriteOptions.indexOf(it) }) list.sortedWith(compareBy { favoriteOptions.indexOf(it) })
} else { } else {

View file

@ -113,7 +113,7 @@ fun SearchPage(
val focusRequesters = val focusRequesters =
remember(state.includedSearchableTypes.size) { List(RESULTS_START + state.includedSearchableTypes.size) { FocusRequester() } } remember(state.includedSearchableTypes.size) { List(RESULTS_START + state.includedSearchableTypes.size) { FocusRequester() } }
val seerrActive by viewModel.seerrActive.collectAsState(initial = false) val seerrActive by viewModel.seerrActive.collectAsState()
var selectedTab by rememberSaveable(seerrActive, state.discoverEnabled) { mutableIntStateOf(0) } var selectedTab by rememberSaveable(seerrActive, state.discoverEnabled) { mutableIntStateOf(0) }
var showViewOptions by rememberSaveable { mutableStateOf(false) } var showViewOptions by rememberSaveable { mutableStateOf(false) }
var showFilterTypeDialog by rememberSaveable { mutableStateOf(false) } var showFilterTypeDialog by rememberSaveable { mutableStateOf(false) }

View file

@ -43,9 +43,11 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.jellyfin.sdk.api.client.ApiClient import org.jellyfin.sdk.api.client.ApiClient
@ -79,7 +81,12 @@ class SearchViewModel
private val navDrawerService: NavDrawerService, private val navDrawerService: NavDrawerService,
) : ViewModel(), ) : ViewModel(),
ContextMenuProvider { ContextMenuProvider {
val seerrActive = seerrService.active val seerrActive =
seerrService.active.stateIn(
scope = viewModelScope,
started = SharingStarted.Eagerly,
initialValue = false,
)
private val _state = MutableStateFlow(SearchState()) private val _state = MutableStateFlow(SearchState())
val state: StateFlow<SearchState> = _state val state: StateFlow<SearchState> = _state