diff --git a/README.md b/README.md
index 23dfb0b5..b8f04e12 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,8 @@ Licensed under GPL-2.0, the same licence as upstream (see [LICENSE](LICENSE)).
Wolfskin is an Android TV client for one household. It is released through Forgejo releases on this repo, and it tracks upstream by merging each upstream release tag.
+The app uses Wolfskin launcher artwork and a lilac-on-`#07070a` theme by default on a fresh install. Existing theme choices and all upstream colour themes remain available under Settings → App theme. Settings → About credits and links to Wholphin by damontecres.
+
---
# Wholphin - an OSS Android TV client for Jellyfin
diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml
index 606329c9..cb6c15c6 100644
--- a/app/src/debug/res/values/strings.xml
+++ b/app/src/debug/res/values/strings.xml
@@ -1,4 +1,4 @@
- Wholphin (Debug)
+ Wolfskin (Debug)
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
index 87623e5e..dfc380e1 100644
Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ
diff --git a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt
index 62f0e39b..a872d3be 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt
@@ -63,7 +63,7 @@ import com.github.damontecres.wholphin.ui.nav.Destination
import com.github.damontecres.wholphin.ui.playback.PlayExternalViewModel
import com.github.damontecres.wholphin.ui.showToast
import com.github.damontecres.wholphin.ui.theme.WholphinTheme
-import com.github.damontecres.wholphin.ui.theme.colors.PurpleThemeColors
+import com.github.damontecres.wholphin.ui.theme.colors.WolfskinThemeColors
import com.github.damontecres.wholphin.ui.util.ProvideLocalClock
import com.github.damontecres.wholphin.util.DebugLogTree
import com.github.damontecres.wholphin.util.ExceptionHandler
@@ -230,7 +230,7 @@ class MainActivity : AppCompatActivity() {
viewModel.appStart(intent)
setContent {
- MaterialTheme(colorScheme = PurpleThemeColors.darkScheme) {
+ MaterialTheme(colorScheme = WolfskinThemeColors.darkScheme) {
Surface(Modifier.fillMaxSize()) {
val userPreferences by userPreferencesService.flow.collectAsState(null)
if (userPreferences == null) {
diff --git a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt
index 4213fe94..a9d0f11e 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/preferences/AppPreference.kt
@@ -506,7 +506,7 @@ sealed interface AppPreference {
val ThemeColors =
AppChoicePreference(
title = R.string.app_theme,
- defaultValue = AppThemeColors.PURPLE,
+ defaultValue = AppThemeColors.WOLFSKIN,
getter = { it.interfacePreferences.appThemeColors },
setter = { prefs, value ->
prefs.updateInterfacePreferences { appThemeColors = value }
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/PreferencesContent.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/PreferencesContent.kt
index d95d5aba..a21405c2 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/PreferencesContent.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/PreferencesContent.kt
@@ -271,6 +271,9 @@ fun PreferencesContent(
.fillMaxWidth()
.padding(top = 8.dp, bottom = 4.dp),
)
+ if (group.title == R.string.about) {
+ WolfskinAbout()
+ }
}
val groupPreferences =
group.preferences +
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/WolfskinAbout.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/WolfskinAbout.kt
new file mode 100644
index 00000000..a0814180
--- /dev/null
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/preferences/WolfskinAbout.kt
@@ -0,0 +1,28 @@
+package com.github.damontecres.wholphin.ui.preferences
+
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalUriHandler
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
+import androidx.tv.material3.MaterialTheme
+import androidx.tv.material3.Text
+import com.github.damontecres.wholphin.R
+import com.github.damontecres.wholphin.ui.components.TextButton
+
+/** Fork identity and a focusable link to the upstream project. */
+@Composable
+fun WolfskinAbout() {
+ val uriHandler = LocalUriHandler.current
+ val upstreamUrl = stringResource(R.string.wolfskin_upstream_url)
+ Column(verticalArrangement = Arrangement.spacedBy(8.dp)) {
+ Text(
+ text = stringResource(R.string.app_name_long),
+ style = MaterialTheme.typography.headlineMedium,
+ )
+ TextButton(onClick = { uriHandler.openUri(upstreamUrl) }) {
+ Text(stringResource(R.string.wolfskin_upstream_credit))
+ }
+ }
+}
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/theme/Theme.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/theme/Theme.kt
index 8ae95b25..8cce37e5 100644
--- a/app/src/main/java/com/github/damontecres/wholphin/ui/theme/Theme.kt
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/theme/Theme.kt
@@ -13,9 +13,10 @@ import com.github.damontecres.wholphin.ui.theme.colors.OledThemeColors
import com.github.damontecres.wholphin.ui.theme.colors.OrangeThemeColors
import com.github.damontecres.wholphin.ui.theme.colors.PurpleThemeColors
import com.github.damontecres.wholphin.ui.theme.colors.RedThemeColors
+import com.github.damontecres.wholphin.ui.theme.colors.WolfskinThemeColors
val LocalTheme =
- compositionLocalOf { AppThemeColors.PURPLE }
+ compositionLocalOf { AppThemeColors.WOLFSKIN }
fun getThemeColors(appThemeColors: AppThemeColors): ThemeColors =
when (appThemeColors) {
@@ -27,13 +28,14 @@ fun getThemeColors(appThemeColors: AppThemeColors): ThemeColors =
AppThemeColors.BOLD_BLUE -> BoldBlueThemeColors
AppThemeColors.RED -> RedThemeColors
AppThemeColors.BROWN -> BrownThemeColors
- AppThemeColors.UNRECOGNIZED -> PurpleThemeColors
+ AppThemeColors.WOLFSKIN -> WolfskinThemeColors
+ AppThemeColors.UNRECOGNIZED -> WolfskinThemeColors
}
@Composable
fun WholphinTheme(
darkTheme: Boolean = true,
- appThemeColors: AppThemeColors = AppThemeColors.PURPLE,
+ appThemeColors: AppThemeColors = AppThemeColors.WOLFSKIN,
content: @Composable () -> Unit,
) {
val themeColors = getThemeColors(appThemeColors)
diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/theme/colors/WolfskinThemeColors.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/theme/colors/WolfskinThemeColors.kt
new file mode 100644
index 00000000..ee0a77b5
--- /dev/null
+++ b/app/src/main/java/com/github/damontecres/wholphin/ui/theme/colors/WolfskinThemeColors.kt
@@ -0,0 +1,59 @@
+package com.github.damontecres.wholphin.ui.theme.colors
+
+import androidx.compose.ui.graphics.Color
+import com.github.damontecres.wholphin.ui.theme.ThemeColors
+
+/** Lilac accents on near-black surfaces, with upstream Purple available separately. */
+val WolfskinThemeColors =
+ object : ThemeColors {
+ private val background = Color(0xFF07070A)
+ private val lilac = Color(0xFFD2BCFF)
+ private val onLilac = Color(0xFF241334)
+ private val container = Color(0xFF382A49)
+ private val onContainer = Color(0xFFEADCFF)
+ private val surfaceVariant = Color(0xFF24202D)
+
+ override val lightSchemeMaterial = PurpleThemeColors.lightSchemeMaterial
+ override val lightScheme = PurpleThemeColors.lightScheme
+
+ override val darkSchemeMaterial =
+ PurpleThemeColors.darkSchemeMaterial.copy(
+ primary = lilac,
+ onPrimary = onLilac,
+ primaryContainer = container,
+ onPrimaryContainer = onContainer,
+ secondary = lilac,
+ onSecondary = onLilac,
+ secondaryContainer = container,
+ onSecondaryContainer = onContainer,
+ tertiary = lilac,
+ onTertiary = onLilac,
+ tertiaryContainer = container,
+ onTertiaryContainer = onContainer,
+ background = background,
+ surface = background,
+ surfaceVariant = surfaceVariant,
+ inversePrimary = Color(0xFF705090),
+ )
+
+ override val darkScheme =
+ PurpleThemeColors.darkScheme.copy(
+ primary = lilac,
+ onPrimary = onLilac,
+ primaryContainer = container,
+ onPrimaryContainer = onContainer,
+ secondary = lilac,
+ onSecondary = onLilac,
+ secondaryContainer = container,
+ onSecondaryContainer = onContainer,
+ tertiary = lilac,
+ onTertiary = onLilac,
+ tertiaryContainer = container,
+ onTertiaryContainer = onContainer,
+ background = background,
+ surface = background,
+ surfaceVariant = surfaceVariant,
+ inversePrimary = Color(0xFF705090),
+ border = lilac.copy(alpha = .75f),
+ )
+ }
diff --git a/app/src/main/proto/WholphinDataStore.proto b/app/src/main/proto/WholphinDataStore.proto
index 38f6099c..0c3b5cb3 100644
--- a/app/src/main/proto/WholphinDataStore.proto
+++ b/app/src/main/proto/WholphinDataStore.proto
@@ -123,6 +123,7 @@ enum AppThemeColors {
OLED_BLACK = 5;
RED = 6;
BROWN = 7;
+ WOLFSKIN = 8;
}
enum EdgeStyle{
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml b/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml
index 4c5f707b..ec3f55e3 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml
@@ -1,9 +1,4 @@
-
-
-
-
-
-
+
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
index 5b7669dc..4ac23262 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
index 8e05a03a..de1628cc 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
index e6a5972a..df5faba9 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
index f44d1093..415cf194 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
index 9e9214e8..d9df942a 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
index 3766935e..dea8ff64 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_banner.png b/app/src/main/res/mipmap-xhdpi/ic_banner.png
index 4fa742db..ee42b91e 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_banner.png and b/app/src/main/res/mipmap-xhdpi/ic_banner.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png
index 52b72c47..ee42b91e 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png and b/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
index ce75a196..924b40eb 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
index 22298ad1..e218f8bd 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
index 3f7c7e29..40674eff 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
index e5cef34d..6f5be441 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
index fafcb4f1..8c1935c7 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
index 5c1a8e36..48a4e286 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
index 90341396..1cf49fb6 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
index dbe5821e..afc41a8b 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
index 2ef5c7d0..122a33e0 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 7de6e9ac..d71123be 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -489,8 +489,8 @@
Vyplnit
Vyplnit šířku
Vyplnit výšku
- Výchozí předvolba Wholphin
- Wholphin kompaktní
+ Výchozí předvolba Wolfskin
+ Wolfskin kompaktní
Obrázky náhledů seriálů
Obrázky náhledů epizod
Nejnižší
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 870d8c85..a6efeb91 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -538,8 +538,8 @@
Fyld
Fyld bredde
Fyld højde
- Wholphin-standard
- Wholphin kompakt
+ Wolfskin-standard
+ Wolfskin kompakt
Seriens miniaturebilleder
Episode-miniaturebilleder
Laveste
@@ -637,7 +637,7 @@
Vælg alle
Adskil typer
Foretræk logoer som titler
- Wholphin er opdateret til %s
+ Wolfskin er opdateret til %s
Fjern fra Fortsæt med at se
Fjern serien fra Næste
Vis serier fjernet fra Næste
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 3d745172..f4523d02 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -511,8 +511,8 @@
Animieren
Breite ausfüllen
Höhe ausfüllen
- Wholphin Standard
- Wholphin Kompakt
+ Wolfskin Standard
+ Wolfskin Kompakt
Niedrigste
Niedrig
Mittel
@@ -580,7 +580,7 @@
Fortfahren
Verschiedene Arten
Bevorzugt Logo statt Titel anzeigen
- Wholphin aktualisiert auf %s
+ Wolfskin aktualisiert auf %s
Von \"Weiterschauen\" entfernen
Serie aus \"Als Nächstes anschauen\" entfernen
Mehr anzeigen
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 0dbe1e87..696ad927 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -599,7 +599,7 @@
Eliminar de la cola
Separar por tipos
Preferir logotipos para los títulos
- Wholphin se ha actualizado a la versión %s
+ Wolfskin se ha actualizado a la versión %s
Ver más
Descubrir series
Descubrir películas
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 168b914e..8fc29c91 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -535,8 +535,8 @@
Täida
Täida laiuses
Täida kõrguses
- Wholphini vaikeseadistus
- Wholphini kompaktne vaade
+ Wolfskini vaikeseadistus
+ Wolfskini kompaktne vaade
Sarja pisipildid
Osa pisipildid
Vaikseim
@@ -580,7 +580,7 @@
Jätka
Eraldi tüübid
Pealkirjade puhul eelista logode kuvamist
- Wholphin on uuendatud versioonini %s
+ Wolfskin on uuendatud versioonini %s
Eemalda „Jätka vaatamist“ valikust
Eemalda sari valikust „Järgmisena esitamisel“
Vaata sarja, mis sai eemaldatud valikust „Järgmisena esitamisel“
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 4d7506ed..898f8a10 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -507,8 +507,8 @@
Remplir
Largeur de remplissage
Hauteur de remplissage
- Wholphin Par défaut
- Wholphin Compact
+ Wolfskin Par défaut
+ Wolfskin Compact
Images miniatures de la série
Images miniatures de l\'épisode
Le plus bas
@@ -599,7 +599,7 @@
Suivant
Séparer par types
Préférer les logos pour les titres
- Wholphin a été mis à jour vers la version %s
+ Wolfskin a été mis à jour vers la version %s
Voir plus
Parcourir les séries
Parcourir les films
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index b056a7be..1eb5b58b 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -593,8 +593,8 @@
Ispuni
Ispuni širinu
Ispuni visinu
- Wholphin zadani
- Wholphin zbijeni
+ Wolfskin zadani
+ Wolfskin zbijeni
Slike sličica serije
Slike sličica epizoda
Najniža
@@ -653,7 +653,7 @@
Odaberi sve
Odvojene vrste
Preferiraj prikaz logotipa za naslove
- Wholphin ažuriran na %s
+ Wolfskin ažuriran na %s
Ukloni iz \"Nastavi gledanje\"
Ukloni seriju iz \"Slijedi\"
Prikaži serije uklonjene iz \"Slijedi\"
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index f3c0a00c..d6f20d4b 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -465,8 +465,8 @@
Foto
Sertakan jenis
Tampilkan gambar untuk jenis item
- Wholphin Bawaan
- Wholphin Ringkas
+ Wolfskin Bawaan
+ Wolfskin Ringkas
Gambar Thumbnail Seri
Gambar Thumbnail Episode
Terendah
@@ -561,7 +561,7 @@
Pisahkan jenis
Buka artis
Buka album
- Wholphin diperbarui ke %s
+ Wolfskin diperbarui ke %s
Hapus dari \"Lanjutkan menonton\"
Hapus seri dari \"Berikutnya\"
Lihat seri yang dihapus dari \"Berikutnya\"
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 7e347b2d..fb5f37ce 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -489,8 +489,8 @@
Riempi
Riempi larghezza
Riempi altezza
- Wholphin predefinito
- Wholphin Compatto
+ Wolfskin predefinito
+ Wolfskin Compatto
Immagini miniatura serie
Immagini miniatura episodio
Minimo
@@ -599,7 +599,7 @@
Continua
Tipi separati
Preferisci mostrare i loghi per i titoli
- Wholphin aggiornato a %s
+ Wolfskin aggiornato a %s
Rimuovi da Continua a guardare
Rimuovi serie da Prossimo
Visualizza serie rimosse da Prossimo
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index a4191206..fe4ce431 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -517,8 +517,8 @@
מתיחה לתצוגה
מתיחה לרוחב
מתיחה לגובה
- ברירת המחדל של Wholphin
- Wholphin קומפקטי
+ ברירת המחדל של Wolfskin
+ Wolfskin קומפקטי
תמונות־ממוזערות של סדרה
תמונות־ממוזערות של פרק
כחול עז
@@ -594,7 +594,7 @@
בחר הכול
סוגים נפרדים
העדף להציג לוגו על פני כותרת
- Wholphin עודכן ל־%s
+ Wolfskin עודכן ל־%s
מחק מהמשך צפייה
מחק סדרה מ־\"הבא בתור\"
הצג סדרות שנמחקו מ־\"הבא בתור\"
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 9e26efcc..c8066cec 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -483,8 +483,8 @@
Fyll
Fyll bredde
Fyll høyde
- Wholphin Standard
- Wholphin Kompakt
+ Wolfskin Standard
+ Wolfskin Kompakt
Serieminiatyrbilder
Episodeminiatyrbilder
Lavest
@@ -573,7 +573,7 @@
Velg alle
Seperate typer
Foretrekk å vise logoer for titler
- Wholphin oppdatert til %s
+ Wolfskin oppdatert til %s
Fjern fra fortsett å se
Fjern serier fra neste
Vis serier fjernet fra neste
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 2d6bd0c4..1e4891ba 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -480,8 +480,8 @@
Vullen
Vulbreedte
Vulhoogte
- Wholphin standaard
- Wholphin compact
+ Wolfskin standaard
+ Wolfskin compact
Laag
Middel
Hoog
@@ -603,7 +603,7 @@
Experimentele instellingen inschakelen?
Experimentele instellingen
- Wholphin is geüpdatet naar %s
+ Wolfskin is geüpdatet naar %s
Laatst afgespeeld
Direct afspelen met de ingebouwde ExoPlayer
Ondertitels inbranden/transcoderen op de server
diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml
index 55e08a8d..eb7a6fe7 100644
--- a/app/src/main/res/values-nn/strings.xml
+++ b/app/src/main/res/values-nn/strings.xml
@@ -478,8 +478,8 @@
Fyll
Fyll breidde
Fyll høgde
- Wholphin-standard
- Wholphin-kompakt
+ Wolfskin-standard
+ Wolfskin-kompakt
Miniatyrbilete for seriar
Miniatyrbilete for episodar
Lågast
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index a208aeb6..83247c34 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -386,8 +386,8 @@
Wypełnij
Pełna szerokość
Pełna wysokość
- Domyślny Wholphin
- Kompaktowy Wholphin
+ Domyślny Wolfskin
+ Kompaktowy Wolfskin
Miniatury seriali
Zdjęcie odcinków
Najniższa
@@ -576,7 +576,7 @@
Wybierz wszystkie
Oddzielne typy
Wyświetlanie logo zamiast tytułu
- Wholphin zaktualizowany do %s
+ Wolfskin zaktualizowany do %s
Usuń z Kontynuuj oglądanie
Usuń serial z Następnie
Zobacz serię usuniętą z Następnie
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index e42abda3..af1e0d9f 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -498,8 +498,8 @@
Preencher
Preencher largura
Preencher altura
- Padrão do Wholphin
- Wholphin Compacto
+ Padrão do Wolfskin
+ Wolfskin Compacto
Prévia das imagens das séries
Prévias das imagens do episódio
Mais baixo
@@ -605,7 +605,7 @@
Selecionar todos
Tipos separados
Preferir a exibição de logos para títulos
- Wholphin atualizado para %s
+ Wolfskin atualizado para %s
Remover de continuar assistindo
Remover série de a seguir
Ver séries removidas de a seguir
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 02e92e10..d65ac309 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -507,8 +507,8 @@
Preencher
Preencher largura
Preencher altura
- Padrão do Wholphin
- Wholphin Compacto
+ Padrão do Wolfskin
+ Wolfskin Compacto
Imagens em miniatura da série
Imagens em miniatura do episódio
Mínimo
@@ -599,7 +599,7 @@
Continuar
Separar por tipos
Prefiro mostrar logótipos nos títulos
- Wholphin foi atualizado para %s
+ Wolfskin foi atualizado para %s
Remover de «Continuar a ver»
Remover série do «Continuar a ver»
Ver séries removidas do «Continuar a ver»
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1c2321e9..f7cc6e4c 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -605,8 +605,8 @@
Растянуть
По ширине
По высоте
- Wholphin по умолчанию
- Wholphin компактный
+ Wolfskin по умолчанию
+ Wolfskin компактный
Миниатюры сериалов
Миниатюры эпизодов
Самая низкая
@@ -683,7 +683,7 @@
Продолжить
Разделять по типам
Показывать логотипы вместо текстовых названий
- Wholphin обновлён до версии %s
+ Wolfskin обновлён до версии %s
Убрать из «Продолжить просмотр»
Убрать сериал из «Далее»
Показать сериалы, убранные из «Далее»
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 95f777c1..bc78a1f8 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -526,8 +526,8 @@
Vyplniť
Vyplniť na šírku
Vyplniť na výšku
- Wholphin predvolené
- Wholphin kompaktné
+ Wolfskin predvolené
+ Wolfskin kompaktné
Náhľadové obrázky seriálov
Náhľadové obrázky epizód
Náhľad
@@ -662,7 +662,7 @@
Pokračovať
Oddeliť typy
Uprednostniť zobrazovanie log namiesto názvov
- Wholphin bol aktualizovaný na verziu %s
+ Wolfskin bol aktualizovaný na verziu %s
Odstrániť z Pokračovať v pozeraní
Odstrániť seriál zo sekcie Nasleduje
Zobraziť seriály odstránené zo sekcie Nasleduje
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 46ec0b68..5711dac1 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -600,7 +600,7 @@
Izberi vse
Ločene vrste
Prikazuj logotipe za naslove
- Wholphin posodobljen na %s
+ Wolfskin posodobljen na %s
Odstrani iz nadaljevanja gledanja
Odstrani serijo iz nadaljevanja gledanja
Ogled serije, odstranjene iz naslednjega gledanja
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 474d685a..3b71517a 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -424,8 +424,8 @@
Välj rader och bilder på startsidan
Är du säker på att du vill radera detta objekt?
Upptäck
- Wholphin Kompakt
- Wholphin Standard
+ Wolfskin Kompakt
+ Wolfskin Standard
Visningsförinställningar
Inbyggda förinställningar för att snabbt styla alla rader
Avsnittsminiatyrer
@@ -595,7 +595,7 @@
Vilka typer av objekt ska bilder visas för
Låten har text
Visa omslag till album
- Wholphin har uppdaterats till %s
+ Wolfskin har uppdaterats till %s
Senast visat
Huvudkatalog
Populäritet
diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml
index c544add8..2ccccbae 100644
--- a/app/src/main/res/values-th/strings.xml
+++ b/app/src/main/res/values-th/strings.xml
@@ -465,8 +465,8 @@
ยืดเต็มจอ
ยืดตามความกว้าง
ยืดตามความสูง
- Wholphin ค่าเริ่มต้น
- Wholphin คอมแพค
+ Wolfskin ค่าเริ่มต้น
+ Wolfskin คอมแพค
ภาพขนาดย่อของซีรี่ส์
ภาพขนาดย่อของตอน
เบาสุด
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index b05abfd0..f591c3fb 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -480,8 +480,8 @@
Doldur
Genişliği Doldur
Yüksekliği Doldur
- Wholphin Varsayılan
- Wholphin Kompakt
+ Wolfskin Varsayılan
+ Wolfskin Kompakt
Dizi Küçük Resimleri
Bölüm Küçük Resimleri
En Düşük
@@ -589,7 +589,7 @@
Devam et
Farklı türler
Başlık yerine logo göster
- Wholphin %s sürümüne güncellendi
+ Wolfskin %s sürümüne güncellendi
Daha fazla göster
Dizileri Keşfet
Filmleri Keşfet
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 6b518809..0c0c9727 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -567,7 +567,7 @@
Заповнити
Заповнити по ширині
Заповнити по висоті
- Wholphin за замовчуванням
+ Wolfskin за замовчуванням
Мініатюри серіалів
Мініатюри серій
Найнижча
@@ -655,7 +655,7 @@
Вибрати все
Розділяти типи
Надавати перевагу логотипам для назв
- Wholphin оновлено до %s
+ Wolfskin оновлено до %s
Видалити з «Продовжити перегляд»
Видалити серіал з «Далі»
Переглянути серіали, видалені з «Далі»
@@ -686,5 +686,5 @@
Томати
Сортування
Розділити на окремі рядки
- Wholphin компактний
+ Wolfskin компактний
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index e36dc507..07b57d8e 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -453,8 +453,8 @@
填充
填充宽度
填充高度
- Wholphin 默认
- Wholphin 紧凑
+ Wolfskin 默认
+ Wolfskin 紧凑
剧集缩略图
分集缩略图
紫色
@@ -561,7 +561,7 @@
继续
分离类型
优先显示标题图标
- Wholphin 已更新至 %s
+ Wolfskin 已更新至 %s
查看更多
发现电视节目
发现电影
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 622f5463..7c10daab 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -482,8 +482,8 @@
優先使用 MPV
僅 HDR 使用 ExoPlayer 播放
我的最愛的 %s
- Wholphin 預設樣式
- Wholphin 緊湊樣式
+ Wolfskin 預設樣式
+ Wolfskin 緊湊樣式
劇集縮圖樣式
單集縮圖樣式
海報 (2:3)
@@ -561,7 +561,7 @@
即時混播
依類型分開顯示
優先顯示圖像標題
- Wholphin 已更新至 %s
+ Wolfskin 已更新至 %s
查看更多
探索電視劇
探索電影
diff --git a/app/src/main/res/values/ic_banner_background.xml b/app/src/main/res/values/ic_banner_background.xml
deleted file mode 100644
index e0e3446a..00000000
--- a/app/src/main/res/values/ic_banner_background.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- #000B25
-
diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml
index ffea1b18..933396c0 100644
--- a/app/src/main/res/values/ic_launcher_background.xml
+++ b/app/src/main/res/values/ic_launcher_background.xml
@@ -1,4 +1,4 @@
- #101010
+ #07070a
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd87f6da..7b8a3578 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,6 +1,6 @@
- Wholphin
- Wholphin
+ Wolfskin
+ Wolfskin
About
Active Recordings
@@ -587,8 +587,8 @@
Fill
Fill width
Fill height
- Wholphin Default
- Wholphin Compact
+ Wolfskin Default
+ Wolfskin Compact
Series Thumb images
Episode Thumbnail images
@@ -620,6 +620,7 @@
- @string/black
- @string/red
- @string/brown
+ - @string/wolfskin_theme
Ignore
@@ -808,7 +809,7 @@
Select all
Separate types
Prefer showing logos for titles
- Wholphin updated to %s
+ Wolfskin updated to %s
Remove from continue watching
Remove series from next up
View series removed from next up
diff --git a/app/src/main/res/values/wolfskin.xml b/app/src/main/res/values/wolfskin.xml
new file mode 100644
index 00000000..2aca4d36
--- /dev/null
+++ b/app/src/main/res/values/wolfskin.xml
@@ -0,0 +1,6 @@
+
+
+ Wolfskin
+ based on Wholphin by damontecres
+ https://github.com/damontecres/Wholphin
+
diff --git a/app/src/test/java/com/github/damontecres/wholphin/ui/WolfskinThemeColorsTest.kt b/app/src/test/java/com/github/damontecres/wholphin/ui/WolfskinThemeColorsTest.kt
new file mode 100644
index 00000000..3ef4ad20
--- /dev/null
+++ b/app/src/test/java/com/github/damontecres/wholphin/ui/WolfskinThemeColorsTest.kt
@@ -0,0 +1,44 @@
+package com.github.damontecres.wholphin.ui
+
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.luminance
+import com.github.damontecres.wholphin.ui.theme.colors.WolfskinThemeColors
+import org.junit.Assert.assertTrue
+import org.junit.Test
+
+/** Normal and focused TV text must remain readable on the fork's dark palette. */
+class WolfskinThemeColorsTest {
+ @Test
+ fun darkPaletteHasReadableNormalAndFocusedText() {
+ val television = WolfskinThemeColors.darkScheme
+ val material = WolfskinThemeColors.darkSchemeMaterial
+ val textAndBackgrounds =
+ listOf(
+ television.onBackground to television.background,
+ television.onSurface to television.surface,
+ television.onSurfaceVariant to television.surfaceVariant,
+ television.onPrimary to television.primary,
+ television.onPrimaryContainer to television.primaryContainer,
+ television.onSecondary to television.secondary,
+ television.onSecondaryContainer to television.secondaryContainer,
+ television.onTertiary to television.tertiary,
+ television.onTertiaryContainer to television.tertiaryContainer,
+ material.onBackground to material.background,
+ material.onSurface to material.surface,
+ material.onPrimary to material.primary,
+ material.onPrimaryContainer to material.primaryContainer,
+ )
+ textAndBackgrounds.forEach { (text, background) ->
+ assertReadable(text, background)
+ }
+ }
+
+ private fun assertReadable(text: Color, background: Color) {
+ val textLuminance = text.luminance()
+ val backgroundLuminance = background.luminance()
+ val contrast =
+ (maxOf(textLuminance, backgroundLuminance) + .05f) /
+ (minOf(textLuminance, backgroundLuminance) + .05f)
+ assertTrue("Text contrast $contrast is below 4.5:1", contrast >= 4.5f)
+ }
+}