Add prefer logos instead of text titles setting (#1151)

## Description
Adds an advanced settings to prefer logos for titles instead of text. It
is enabled by default.

### Related issues
Closes #383

### Testing
Emulator & onn

## Screenshots
<details><summary>Click to show</summary>
<p>

### Home page
![logo_1
Large](https://github.com/user-attachments/assets/629a65ab-cf43-4050-af4c-5925763a5f4f)

### Series overview
![logo_2
Large](https://github.com/user-attachments/assets/13ca2d28-cc61-4f4e-abaa-61a310b5c707)

### Movie Page
![logo_movie
Large](https://github.com/user-attachments/assets/a590e6cf-452d-4313-b6a3-35c6f59dc1ff)

### Square-ish logo
![logo_square
Large](https://github.com/user-attachments/assets/7d1340c2-4a3e-42c3-b7bd-ae1114cb6645)

</p>
</details> 


## AI or LLM usage
None
This commit is contained in:
Ray 2026-03-29 10:38:23 -04:00 committed by GitHub
parent 253b203c02
commit 2485d2c644
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 290 additions and 122 deletions

View file

@ -282,7 +282,7 @@ class AppUpgradeHandler
}
}
if (previous.isEqualOrBefore(Version.fromString("0.6.0-0-g0"))) {
if (previous.isEqualOrBefore(Version.fromString("0.5.4-6-g0"))) {
appPreferences.updateData {
it.updateMusicPreferences {
showBackdrop = true
@ -291,5 +291,13 @@ class AppUpgradeHandler
}
}
}
if (previous.isEqualOrBefore(Version.fromString("0.5.4-15-g0"))) {
appPreferences.updateData {
it.updateInterfacePreferences {
showLogos = AppPreference.ShowLogos.defaultValue
}
}
}
}
}

View file

@ -886,7 +886,7 @@ class HomeSettingsService
limit = limit,
enableUserData = true,
enableImages = true,
enableImageTypes = listOf(ImageType.PRIMARY),
enableImageTypes = listOf(ImageType.PRIMARY, ImageType.LOGO),
imageTypeLimit = 1,
)
api.liveTvApi

View file

@ -20,7 +20,6 @@ import org.jellyfin.sdk.api.client.extensions.userLibraryApi
import org.jellyfin.sdk.api.client.extensions.userViewsApi
import org.jellyfin.sdk.model.api.BaseItemKind
import org.jellyfin.sdk.model.api.CollectionType
import org.jellyfin.sdk.model.api.ImageType
import org.jellyfin.sdk.model.api.UserDto
import org.jellyfin.sdk.model.api.request.GetLatestMediaRequest
import org.jellyfin.sdk.model.api.request.GetNextUpRequest
@ -61,12 +60,13 @@ class LatestNextUpService
remove(BaseItemKind.EPISODE)
}
},
enableImageTypes =
listOf(
ImageType.PRIMARY,
ImageType.THUMB,
ImageType.BACKDROP,
),
// enableImageTypes =
// listOf(
// ImageType.PRIMARY,
// ImageType.THUMB,
// ImageType.BACKDROP,
// ImageType.LOGO,
// ),
)
val items =
api.itemsApi
@ -98,6 +98,13 @@ class LatestNextUpService
enableUserData = true,
enableRewatching = enableRewatching,
nextUpDateCutoff = nextUpDateCutoff,
// enableImageTypes =
// listOf(
// ImageType.PRIMARY,
// ImageType.THUMB,
// ImageType.BACKDROP,
// ImageType.LOGO,
// ),
)
val nextUp =
api.tvShowsApi

View file

@ -114,7 +114,12 @@ class PlaylistCreator
req =
GetItemsRequest(
parentId = item.id,
enableImageTypes = listOf(ImageType.PRIMARY, ImageType.THUMB),
enableImageTypes =
listOf(
ImageType.PRIMARY,
ImageType.THUMB,
ImageType.LOGO,
),
includeItemTypes = includeItemTypes,
recursive = true,
excludeItemIds = listOf(item.id),