diff --git a/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.android.kt b/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.android.kt index a2140bded..e1edc2623 100644 --- a/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.android.kt +++ b/composeApp/src/androidMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.android.kt @@ -4,6 +4,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.res.painterResource import com.nuvio.app.R +import com.nuvio.app.features.simkl.SimklBrandAsset +import com.nuvio.app.features.simkl.simklBrandPainter import nuvio.composeapp.generated.resources.Res import nuvio.composeapp.generated.resources.introdb_favicon import nuvio.composeapp.generated.resources.rating_tmdb @@ -14,6 +16,7 @@ internal actual fun integrationLogoPainter(logo: IntegrationLogo): Painter = when (logo) { IntegrationLogo.Tmdb -> composePainterResource(Res.drawable.rating_tmdb) IntegrationLogo.Trakt -> painterResource(id = R.drawable.trakt_tv_favicon) + IntegrationLogo.Simkl -> simklBrandPainter(SimklBrandAsset.Glyph) IntegrationLogo.MdbList -> painterResource(id = R.drawable.mdblist_logo) IntegrationLogo.IntroDb -> composePainterResource(Res.drawable.introdb_favicon) } diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml index 25902a27f..de96fb8f3 100644 --- a/composeApp/src/commonMain/composeResources/values/strings.xml +++ b/composeApp/src/commonMain/composeResources/values/strings.xml @@ -500,6 +500,8 @@ Nuvio uses IMDb Non-Commercial Datasets, including title.ratings.tsv.gz, for IMDb ratings and vote counts. Information courtesy of IMDb (https://www.imdb.com). Used with permission. IMDb data is for personal and non-commercial use under IMDb's terms. Trakt Nuvio connects to Trakt for account authentication, watched history, progress sync, library data, ratings, lists, and comments. Nuvio is not affiliated with or endorsed by Trakt. + Simkl + Nuvio connects to Simkl for account authentication, watchlists, watched history, playback progress, and scrobbling. Movie, TV, and anime tracking data is provided by Simkl. Nuvio is not affiliated with or endorsed by Simkl. Premiumize Nuvio connects to Premiumize for account authentication, cloud library access, cache checks, and cloud playback features. Nuvio is not affiliated with or endorsed by Premiumize. TorBox diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.kt index 8bf7971d9..ee35abddc 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.kt @@ -6,6 +6,7 @@ import androidx.compose.ui.graphics.painter.Painter internal enum class IntegrationLogo { Tmdb, Trakt, + Simkl, MdbList, IntroDb, } diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/LicensesAttributionsPage.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/LicensesAttributionsPage.kt index d86eb0a67..5c9553583 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/LicensesAttributionsPage.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/LicensesAttributionsPage.kt @@ -42,6 +42,7 @@ import org.jetbrains.compose.resources.stringResource private const val TmdbUrl = "https://www.themoviedb.org" private const val ImdbDatasetsUrl = "https://developer.imdb.com/non-commercial-datasets/" private const val TraktUrl = "https://trakt.tv" +private const val SimklUrl = "https://simkl.com" private const val PremiumizeUrl = "https://www.premiumize.me" private const val TorboxUrl = "https://torbox.app" private const val MdbListUrl = "https://mdblist.com" @@ -330,6 +331,12 @@ private fun attributionItems(): List = listOf( logo = IntegrationLogo.Trakt, link = TraktUrl, ), + AttributionItem( + titleRes = Res.string.settings_licenses_attributions_simkl_title, + bodyRes = Res.string.settings_licenses_attributions_simkl_body, + logo = IntegrationLogo.Simkl, + link = SimklUrl, + ), AttributionItem( titleRes = Res.string.settings_licenses_attributions_premiumize_title, bodyRes = Res.string.settings_licenses_attributions_premiumize_body, diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsSearch.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsSearch.kt index ddcbb5355..c7a3db2fd 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsSearch.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SettingsSearch.kt @@ -286,6 +286,7 @@ internal fun settingsSearchEntries( PlaybackSearchRow("nuvio-license", stringResource(Res.string.settings_licenses_attributions_nuvio_title), stringResource(Res.string.settings_licenses_attributions_nuvio_license)), PlaybackSearchRow("tmdb-attribution", stringResource(Res.string.settings_licenses_attributions_tmdb_title), stringResource(Res.string.settings_licenses_attributions_tmdb_body)), PlaybackSearchRow("trakt-attribution", stringResource(Res.string.settings_licenses_attributions_trakt_title), stringResource(Res.string.settings_licenses_attributions_trakt_body)), + PlaybackSearchRow("simkl-attribution", stringResource(Res.string.settings_licenses_attributions_simkl_title), stringResource(Res.string.settings_licenses_attributions_simkl_body)), PlaybackSearchRow("premiumize-attribution", stringResource(Res.string.settings_licenses_attributions_premiumize_title), stringResource(Res.string.settings_licenses_attributions_premiumize_body)), PlaybackSearchRow("torbox-attribution", stringResource(Res.string.settings_licenses_attributions_torbox_title), stringResource(Res.string.settings_licenses_attributions_torbox_body)), PlaybackSearchRow("mdblist-attribution", stringResource(Res.string.settings_licenses_attributions_mdblist_title), stringResource(Res.string.settings_licenses_attributions_mdblist_body)), diff --git a/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.ios.kt b/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.ios.kt index 6aa943912..33c56d169 100644 --- a/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/nuvio/app/features/settings/IntegrationLogoPainter.ios.kt @@ -2,6 +2,8 @@ package com.nuvio.app.features.settings import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.painter.Painter +import com.nuvio.app.features.simkl.SimklBrandAsset +import com.nuvio.app.features.simkl.simklBrandPainter import nuvio.composeapp.generated.resources.Res import nuvio.composeapp.generated.resources.introdb_favicon import nuvio.composeapp.generated.resources.mdblist_logo @@ -14,6 +16,7 @@ internal actual fun integrationLogoPainter(logo: IntegrationLogo): Painter = when (logo) { IntegrationLogo.Tmdb -> painterResource(Res.drawable.rating_tmdb) IntegrationLogo.Trakt -> painterResource(Res.drawable.trakt_tv_favicon) + IntegrationLogo.Simkl -> simklBrandPainter(SimklBrandAsset.Glyph) IntegrationLogo.MdbList -> painterResource(Res.drawable.mdblist_logo) IntegrationLogo.IntroDb -> painterResource(Res.drawable.introdb_favicon) }