From 79b421c0af1737accd6b8337c63288786fca6ee1 Mon Sep 17 00:00:00 2001 From: Ilian Date: Thu, 29 Feb 2024 18:36:36 +0000 Subject: [PATCH 1/5] chore(translate): (Dutch) Currently translated at 100.0% (192 of 192 strings) Translation: Findroid/core Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/nl/ --- core/src/main/res/values-nl/strings.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) 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 From 9506bdc0d2819528f4c8eeebe3e65a3517feff94 Mon Sep 17 00:00:00 2001 From: Ilian Date: Thu, 29 Feb 2024 18:44:52 +0000 Subject: [PATCH 2/5] chore(translate): (Dutch) Currently translated at 100.0% (17 of 17 strings) Translation: Findroid/player:video Translate-URL: https://weblate.jdtech.dev/projects/findroid/playervideo/nl/ --- player/video/src/main/res/values-nl/strings.xml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/player/video/src/main/res/values-nl/strings.xml b/player/video/src/main/res/values-nl/strings.xml index 6b69e563..2f6920a0 100644 --- a/player/video/src/main/res/values-nl/strings.xml +++ b/player/video/src/main/res/values-nl/strings.xml @@ -9,4 +9,12 @@ Terugspoelen Snel vooruit Intro overslaan - + Voortgangsbalk + Geen + Scherm-in-scherm openen + Vergrendelt de speler + Achteruit springen + Speel pauze + Vooruit springen + Trickplay + \ No newline at end of file From 1f96dedccfb0a80475be316c328aef388a40d352 Mon Sep 17 00:00:00 2001 From: alison2033 Date: Fri, 1 Mar 2024 02:07:39 +0000 Subject: [PATCH 3/5] chore(translate): (Portuguese (Brazil)) Currently translated at 100.0% (192 of 192 strings) Translation: Findroid/core Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/pt_BR/ --- core/src/main/res/values-pt-rBR/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 From c30b76d4f1e94810b60561c92ab8081fdddc5d44 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Sat, 2 Mar 2024 21:08:38 +0100 Subject: [PATCH 4/5] chore: update agp and other dependencies aboutlibraries 10.10.0 -> 11.1.0 android gradle plugin 8.2.2 -> 8.3.0 hilt 2.50 -> 2.51 --- build.gradle.kts | 14 ------ gradle/libs.versions.toml | 98 +++++++++++++++++++-------------------- lint.xml | 4 ++ 3 files changed, 53 insertions(+), 63 deletions(-) create mode 100644 lint.xml 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/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 @@ + + + + From 0a1582f47b33147c6c797c76f674bdedad4a4909 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Sat, 2 Mar 2024 23:52:07 +0100 Subject: [PATCH 5/5] fix(theme): set correct surface color when using dynamic colors or amoled theme Surface colors have changed in material components 1.11.0 Closes #673 --- .../src/main/java/dev/jdtech/jellyfin/BaseApplication.kt | 9 ++++++++- .../src/main/java/dev/jdtech/jellyfin/MainActivity.kt | 2 +- core/src/main/res/values-night/themes.xml | 5 ++++- core/src/main/res/values/themes.xml | 7 +++++++ 4 files changed, 20 insertions(+), 3 deletions(-) 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/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/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