diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/BaseApplication.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/BaseApplication.kt index 7e3b5a32..721e8f5e 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/BaseApplication.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/BaseApplication.kt @@ -10,9 +10,11 @@ import coil.decode.SvgDecoder import coil.disk.DiskCache import coil.request.CachePolicy import com.google.android.material.color.DynamicColors +import com.google.android.material.color.DynamicColorsOptions import dagger.hilt.android.HiltAndroidApp import timber.log.Timber import javax.inject.Inject +import dev.jdtech.jellyfin.core.R as CoreR @HiltAndroidApp class BaseApplication : Application(), Configuration.Provider, ImageLoaderFactory { @@ -40,7 +42,12 @@ class BaseApplication : Application(), Configuration.Provider, ImageLoaderFactor "dark" -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) } - if (appPreferences.dynamicColors) DynamicColors.applyToActivitiesIfAvailable(this) + if (appPreferences.dynamicColors) { + val dynamicColorsOptions = DynamicColorsOptions.Builder() + .setThemeOverlay(CoreR.style.ThemeOverlay_Findroid_DynamicColors) + .build() + DynamicColors.applyToActivitiesIfAvailable(this, dynamicColorsOptions) + } } override fun newImageLoader(): ImageLoader { diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/MainActivity.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/MainActivity.kt index 8a10177e..163bc80c 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/MainActivity.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/MainActivity.kt @@ -149,7 +149,7 @@ class MainActivity : AppCompatActivity() { private fun applyTheme() { if (appPreferences.amoledTheme) { - setTheme(CoreR.style.Theme_FindroidAMOLED) + setTheme(CoreR.style.ThemeOverlay_Findroid_Amoled) } } } diff --git a/build.gradle.kts b/build.gradle.kts index 585206fc..def66919 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,3 @@ -import com.android.build.api.dsl.CommonExtension - -// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false @@ -19,17 +16,6 @@ allprojects { google() mavenCentral() } - - val configureAndroid = { _: AppliedPlugin -> - extensions.configure>("android") { - lint { - informational += "MissingTranslation" - } - } - } - - pluginManager.withPlugin("com.android.library", configureAndroid) - pluginManager.withPlugin("com.android.application", configureAndroid) } tasks.create("clean") { diff --git a/core/src/main/res/values-night/themes.xml b/core/src/main/res/values-night/themes.xml index a465edae..86f1b081 100644 --- a/core/src/main/res/values-night/themes.xml +++ b/core/src/main/res/values-night/themes.xml @@ -17,9 +17,12 @@ @color/neutral_900 - \ No newline at end of file diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml index 948292af..4132b7f9 100644 --- a/core/src/main/res/values-nl/strings.xml +++ b/core/src/main/res/values-nl/strings.xml @@ -170,4 +170,25 @@ Gedownloade indicator Trick Play Zoek gebaar + Geen gebruikers gevonden + Scherm-in-scherm + Gebruik de startknop of een gebaar om beeld-in-beeld te openen terwijl de video wordt afgespeeld + Scherm-in-scherm huisgebaar + Hoofdstuk gebaar + Geen servers gevonden + Druk lang op de linker-/rechterkant om hoofdstukken over te slaan (overschrijft 2x snelheidsgebaar) + Bekijk trailer + Markeer als afgespeeld + Markering als afgespeeld ongedaan maken + Verwijder server adres + Weet u zeker dat u het server adres %1$s wilt verwijderen + Gemaximaliseerd starten + Open video standaard in de gemaximaliseerde modus + Hoofdstukmarkeringen + Geef hoofdstukmarkeringen weer op de tijdbalk + Selecteer gebruiker + Live TV + Afspelen + Aan favorieten toevoegen + Van favorieten verwijderen \ No newline at end of file diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml index afa14fd7..defb1f50 100644 --- a/core/src/main/res/values-pt-rBR/strings.xml +++ b/core/src/main/res/values-pt-rBR/strings.xml @@ -34,7 +34,7 @@ Indicador de episódio assistido %1$d. %2$s T%1$d:E%2$d - %3$s - Próximo + A seguir Continuar assistindo Poster da série Você não tem favoritos @@ -60,13 +60,13 @@ Erro desconhecido Reprodutor mpv Download usando dados móveis - Download + Baixar Detalhes Filmes Series de TV Esconder Ordenar por - Ordem + Ordem de classificação Fechar Compartilhar %1$s pôster @@ -80,7 +80,7 @@ Marcar como assistido ou não assistido Você não tem nada baixado Servidores - Downloads + Transferências Armazena imagens no disco para acelerar o tempo de carregamento. Surte efeito após reiniciar o aplicativo. Busca filmes, shows, episódios… Usa o reprodutor experimental mpv para reproduzir vídeos. mpv tem suporte a mais codecs de vídeo, áudio e legenda. @@ -98,7 +98,7 @@ Aplicação Jellyfin nativa de terceiros %1$s mais recentes Banner Jellyfin - Download quando estiver em roaming + Baixar quando estiver em roaming O aplicativo usará essa quantidade em MB do seu espaço em disco para armazenar imagens do servidor Jellyfin. Valores maiores podem ser benéficos em redes mais lentas. Episódios Gestos do reprodutor diff --git a/core/src/main/res/values/themes.xml b/core/src/main/res/values/themes.xml index 515efe0f..3f947db6 100644 --- a/core/src/main/res/values/themes.xml +++ b/core/src/main/res/values/themes.xml @@ -24,6 +24,9 @@ @color/neutral_50 @color/neutral_100 + ?attr/colorSurface + ?attr/colorSurface + ?attr/colorSurface @color/red @@ -53,6 +56,10 @@ @style/ThemeOverlay.Findroid.Preference + + @string/theme_system @string/theme_light diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c7c4de57..723fb8f0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -aboutlibraries = "10.10.0" -android-plugin = "8.2.2" +aboutlibraries = "11.1.0" +android-plugin = "8.3.0" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" androidx-compose-bom = "2024.02.01" @@ -19,7 +19,7 @@ androidx-swiperefreshlayout = "1.1.0" androidx-tv = "1.0.0-alpha10" androidx-work = "2.9.0" coil = "2.6.0" -hilt = "2.50" +hilt = "2.51" compose-destinations = "1.10.1" jellyfin = "1.4.6" kotlin = "1.9.22" @@ -31,53 +31,53 @@ material = "1.11.0" timber = "5.0.1" [libraries] -aboutlibraries-core = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutlibraries" } -aboutlibraries = { module = "com.mikepenz:aboutlibraries", version.ref = "aboutlibraries" } -androidx-activity = { module = "androidx.activity:activity", version.ref = "androidx-activity" } -androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" } -androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } +aboutlibraries-core = { group = "com.mikepenz", name = "aboutlibraries-core", version.ref = "aboutlibraries" } +aboutlibraries = { group = "com.mikepenz", name = "aboutlibraries", version.ref = "aboutlibraries" } +androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidx-activity" } +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidx-activity" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidx-compose-bom" } -androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidx-compose-material3" } -androidx-compose-ui = { module = "androidx.compose.ui:ui" } -androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } -androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } -androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" } -androidx-core = { module = "androidx.core:core", version.ref = "androidx-core" } -androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidx-hilt" } -androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "androidx-hilt" } -androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "androidx-hilt" } -androidx-lifecycle-runtime = { module = "androidx.lifecycle:lifecycle-runtime", version.ref = "androidx-lifecycle" } -androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } -androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } -androidx-media3-common = { module = "androidx.media3:media3-common", version.ref = "androidx-media3" } -androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" } -androidx-media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "androidx-media3" } -androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" } -androidx-media3-session = { module = "androidx.media3:media3-session", version.ref = "androidx-media3" } -androidx-navigation-fragment = { module = "androidx.navigation:navigation-fragment", version.ref = "androidx-navigation" } -androidx-navigation-ui = { module = "androidx.navigation:navigation-ui", version.ref = "androidx-navigation" } -androidx-paging = { module = "androidx.paging:paging-runtime", version.ref = "androidx-paging" } -androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "androidx-paging" } -androidx-preference = { module = "androidx.preference:preference", version.ref = "androidx-preference" } -androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx-recyclerview" } -androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "androidx-room" } -androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx-room" } -androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "androidx-swiperefreshlayout" } -androidx-work = { module = "androidx.work:work-runtime", version.ref = "androidx-work" } -androidx-tv-foundation = { module = "androidx.tv:tv-foundation", version.ref = "androidx-tv" } -androidx-tv-material = { module = "androidx.tv:tv-material", version.ref = "androidx-tv" } -coil = { module = "io.coil-kt:coil", version.ref = "coil" } -coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } -coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" } -compose-destinations-core = { module = "io.github.raamcosta.compose-destinations:core", version.ref = "compose-destinations" } -compose-destinations-ksp = { module = "io.github.raamcosta.compose-destinations:ksp", version.ref = "compose-destinations" } -hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } -hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } -jellyfin-core = { module = "org.jellyfin.sdk:jellyfin-core", version.ref = "jellyfin" } -libmpv = { module = "dev.jdtech.mpv:libmpv", version.ref = "libmpv" } -material = { module = "com.google.android.material:material", version.ref = "material" } -timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } -kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } +androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidx-compose-material3" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" } +androidx-core = { group = "androidx.core", name = "core", version.ref = "androidx-core" } +androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidx-hilt" } +androidx-hilt-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "androidx-hilt" } +androidx-hilt-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "androidx-hilt" } +androidx-lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime", version.ref = "androidx-lifecycle" } +androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } +androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } +androidx-media3-common = { group = "androidx.media3", name = "media3-common", version.ref = "androidx-media3" } +androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "androidx-media3" } +androidx-media3-exoplayer-hls = { group = "androidx.media3", name = "media3-exoplayer-hls", version.ref = "androidx-media3" } +androidx-media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "androidx-media3" } +androidx-media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "androidx-media3" } +androidx-navigation-fragment = { group = "androidx.navigation", name = "navigation-fragment", version.ref = "androidx-navigation" } +androidx-navigation-ui = { group = "androidx.navigation", name = "navigation-ui", version.ref = "androidx-navigation" } +androidx-paging = { group = "androidx.paging", name = "paging-runtime", version.ref = "androidx-paging" } +androidx-paging-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "androidx-paging" } +androidx-preference = { group = "androidx.preference", name = "preference", version.ref = "androidx-preference" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidx-recyclerview" } +androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "androidx-room" } +androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "androidx-room" } +androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "androidx-swiperefreshlayout" } +androidx-work = { group = "androidx.work", name = "work-runtime", version.ref = "androidx-work" } +androidx-tv-foundation = { group = "androidx.tv", name = "tv-foundation", version.ref = "androidx-tv" } +androidx-tv-material = { group = "androidx.tv", name = "tv-material", version.ref = "androidx-tv" } +coil = { group = "io.coil-kt", name = "coil", version.ref = "coil" } +coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } +coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } +compose-destinations-core = { group = "io.github.raamcosta.compose-destinations", name = "core", version.ref = "compose-destinations" } +compose-destinations-ksp = { group = "io.github.raamcosta.compose-destinations", name = "ksp", version.ref = "compose-destinations" } +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } +hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" } +jellyfin-core = { group = "org.jellyfin.sdk", name = "jellyfin-core", version.ref = "jellyfin" } +libmpv = { group = "dev.jdtech.mpv", name = "libmpv", version.ref = "libmpv" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" } [plugins] aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } diff --git a/lint.xml b/lint.xml new file mode 100644 index 00000000..db997a53 --- /dev/null +++ b/lint.xml @@ -0,0 +1,4 @@ + + + + diff --git a/player/video/src/main/res/values-nl/strings.xml b/player/video/src/main/res/values-nl/strings.xml index c021b257..acf77932 100644 --- a/player/video/src/main/res/values-nl/strings.xml +++ b/player/video/src/main/res/values-nl/strings.xml @@ -8,4 +8,12 @@ Sluit speler Terugspoelen Snel vooruit - + Voortgangsbalk + Geen + Scherm-in-scherm openen + Vergrendelt de speler + Achteruit springen + Speel pauze + Vooruit springen + Trickplay + \ No newline at end of file