Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add media logo to screensaver #3680

Merged
merged 21 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
933438d
Show media logo on screensaver
haydenzeller Jun 15, 2024
b15c0b0
Fallback to title text if logo is null
haydenzeller Jun 15, 2024
b592a85
Preload logo and backdrop
haydenzeller Jun 15, 2024
f5b1db1
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 16, 2024
0c87867
set logo description to item name
haydenzeller Jun 16, 2024
fa8210c
set logo description to item name
haydenzeller Jun 16, 2024
b410aa4
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 17, 2024
79e9b0a
Add correct tag to logo.
haydenzeller Jun 18, 2024
9348b7b
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 18, 2024
38e9fa8
Show media logo on screensaver
haydenzeller Jun 15, 2024
c3cf7a3
Fallback to title text if logo is null
haydenzeller Jun 15, 2024
7e01ecb
Preload logo and backdrop
haydenzeller Jun 15, 2024
8960dad
set logo description to item name
haydenzeller Jun 16, 2024
2e876ef
Add correct tag to logo.
haydenzeller Jun 18, 2024
5f30369
contentDescription nullable.
haydenzeller Jun 18, 2024
f5a049a
Merge branch 'screensaver-media-logo' of https://github.com/haydenzel…
haydenzeller Jun 18, 2024
f47e0f8
contentDescription nullable.
haydenzeller Jun 18, 2024
fe70a7d
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 18, 2024
77f0554
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 19, 2024
04e0f43
Merge branch 'master' into screensaver-media-logo
haydenzeller Jun 19, 2024
342536e
Merge branch 'master' into screensaver-media-logo
nielsvanvelzen Jun 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.tv.material3.Text
import org.jellyfin.androidtv.integration.dream.model.DreamContent
Expand Down Expand Up @@ -47,12 +49,10 @@ fun DreamContentLibraryShowcase(
.align(Alignment.BottomStart)
.overscan(),
) {
Text(
text = content.item.name.orEmpty(),
style = TextStyle(
color = Color.White,
fontSize = 32.sp
),
Image(
bitmap = content.logo.asImageBitmap(),
contentDescription = null,
modifier = Modifier.height(75.dp)
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,20 @@ private suspend fun getRandomLibraryShowcase(
).drawable?.toBitmap()
} ?: return null

return DreamContent.LibraryShowcase(item, backdrop)
val logoUrl = api.imageApi.getItemImageUrl(
itemId = item.id,
imageType = ImageType.LOGO,
tag = tag,
haydenzeller marked this conversation as resolved.
Show resolved Hide resolved
format = ImageFormat.WEBP,
)

val logo = withContext(Dispatchers.IO) {
imageLoader.execute(
request = ImageRequest.Builder(context).data(logoUrl).build()
).drawable?.toBitmap()
} ?: return null
haydenzeller marked this conversation as resolved.
Show resolved Hide resolved
haydenzeller marked this conversation as resolved.
Show resolved Hide resolved

return DreamContent.LibraryShowcase(item, backdrop, logo)
} catch (err: ApiClientException) {
Timber.e(err)
return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ import org.jellyfin.sdk.model.api.BaseItemDto

sealed interface DreamContent {
data object Logo : DreamContent
data class LibraryShowcase(val item: BaseItemDto, val backdrop: Bitmap) : DreamContent
data class LibraryShowcase(val item: BaseItemDto, val backdrop: Bitmap, val logo: Bitmap) : DreamContent
data class NowPlaying(val item: BaseItemDto?) : DreamContent
}