diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/af.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/af.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/af.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/af.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ar.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ar.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ar.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ar.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ca.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ca.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ca.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ca.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/cs.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/cs.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/cs.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/cs.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/da.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/da.json index b952c5b..399b4ad 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/da.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/da.json @@ -47,6 +47,7 @@ "lblForceLogin": "Tving Samsung-certifikat", "DeveloperModeRequired": "Samsung TV er ikke i developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP matcher ikke denne enheds lokale IP, vil du fortsætte?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Omvendt IP (for arabisk/hebraisk)", "ServerIP": "Server IP", "Theme": "Tema", @@ -149,5 +150,6 @@ "UpdateError": "Opdatering mislykkedes", "UpdateCheckFailed": "Kunne ikke tjekke for opdateringer", "IncompatiblePackage": "Pakkeversionen er ikke kompatibel med enheden.", - "IncompatiblePackageDetailed": "Pakkeversion {0} er ikke kompatibel med Tizen OS {1}" + "IncompatiblePackageDetailed": "Pakkeversion {0} er ikke kompatibel med Tizen OS {1}", + "lblMdnsWarning": "Advarsel: Du bruger et mDNS-hostnavn (.local). Samsung TV'er kan ikke pålideligt opløse .local-adresser, hvilket kan få serveren til at vises som \"undefined\" på dit TV — især efter netværksafbrydelser. Brug en direkte IP-adresse (f.eks. 192.168.1.100) i stedet for en stabil forbindelse." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/de.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/de.json index 85f0f4e..a6d70dc 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/de.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/de.json @@ -47,6 +47,7 @@ "lblForceLogin": "Samsung-Zertifikat erzwingen", "DeveloperModeRequired": "Samsung TV ist nicht im Entwicklermodus...", "DeveloperIPMismatch": "Samsung Developer Mode IP stimmt nicht mit der lokalen IP dieses Geräts überein, möchten Sie fortfahren?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (für Arabisch/Hebräisch)", "ServerIP": "Server-IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update fehlgeschlagen", "UpdateCheckFailed": "Update-Überprüfung fehlgeschlagen", "IncompatiblePackage": "Paketversion ist nicht mit dem Gerät kompatibel.", - "IncompatiblePackageDetailed": "Paketversion {0} nicht kompatibel mit Tizen OS {1}" + "IncompatiblePackageDetailed": "Paketversion {0} nicht kompatibel mit Tizen OS {1}", + "lblMdnsWarning": "Warnung: Du verwendest einen mDNS-Hostnamen (.local). Samsung TVs können .local-Adressen nicht zuverlässig auflösen, was dazu führen kann, dass der Server auf deinem TV als \"undefined\" angezeigt wird — besonders nach Netzwerkunterbrechungen. Verwende stattdessen eine direkte IP-Adresse (z.B. 192.168.1.100) für eine stabile Verbindung." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/el.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/el.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/el.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/el.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/en.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/en.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/en.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/en.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/es.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/es.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/es.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/es.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/fi.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/fi.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/fi.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/fi.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/fr.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/fr.json index 4eb0f14..81195b8 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/fr.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/fr.json @@ -47,6 +47,7 @@ "lblForceLogin": "Certificat Samsung obligatoire", "DeveloperModeRequired": "Le téléviseur Samsung n'est pas en mode développeur...", "DeveloperIPMismatch": "L'adresse IP du mode développeur Samsung ne correspond pas à l'adresse IP locale de cet appareil. Souhaitez-vous continuer ?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Adresse IP inversée (pour l'arabe/l'hébreu)", "ServerIP": "IP du serveur", "Theme": "Thème", @@ -149,5 +150,6 @@ "UpdateError": "Échec de la mise à jour", "UpdateCheckFailed": "Échec de la vérification des mises à jour", "IncompatiblePackage": "Version du package non compatible avec l'appareil.", - "IncompatiblePackageDetailed": "La version du package {0} n'est pas compatible avec Tizen OS {1}" + "IncompatiblePackageDetailed": "La version du package {0} n'est pas compatible avec Tizen OS {1}", + "lblMdnsWarning": "Attention : Vous utilisez un nom d'hôte mDNS (.local). Les TV Samsung ne peuvent pas résoudre de manière fiable les adresses .local, ce qui peut faire apparaître le serveur comme \"undefined\" sur votre TV — surtout après des interruptions réseau. Utilisez plutôt une adresse IP directe (ex. 192.168.1.100) pour une connexion stable." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/he.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/he.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/he.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/he.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/hu.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/hu.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/hu.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/hu.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/it.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/it.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/it.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/it.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ja.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ja.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ja.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ja.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ko.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ko.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ko.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ko.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/nl.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/nl.json index 1719b2c..11a1851 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/nl.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/nl.json @@ -47,6 +47,7 @@ "lblForceLogin": "Forceer Samsung-certificaat", "DeveloperModeRequired": "Samsung TV staat niet in ontwikkelaarsmodus...", "DeveloperIPMismatch": "Samsung ontwikkelaarsmodus IP komt niet overeen met het lokale IP van dit apparaat, wilt u doorgaan?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Omgekeerd IP-adres (voor Arabisch/Hebreeuws)", "ServerIP": "Server IP", "Theme": "Thema", @@ -149,5 +150,6 @@ "UpdateError": "Update mislukt", "UpdateCheckFailed": "Controle op updates mislukt", "IncompatiblePackage": "Pakketversie niet compatibel met apparaat.", - "IncompatiblePackageDetailed": "Pakketversie {0} niet compatibel met Tizen OS {1}" + "IncompatiblePackageDetailed": "Pakketversie {0} niet compatibel met Tizen OS {1}", + "lblMdnsWarning": "Waarschuwing: Je gebruikt een mDNS-hostnaam (.local). Samsung TV's kunnen .local-adressen niet betrouwbaar omzetten, waardoor de server als \"undefined\" op je TV kan verschijnen — vooral na netwerkonderbrekingen. Gebruik in plaats daarvan een direct IP-adres (bijv. 192.168.1.100) voor een stabiele verbinding." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/no.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/no.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/no.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/no.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/pl.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/pl.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/pl.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/pl.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/pt.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/pt.json index 45faa2f..c9f9a84 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/pt.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/pt.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Aviso: Você está usando um nome de host mDNS (.local). TVs Samsung não conseguem resolver endereços .local de forma confiável, o que pode fazer o servidor aparecer como \"undefined\" na sua TV — especialmente após interrupções de rede. Use um endereço IP direto (ex. 192.168.1.100) para uma conexão estável." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ro.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ro.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ro.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ro.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/ru.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/ru.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/ru.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/ru.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/sr.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/sr.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/sr.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/sr.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/sv.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/sv.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/sv.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/sv.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/tr.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/tr.json index 18a9716..a0365f0 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/tr.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/tr.json @@ -47,6 +47,7 @@ "lblForceLogin": "Samsung sertifikasını zorla", "DeveloperModeRequired": "Samsung TV geliştirici modunda değil...", "DeveloperIPMismatch": "Samsung Geliştirici modu IP'si bu cihazın yerel IP'siyle eşleşmiyor, devam etmek istiyor musunuz?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Ters IP (Arapça/İbranice için)", "ServerIP": "Sunucu IP", "Theme": "Tema", @@ -149,5 +150,6 @@ "UpdateError": "Güncelleme başarısız", "UpdateCheckFailed": "Güncelleme kontrolü başarısız", "IncompatiblePackage": "Paket sürümü cihazla uyumlu değil.", - "IncompatiblePackageDetailed": "Paket sürümü {0}, Tizen OS {1} ile uyumlu değil" + "IncompatiblePackageDetailed": "Paket sürümü {0}, Tizen OS {1} ile uyumlu değil", + "lblMdnsWarning": "Uyarı: Bir mDNS ana bilgisayar adı (.local) kullanıyorsunuz. Samsung TV'ler .local adreslerini güvenilir şekilde çözümleyemez, bu da sunucunun TV'nizde \"undefined\" olarak görünmesine neden olabilir — özellikle ağ kesintilerinden sonra. Kararlı bir bağlantı için bunun yerine doğrudan bir IP adresi (ör. 192.168.1.100) kullanın." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/uk.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/uk.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/uk.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/uk.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/vi.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/vi.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/vi.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/vi.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Assets/Localization/zh.json b/Jellyfin2Samsung-CrossOS/Assets/Localization/zh.json index 45faa2f..da11895 100644 --- a/Jellyfin2Samsung-CrossOS/Assets/Localization/zh.json +++ b/Jellyfin2Samsung-CrossOS/Assets/Localization/zh.json @@ -47,6 +47,7 @@ "lblForceLogin": "Force Samsung certificate", "DeveloperModeRequired": "Samsung TV is not in developer mode...", "DeveloperIPMismatch": "Samsung Developer mode IP doesn't match this devices local IP, do you wish to continue?", + "DeveloperIPReversed": "IP is in reversed order on the TV, please re-enable developer mode and type your local IP in reversed order. (ex: 192.168.1.2 → 2.1.168.192)", "lblRTL": "Reverse IP (for Arabic/Hebrew)", "ServerIP": "Server IP", "Theme": "Theme", @@ -149,5 +150,6 @@ "UpdateError": "Update failed", "UpdateCheckFailed": "Failed to check for updates", "IncompatiblePackage": "Package version not compatible with device.", - "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}" + "IncompatiblePackageDetailed": "Package version {0} not compatible with Tizen OS {1}", + "lblMdnsWarning": "Warning: You are using an mDNS hostname (.local). Samsung TVs cannot reliably resolve .local addresses, which may cause the server to appear as \"undefined\" on your TV — especially after network interruptions. Use a direct IP address (e.g. 192.168.1.100) instead for a stable connection." } \ No newline at end of file diff --git a/Jellyfin2Samsung-CrossOS/Helpers/AppSettings.cs b/Jellyfin2Samsung-CrossOS/Helpers/AppSettings.cs index 2d5e5c4..de4c7ad 100644 --- a/Jellyfin2Samsung-CrossOS/Helpers/AppSettings.cs +++ b/Jellyfin2Samsung-CrossOS/Helpers/AppSettings.cs @@ -46,6 +46,7 @@ namespace Jellyfin2Samsung.Helpers public string JellyfinAccessToken { get; set; } = ""; public string JellyfinServerId { get; set; } = ""; public string JellyfinServerLocalAddress { get; set; } = ""; + public string JellyfinServerName { get; set; } = ""; public string AudioLanguagePreference { get; set; } = ""; public string SubtitleLanguagePreference { get; set; } = ""; public bool EnableBackdrops { get; set; } = false; @@ -84,7 +85,7 @@ namespace Jellyfin2Samsung.Helpers // ----- Application-scoped settings (readonly at runtime) ----- public string ReleasesUrl { get; set; } = "https://api.github.com/repos/jeppevinkel/jellyfin-tizen-builds/releases"; public string AuthorEndpoint { get; set; } = "https://dev.tizen.samsung.com/apis/v2/authors"; - public string AppVersion { get; set; } = "v2.2.0.7"; + public string AppVersion { get; set; } = "v2.2.0.8"; public string TizenSdb { get; set; } = "https://api.github.com/repos/PatrickSt1991/tizen-sdb/releases"; public string JellyfinAvRelease { get; set; } = "https://api.github.com/repos/PatrickSt1991/tizen-jellyfin-avplay/releases"; public string JellyfinAvReleaseFork { get; set; } = "https://api.github.com/repos/asamahy/tizen-jellyfin-avplay/releases"; diff --git a/Jellyfin2Samsung-CrossOS/Helpers/Core/PackageHelper.cs b/Jellyfin2Samsung-CrossOS/Helpers/Core/PackageHelper.cs index ae9961f..0f494a7 100644 --- a/Jellyfin2Samsung-CrossOS/Helpers/Core/PackageHelper.cs +++ b/Jellyfin2Samsung-CrossOS/Helpers/Core/PackageHelper.cs @@ -95,6 +95,25 @@ namespace Jellyfin2Samsung.Helpers.Core selectedDevice.IpAddress = selectedDevice.DeveloperIP; } + if (ipMismatch) + { + bool isReversedIp = localIps + .Select(ip => _networkService.InvertIPAddress(ip)) + .Contains(selectedDevice.DeveloperIP); + + if (isReversedIp) + { + bool continueExecution = await _dialogService.ShowConfirmationAsync( + "IP Reversed", + "DeveloperIPReversed".Localized(), + "keyContinue".Localized(), + "keyStop".Localized()); + if (!continueExecution) + return false; + ipMismatch = false; + } + } + if (ipMismatch) { bool continueExecution = await _dialogService.ShowConfirmationAsync("IP Mismatch", "DeveloperIPMismatch".Localized(), "keyContinue".Localized(), "keyStop".Localized()); diff --git a/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/JellyfinIndex.cs b/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/JellyfinIndex.cs index 69d0682..32d0b4f 100644 --- a/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/JellyfinIndex.cs +++ b/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/JellyfinIndex.cs @@ -76,6 +76,18 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches if (!servers.Any(s => s?.GetValue() == serverUrl)) servers.Add(serverUrl); + // Add LocalAddress (IP-based) as fallback when the primary URL uses mDNS (.local) + // Samsung TVs (Tizen) cannot reliably resolve mDNS hostnames, especially after network disruptions + var localAddress = UrlHelper.NormalizeServerUrl(AppSettings.Default.JellyfinServerLocalAddress); + if (!string.IsNullOrEmpty(localAddress) && + localAddress != serverUrl && + UrlHelper.IsValidHttpUrl(localAddress) && + !servers.Any(s => s?.GetValue() == localAddress)) + { + servers.Add(localAddress); + Trace.WriteLine($"[UpdateServerAddress] Added LocalAddress fallback: {localAddress}"); + } + await File.WriteAllTextAsync(path, config.ToJsonString()); } @@ -92,6 +104,7 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches var serverUrl = UrlHelper.NormalizeServerUrl(AppSettings.Default.JellyfinFullUrl); var serverId = AppSettings.Default.JellyfinServerId; var localAddress = AppSettings.Default.JellyfinServerLocalAddress; + var serverName = AppSettings.Default.JellyfinServerName; if (string.IsNullOrEmpty(accessToken) || string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(serverUrl)) { @@ -99,19 +112,21 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches return; } - // If server ID is not stored, try to fetch it now - if (string.IsNullOrEmpty(serverId)) + // If server ID or server name is not stored, try to fetch it now + if (string.IsNullOrEmpty(serverId) || string.IsNullOrEmpty(serverName)) { - Trace.WriteLine("[InjectAutoLogin] Server ID not cached, fetching from server..."); + Trace.WriteLine("[InjectAutoLogin] Server ID/Name not cached, fetching from server..."); var serverInfo = await _apiClient.GetPublicSystemInfoAsync(serverUrl); if (serverInfo != null && !string.IsNullOrEmpty(serverInfo.Id)) { serverId = serverInfo.Id; localAddress = serverInfo.LocalAddress ?? ""; + serverName = serverInfo.ServerName ?? ""; AppSettings.Default.JellyfinServerId = serverId; AppSettings.Default.JellyfinServerLocalAddress = localAddress; + AppSettings.Default.JellyfinServerName = serverName; AppSettings.Default.Save(); - Trace.WriteLine($"[InjectAutoLogin] Fetched and stored server ID: {serverId}"); + Trace.WriteLine($"[InjectAutoLogin] Fetched and stored server ID: {serverId}, Name: {serverName}"); } else { @@ -138,6 +153,7 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches credentialsScript.AppendLine($" var serverUrl = '{HtmlUtils.EscapeJsString(serverUrl)}';"); credentialsScript.AppendLine($" var serverId = '{HtmlUtils.EscapeJsString(serverId)}';"); credentialsScript.AppendLine($" var localAddress = '{HtmlUtils.EscapeJsString(localAddress)}';"); + credentialsScript.AppendLine($" var serverName = '{HtmlUtils.EscapeJsString(serverName)}';"); credentialsScript.AppendLine($" var userId = '{HtmlUtils.EscapeJsString(userId)}';"); credentialsScript.AppendLine($" var accessToken = '{HtmlUtils.EscapeJsString(accessToken)}';"); credentialsScript.AppendLine(); @@ -145,6 +161,7 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches credentialsScript.AppendLine(" // Using real server ID (GUID) from /System/Info/Public"); credentialsScript.AppendLine(" var credentials = {"); credentialsScript.AppendLine(" Servers: [{"); + credentialsScript.AppendLine(" Name: serverName || serverUrl,"); credentialsScript.AppendLine(" ManualAddress: serverUrl,"); credentialsScript.AppendLine(" LocalAddress: localAddress || serverUrl,"); credentialsScript.AppendLine(" Id: serverId,"); @@ -157,7 +174,7 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches credentialsScript.AppendLine(" // Store in localStorage"); credentialsScript.AppendLine(" localStorage.setItem('jellyfin_credentials', JSON.stringify(credentials));"); credentialsScript.AppendLine(); - credentialsScript.AppendLine(" console.log('[Auto-Login] Credentials injected for server: ' + serverUrl + ' with ID: ' + serverId);"); + credentialsScript.AppendLine(" console.log('[Auto-Login] Credentials injected for server: ' + serverName + ' (' + serverUrl + ') with ID: ' + serverId);"); credentialsScript.AppendLine(" } catch(e) {"); credentialsScript.AppendLine(" console.error('[Auto-Login] Failed to inject credentials:', e);"); credentialsScript.AppendLine(" }"); diff --git a/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs b/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs index 28caaed..543dc3d 100644 --- a/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs +++ b/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs @@ -137,6 +137,9 @@ namespace Jellyfin2Samsung.ViewModels [ObservableProperty] private bool canOpenDebugWindow; + [ObservableProperty] + private bool showMdnsWarning = false; + [ObservableProperty] private string selectedServerInputMode = "IP : Port"; @@ -297,6 +300,7 @@ namespace Jellyfin2Samsung.ViewModels public string LblValidateCss => _localizationService.GetString("lblValidateCss"); public string LblCssValidationStatus => _localizationService.GetString("lblCssValidationStatus"); public string LblClearCss => _localizationService.GetString("lblClearCss"); + public string LblMdnsWarning => _localizationService.GetString("lblMdnsWarning"); // Main Settings Tab labels @@ -430,6 +434,7 @@ namespace Jellyfin2Samsung.ViewModels OnPropertyChanged(nameof(LblCssHint)); OnPropertyChanged(nameof(LblValidateCss)); OnPropertyChanged(nameof(LblCssValidationStatus)); + OnPropertyChanged(nameof(LblMdnsWarning)); // Main Settings Tab labels OnPropertyChanged(nameof(LblTabMainSettings)); OnPropertyChanged(nameof(LblMainSettings)); @@ -534,6 +539,8 @@ namespace Jellyfin2Samsung.ViewModels OnPropertyChanged(nameof(JellyfinBasePath)); AppSettings.Default.Save(); + CheckForMdnsHostname(uri.Host); + // Auto-validate the server connection _ = AutoValidateServerAsync(); } @@ -680,6 +687,7 @@ namespace Jellyfin2Samsung.ViewModels AppSettings.Default.JellyfinUserId = ""; AppSettings.Default.JellyfinServerId = ""; AppSettings.Default.JellyfinServerLocalAddress = ""; + AppSettings.Default.JellyfinServerName = ""; AppSettings.Default.IsJellyfinAdmin = false; AppSettings.Default.Save(); @@ -753,6 +761,12 @@ namespace Jellyfin2Samsung.ViewModels Trace.WriteLine($"[ServerID] Stored server LocalAddress: {serverInfo.LocalAddress}"); } + if (!string.IsNullOrEmpty(serverInfo.ServerName)) + { + AppSettings.Default.JellyfinServerName = serverInfo.ServerName; + Trace.WriteLine($"[ServerID] Stored server name: {serverInfo.ServerName}"); + } + AppSettings.Default.Save(); } } @@ -1203,6 +1217,7 @@ namespace Jellyfin2Samsung.ViewModels SelectedJellyfinProtocol = uri.Scheme; JellyfinServerIp = uri.Host; SelectedJellyfinPort = uri.Port.ToString(); + CheckForMdnsHostname(uri.Host); } else { @@ -1291,9 +1306,21 @@ namespace Jellyfin2Samsung.ViewModels Trace.WriteLine($"Updated Jellyfin IP: {AppSettings.Default.JellyfinIP}"); AppSettings.Default.Save(); UpdateServerIpStatus(); + CheckForMdnsHostname(JellyfinServerIp); } } + /// + /// Checks if the given hostname is an mDNS (.local) address and shows a warning. + /// Samsung TVs (Tizen) cannot reliably resolve mDNS hostnames, which causes + /// the server to appear as "undefined" on the TV after network disruptions. + /// + private void CheckForMdnsHostname(string? hostname) + { + ShowMdnsWarning = !string.IsNullOrEmpty(hostname) && + hostname.EndsWith(".local", StringComparison.OrdinalIgnoreCase); + } + private void UpdateServerIpStatus() { ServerIpSet = !string.IsNullOrEmpty(AppSettings.Default.JellyfinIP) || diff --git a/Jellyfin2Samsung-CrossOS/Views/JellyfinConfigView.axaml b/Jellyfin2Samsung-CrossOS/Views/JellyfinConfigView.axaml index 3e0fccd..c33c4b9 100644 --- a/Jellyfin2Samsung-CrossOS/Views/JellyfinConfigView.axaml +++ b/Jellyfin2Samsung-CrossOS/Views/JellyfinConfigView.axaml @@ -408,6 +408,18 @@ + + + + + diff --git a/README.md b/README.md index 08f8fce..a4703c7 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,8 @@ | Channel | Version | Notes | |------------|---------------------------------------------------------------------|------------------------------| -| **Stable** | [v2.2.0.6](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.6) | Recommended for most users | -| **Beta** | [v2.2.0.7-beta](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.7-beta) | Includes new features | +| **Stable** | [v2.2.0.7](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.7) | Recommended for most users | +| **Beta** | [v2.2.0.8-beta](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.2.0.8-beta) | Includes new features |