v2.2.08 QOL (#329)

# Pull Request Template

## Branch
- [x] I branched off beta (not master) to develop this feature/fix

## Description

Fixes issues where the user used a .local address, Samsung TV can't
resolve those, resulting in "Undefined".
Added a additional warning for users who have their TV in Right-to-Left
reading, Samsung TVs revert the order of the IP.

Fixes
 #319 
 #327 

---

## Type of Change

- [x] Bug fix (non-breaking change)
- [x] New feature (non-breaking change)
- [x] Documentation update

---

## Checklist

- [x] My code follows the existing project structure and style  
- [x] I have tested my changes manually  
- [x] I have added necessary documentation (if applicable)  
- [x] I have verified that the installer still works with the underlying
CLI

---

## Additional Notes

Just a QOL improvement
This commit is contained in:
Patrick
2026-04-23 10:58:39 +02:00
committed by GitHub
34 changed files with 168 additions and 36 deletions

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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."
}

View File

@@ -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";

View File

@@ -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());

View File

@@ -76,6 +76,18 @@ namespace Jellyfin2Samsung.Helpers.Jellyfin.Patches
if (!servers.Any(s => s?.GetValue<string>() == 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<string>() == 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(" }");

View File

@@ -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);
}
}
/// <summary>
/// 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.
/// </summary>
private void CheckForMdnsHostname(string? hostname)
{
ShowMdnsWarning = !string.IsNullOrEmpty(hostname) &&
hostname.EndsWith(".local", StringComparison.OrdinalIgnoreCase);
}
private void UpdateServerIpStatus()
{
ServerIpSet = !string.IsNullOrEmpty(AppSettings.Default.JellyfinIP) ||

View File

@@ -408,6 +408,18 @@
</StackPanel>
</Grid>
<!-- mDNS (.local) Warning -->
<Border IsVisible="{Binding ShowMdnsWarning}"
Background="#FFF3CD"
CornerRadius="4"
Padding="10,8"
Margin="0,4,0,0">
<TextBlock Text="{Binding LblMdnsWarning}"
Foreground="#856404"
FontSize="12"
TextWrapping="Wrap"/>
</Border>
</StackPanel>
<Border Height="1" Background="{DynamicResource SystemControlForegroundBaseMediumLowBrush}" Margin="0,4"/>

View File

@@ -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 |
<!-- versions:end -->