feat: auto-hide performance overlay with controls

close #834
This commit is contained in:
edde746
2026-04-10 01:30:26 +02:00
parent c20bb93f1f
commit f47bcb69fd
35 changed files with 171 additions and 33 deletions
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åbnes",
"confirmExitOnBack": "Bekræft før lukning",
"confirmExitOnBackDescription": "Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen",
"autoHidePerformanceOverlay": "Skjul ydelses-overlay automatisk",
"autoHidePerformanceOverlayDescription": "Fade ydelses-overlayet med afspilningskontrollerne",
"showNavBarLabels": "Vis navigationsbarlabels",
"showNavBarLabelsDescription": "Vis tekstlabels under navigationsbarikoner",
"liveTvDefaultFavorites": "Standard til favoritkanaler",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Profilauswahl bei jedem Öffnen der App anzeigen",
"confirmExitOnBack": "Vor dem Beenden bestätigen",
"confirmExitOnBackDescription": "Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird",
"autoHidePerformanceOverlay": "Leistungsoverlay automatisch ausblenden",
"autoHidePerformanceOverlayDescription": "Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden",
"showNavBarLabels": "Navigationsleisten-Beschriftungen anzeigen",
"showNavBarLabelsDescription": "Textbeschriftungen unter den Symbolen der Navigationsleiste anzeigen",
"liveTvDefaultFavorites": "Standardmäßig Favoritenkanäle",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Show profile selection every time the app is opened",
"confirmExitOnBack": "Confirm before exiting",
"confirmExitOnBackDescription": "Show a confirmation dialog when pressing back to exit the app",
"autoHidePerformanceOverlay": "Auto-Hide Performance Overlay",
"autoHidePerformanceOverlayDescription": "Fade the performance overlay with the playback controls",
"showNavBarLabels": "Show Navigation Bar Labels",
"showNavBarLabelsDescription": "Display text labels under navigation bar icons",
"liveTvDefaultFavorites": "Default to Favorite Channels",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Mostrar selección de perfil cada vez que se abre la aplicación",
"confirmExitOnBack": "Confirmar antes de salir",
"confirmExitOnBackDescription": "Mostrar un diálogo de confirmación al presionar atrás para salir de la app",
"autoHidePerformanceOverlay": "Ocultar superposición de rendimiento automáticamente",
"autoHidePerformanceOverlayDescription": "Desvanecer la superposición de rendimiento con los controles de reproducción",
"showNavBarLabels": "Mostrar etiquetas de la barra de navegación",
"showNavBarLabelsDescription": "Mostrar etiquetas de texto bajo los iconos de la barra de navegación",
"liveTvDefaultFavorites": "Canales favoritos por defecto",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Afficher la sélection de profil à chaque ouverture de l'application",
"confirmExitOnBack": "Confirmer avant de quitter",
"confirmExitOnBackDescription": "Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter",
"autoHidePerformanceOverlay": "Masquer auto. superposition performances",
"autoHidePerformanceOverlayDescription": "Faire apparaître/disparaître la superposition avec les contrôles de lecture",
"showNavBarLabels": "Afficher les libellés de la barre de navigation",
"showNavBarLabelsDescription": "Afficher les libellés sous les icônes de la barre de navigation",
"liveTvDefaultFavorites": "Chaînes favorites par défaut",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Mostra la selezione del profilo ogni volta che l'app viene aperta",
"confirmExitOnBack": "Conferma prima di uscire",
"confirmExitOnBackDescription": "Mostra una finestra di conferma quando si preme indietro per uscire dall'app",
"autoHidePerformanceOverlay": "Nascondi automaticamente overlay prestazioni",
"autoHidePerformanceOverlayDescription": "Dissolvi l'overlay prestazioni con i controlli di riproduzione",
"showNavBarLabels": "Mostra etichette barra di navigazione",
"showNavBarLabelsDescription": "Mostra le etichette sotto le icone della barra di navigazione",
"liveTvDefaultFavorites": "Canali preferiti predefiniti",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "アプリを開くたびにプロフィール選択を表示",
"confirmExitOnBack": "終了前に確認",
"confirmExitOnBackDescription": "戻るボタンでアプリを終了する際に確認ダイアログを表示",
"autoHidePerformanceOverlay": "パフォーマンスオーバーレイを自動非表示",
"autoHidePerformanceOverlayDescription": "再生コントロールと一緒にパフォーマンスオーバーレイをフェードする",
"showNavBarLabels": "ナビゲーションバーラベルを表示",
"showNavBarLabelsDescription": "ナビゲーションバーアイコンの下にテキストラベルを表示",
"liveTvDefaultFavorites": "お気に入りチャンネルをデフォルトに",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "앱을 열 때마다 프로필 선택 화면을 표시합니다",
"confirmExitOnBack": "종료 전 확인",
"confirmExitOnBackDescription": "뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다",
"autoHidePerformanceOverlay": "성능 오버레이 자동 숨기기",
"autoHidePerformanceOverlayDescription": "재생 컨트롤과 함께 성능 오버레이를 페이드 처리",
"showNavBarLabels": "내비게이션 바 라벨 표시",
"showNavBarLabelsDescription": "내비게이션 바 아이콘 아래에 텍스트 라벨을 표시합니다",
"liveTvDefaultFavorites": "즐겨찾기 채널 기본 설정",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Vis profilvalg hver gang appen åpnes",
"confirmExitOnBack": "Bekreft før avslutning",
"confirmExitOnBackDescription": "Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen",
"autoHidePerformanceOverlay": "Skjul ytelsesoverlegg automatisk",
"autoHidePerformanceOverlayDescription": "Fade ytelsesoverlegget med avspillingskontrollene",
"showNavBarLabels": "Vis navigasjonsfeltlabeler",
"showNavBarLabelsDescription": "Vis tekstlabeler under navigasjonsfeltikoner",
"liveTvDefaultFavorites": "Standard til favorittkanaler",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Toon profielselectie telkens wanneer de app wordt geopend",
"confirmExitOnBack": "Bevestigen voor afsluiten",
"confirmExitOnBackDescription": "Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten",
"autoHidePerformanceOverlay": "Prestatie-overlay automatisch verbergen",
"autoHidePerformanceOverlayDescription": "Laat de prestatie-overlay meevervagen met de afspeelknoppen",
"showNavBarLabels": "Navigatiebalk labels tonen",
"showNavBarLabelsDescription": "Tekstlabels onder de pictogrammen van de navigatiebalk weergeven",
"liveTvDefaultFavorites": "Standaard favoriete zenders",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana",
"confirmExitOnBack": "Potwierdź przed wyjściem",
"confirmExitOnBackDescription": "Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji",
"autoHidePerformanceOverlay": "Automatycznie ukrywaj nakładkę wydajności",
"autoHidePerformanceOverlayDescription": "Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania",
"showNavBarLabels": "Pokaż etykiety paska nawigacji",
"showNavBarLabelsDescription": "Wyświetl tekstowe etykiety pod ikonami paska nawigacji",
"liveTvDefaultFavorites": "Domyślnie ulubione kanały",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Mostrar seleção de perfil toda vez que o app for aberto",
"confirmExitOnBack": "Confirmar antes de sair",
"confirmExitOnBackDescription": "Mostrar diálogo de confirmação ao pressionar voltar para sair do app",
"autoHidePerformanceOverlay": "Ocultar overlay de desempenho automaticamente",
"autoHidePerformanceOverlayDescription": "Desvanecer o overlay de desempenho com os controles de reprodução",
"showNavBarLabels": "Mostrar Rótulos da Barra de Navegação",
"showNavBarLabelsDescription": "Exibir rótulos de texto sob os ícones da barra de navegação",
"liveTvDefaultFavorites": "Canais favoritos por padrão",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Показывать выбор профиля при каждом открытии приложения",
"confirmExitOnBack": "Подтверждать выход",
"confirmExitOnBackDescription": "Показывать диалог подтверждения при нажатии «назад» для выхода из приложения",
"autoHidePerformanceOverlay": "Автоскрытие оверлея производительности",
"autoHidePerformanceOverlayDescription": "Скрывать оверлей производительности вместе с элементами управления воспроизведением",
"showNavBarLabels": "Показывать подписи панели навигации",
"showNavBarLabelsDescription": "Отображать текстовые подписи под иконками панели навигации",
"liveTvDefaultFavorites": "Избранные каналы по умолчанию",
+2 -2
View File
@@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 15
/// Strings: 12855 (857 per locale)
/// Strings: 12885 (859 per locale)
///
/// Built on 2026-04-08 at 17:29 UTC
/// Built on 2026-04-09 at 23:27 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsDa implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åbnes';
@override String get confirmExitOnBack => 'Bekræft før lukning';
@override String get confirmExitOnBackDescription => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen';
@override String get autoHidePerformanceOverlay => 'Skjul ydelses-overlay automatisk';
@override String get autoHidePerformanceOverlayDescription => 'Fade ydelses-overlayet med afspilningskontrollerne';
@override String get showNavBarLabels => 'Vis navigationsbarlabels';
@override String get showNavBarLabelsDescription => 'Vis tekstlabels under navigationsbarikoner';
@override String get liveTvDefaultFavorites => 'Standard til favoritkanaler';
@@ -1567,6 +1569,8 @@ extension on TranslationsDa {
'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åbnes',
'settings.confirmExitOnBack' => 'Bekræft før lukning',
'settings.confirmExitOnBackDescription' => 'Vis bekræftelsesdialog ved tryk på tilbage for at lukke appen',
'settings.autoHidePerformanceOverlay' => 'Skjul ydelses-overlay automatisk',
'settings.autoHidePerformanceOverlayDescription' => 'Fade ydelses-overlayet med afspilningskontrollerne',
'settings.showNavBarLabels' => 'Vis navigationsbarlabels',
'settings.showNavBarLabelsDescription' => 'Vis tekstlabels under navigationsbarikoner',
'settings.liveTvDefaultFavorites' => 'Standard til favoritkanaler',
@@ -1864,10 +1868,10 @@ extension on TranslationsDa {
'about.viewLicensesDescription' => 'Se licenser for tredjepartsbiblioteker',
'serverSelection.allServerConnectionsFailed' => 'Kunne ikke forbinde til nogen servere. Tjek dit netværk og prøv igen.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Ingen servere fundet for ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke indlæse servere: ${error}',
'hubDetail.title' => 'Titel',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke indlæse servere: ${error}',
'hubDetail.title' => 'Titel',
'hubDetail.releaseYear' => 'Udgivelsesår',
'hubDetail.dateAdded' => 'Tilføjelsesdato',
'hubDetail.rating' => 'Bedømmelse',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsDe implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Profilauswahl bei jedem Öffnen der App anzeigen';
@override String get confirmExitOnBack => 'Vor dem Beenden bestätigen';
@override String get confirmExitOnBackDescription => 'Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird';
@override String get autoHidePerformanceOverlay => 'Leistungsoverlay automatisch ausblenden';
@override String get autoHidePerformanceOverlayDescription => 'Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden';
@override String get showNavBarLabels => 'Navigationsleisten-Beschriftungen anzeigen';
@override String get showNavBarLabelsDescription => 'Textbeschriftungen unter den Symbolen der Navigationsleiste anzeigen';
@override String get liveTvDefaultFavorites => 'Standardmäßig Favoritenkanäle';
@@ -1567,6 +1569,8 @@ extension on TranslationsDe {
'settings.requireProfileSelectionOnOpenDescription' => 'Profilauswahl bei jedem Öffnen der App anzeigen',
'settings.confirmExitOnBack' => 'Vor dem Beenden bestätigen',
'settings.confirmExitOnBackDescription' => 'Bestätigungsdialog anzeigen, wenn Zurück zum Beenden der App gedrückt wird',
'settings.autoHidePerformanceOverlay' => 'Leistungsoverlay automatisch ausblenden',
'settings.autoHidePerformanceOverlayDescription' => 'Leistungsoverlay mit den Wiedergabesteuerungen ein-/ausblenden',
'settings.showNavBarLabels' => 'Navigationsleisten-Beschriftungen anzeigen',
'settings.showNavBarLabelsDescription' => 'Textbeschriftungen unter den Symbolen der Navigationsleiste anzeigen',
'settings.liveTvDefaultFavorites' => 'Standardmäßig Favoritenkanäle',
@@ -1864,10 +1868,10 @@ extension on TranslationsDe {
'about.viewLicensesDescription' => 'Lizenzen von Drittanbieter-Bibliotheken anzeigen',
'serverSelection.allServerConnectionsFailed' => 'Verbindung zu allen Servern fehlgeschlagen. Bitte Netzwerk prüfen und erneut versuchen.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Keine Server gefunden für ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Server konnten nicht geladen werden: ${error}',
'hubDetail.title' => 'Titel',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Server konnten nicht geladen werden: ${error}',
'hubDetail.title' => 'Titel',
'hubDetail.releaseYear' => 'Erscheinungsjahr',
'hubDetail.dateAdded' => 'Hinzugefügt am',
'hubDetail.rating' => 'Bewertung',
+10 -2
View File
@@ -772,6 +772,12 @@ class TranslationsSettingsEn {
/// en: 'Show a confirmation dialog when pressing back to exit the app'
String get confirmExitOnBackDescription => 'Show a confirmation dialog when pressing back to exit the app';
/// en: 'Auto-Hide Performance Overlay'
String get autoHidePerformanceOverlay => 'Auto-Hide Performance Overlay';
/// en: 'Fade the performance overlay with the playback controls'
String get autoHidePerformanceOverlayDescription => 'Fade the performance overlay with the playback controls';
/// en: 'Show Navigation Bar Labels'
String get showNavBarLabels => 'Show Navigation Bar Labels';
@@ -3288,6 +3294,8 @@ extension on Translations {
'settings.requireProfileSelectionOnOpenDescription' => 'Show profile selection every time the app is opened',
'settings.confirmExitOnBack' => 'Confirm before exiting',
'settings.confirmExitOnBackDescription' => 'Show a confirmation dialog when pressing back to exit the app',
'settings.autoHidePerformanceOverlay' => 'Auto-Hide Performance Overlay',
'settings.autoHidePerformanceOverlayDescription' => 'Fade the performance overlay with the playback controls',
'settings.showNavBarLabels' => 'Show Navigation Bar Labels',
'settings.showNavBarLabelsDescription' => 'Display text labels under navigation bar icons',
'settings.liveTvDefaultFavorites' => 'Default to Favorite Channels',
@@ -3585,10 +3593,10 @@ extension on Translations {
'about.viewLicensesDescription' => 'View licenses of third-party libraries',
'serverSelection.allServerConnectionsFailed' => 'Failed to connect to any servers. Please check your network and try again.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'No servers found for ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Failed to load servers: ${error}',
'hubDetail.title' => 'Title',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Failed to load servers: ${error}',
'hubDetail.title' => 'Title',
'hubDetail.releaseYear' => 'Release Year',
'hubDetail.dateAdded' => 'Date Added',
'hubDetail.rating' => 'Rating',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsEs implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Mostrar selección de perfil cada vez que se abre la aplicación';
@override String get confirmExitOnBack => 'Confirmar antes de salir';
@override String get confirmExitOnBackDescription => 'Mostrar un diálogo de confirmación al presionar atrás para salir de la app';
@override String get autoHidePerformanceOverlay => 'Ocultar superposición de rendimiento automáticamente';
@override String get autoHidePerformanceOverlayDescription => 'Desvanecer la superposición de rendimiento con los controles de reproducción';
@override String get showNavBarLabels => 'Mostrar etiquetas de la barra de navegación';
@override String get showNavBarLabelsDescription => 'Mostrar etiquetas de texto bajo los iconos de la barra de navegación';
@override String get liveTvDefaultFavorites => 'Canales favoritos por defecto';
@@ -1567,6 +1569,8 @@ extension on TranslationsEs {
'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar selección de perfil cada vez que se abre la aplicación',
'settings.confirmExitOnBack' => 'Confirmar antes de salir',
'settings.confirmExitOnBackDescription' => 'Mostrar un diálogo de confirmación al presionar atrás para salir de la app',
'settings.autoHidePerformanceOverlay' => 'Ocultar superposición de rendimiento automáticamente',
'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer la superposición de rendimiento con los controles de reproducción',
'settings.showNavBarLabels' => 'Mostrar etiquetas de la barra de navegación',
'settings.showNavBarLabelsDescription' => 'Mostrar etiquetas de texto bajo los iconos de la barra de navegación',
'settings.liveTvDefaultFavorites' => 'Canales favoritos por defecto',
@@ -1864,10 +1868,10 @@ extension on TranslationsEs {
'about.viewLicensesDescription' => 'Ver licencias de librerías de terceros',
'serverSelection.allServerConnectionsFailed' => 'No se pudo conectar con ningún servidor. Por favor, comprueba tu conexión e inténtalo de nuevo.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'No se encontraron servidores para ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Error al cargar servidores: ${error}',
'hubDetail.title' => 'Título',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Error al cargar servidores: ${error}',
'hubDetail.title' => 'Título',
'hubDetail.releaseYear' => 'Año de lanzamiento',
'hubDetail.dateAdded' => 'Añadido el',
'hubDetail.rating' => 'Calificación',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsFr implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Afficher la sélection de profil à chaque ouverture de l\'application';
@override String get confirmExitOnBack => 'Confirmer avant de quitter';
@override String get confirmExitOnBackDescription => 'Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter';
@override String get autoHidePerformanceOverlay => 'Masquer auto. superposition performances';
@override String get autoHidePerformanceOverlayDescription => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture';
@override String get showNavBarLabels => 'Afficher les libellés de la barre de navigation';
@override String get showNavBarLabelsDescription => 'Afficher les libellés sous les icônes de la barre de navigation';
@override String get liveTvDefaultFavorites => 'Chaînes favorites par défaut';
@@ -1567,6 +1569,8 @@ extension on TranslationsFr {
'settings.requireProfileSelectionOnOpenDescription' => 'Afficher la sélection de profil à chaque ouverture de l\'application',
'settings.confirmExitOnBack' => 'Confirmer avant de quitter',
'settings.confirmExitOnBackDescription' => 'Afficher une boîte de dialogue de confirmation en appuyant sur retour pour quitter',
'settings.autoHidePerformanceOverlay' => 'Masquer auto. superposition performances',
'settings.autoHidePerformanceOverlayDescription' => 'Faire apparaître/disparaître la superposition avec les contrôles de lecture',
'settings.showNavBarLabels' => 'Afficher les libellés de la barre de navigation',
'settings.showNavBarLabelsDescription' => 'Afficher les libellés sous les icônes de la barre de navigation',
'settings.liveTvDefaultFavorites' => 'Chaînes favorites par défaut',
@@ -1864,10 +1868,10 @@ extension on TranslationsFr {
'about.viewLicensesDescription' => 'Afficher les licences des bibliothèques tierces',
'serverSelection.allServerConnectionsFailed' => 'Impossible de se connecter à un serveur. Veuillez vérifier votre connexion réseau et réessayer.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Aucun serveur trouvé pour ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Échec du chargement des serveurs: ${error}',
'hubDetail.title' => 'Titre',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Échec du chargement des serveurs: ${error}',
'hubDetail.title' => 'Titre',
'hubDetail.releaseYear' => 'Année de sortie',
'hubDetail.dateAdded' => 'Date d\'ajout',
'hubDetail.rating' => 'Évaluation',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsIt implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta';
@override String get confirmExitOnBack => 'Conferma prima di uscire';
@override String get confirmExitOnBackDescription => 'Mostra una finestra di conferma quando si preme indietro per uscire dall\'app';
@override String get autoHidePerformanceOverlay => 'Nascondi automaticamente overlay prestazioni';
@override String get autoHidePerformanceOverlayDescription => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione';
@override String get showNavBarLabels => 'Mostra etichette barra di navigazione';
@override String get showNavBarLabelsDescription => 'Mostra le etichette sotto le icone della barra di navigazione';
@override String get liveTvDefaultFavorites => 'Canali preferiti predefiniti';
@@ -1567,6 +1569,8 @@ extension on TranslationsIt {
'settings.requireProfileSelectionOnOpenDescription' => 'Mostra la selezione del profilo ogni volta che l\'app viene aperta',
'settings.confirmExitOnBack' => 'Conferma prima di uscire',
'settings.confirmExitOnBackDescription' => 'Mostra una finestra di conferma quando si preme indietro per uscire dall\'app',
'settings.autoHidePerformanceOverlay' => 'Nascondi automaticamente overlay prestazioni',
'settings.autoHidePerformanceOverlayDescription' => 'Dissolvi l\'overlay prestazioni con i controlli di riproduzione',
'settings.showNavBarLabels' => 'Mostra etichette barra di navigazione',
'settings.showNavBarLabelsDescription' => 'Mostra le etichette sotto le icone della barra di navigazione',
'settings.liveTvDefaultFavorites' => 'Canali preferiti predefiniti',
@@ -1864,10 +1868,10 @@ extension on TranslationsIt {
'about.viewLicensesDescription' => 'Visualizza le licenze delle librerie di terze parti',
'serverSelection.allServerConnectionsFailed' => 'Impossibile connettersi a nessun server. Controlla la tua rete e riprova.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nessun server trovato per ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Impossibile caricare i server: ${error}',
'hubDetail.title' => 'Titolo',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Impossibile caricare i server: ${error}',
'hubDetail.title' => 'Titolo',
'hubDetail.releaseYear' => 'Anno rilascio',
'hubDetail.dateAdded' => 'Data aggiunta',
'hubDetail.rating' => 'Valutazione',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsJa implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'アプリを開くたびにプロフィール選択を表示';
@override String get confirmExitOnBack => '終了前に確認';
@override String get confirmExitOnBackDescription => '戻るボタンでアプリを終了する際に確認ダイアログを表示';
@override String get autoHidePerformanceOverlay => 'パフォーマンスオーバーレイを自動非表示';
@override String get autoHidePerformanceOverlayDescription => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする';
@override String get showNavBarLabels => 'ナビゲーションバーラベルを表示';
@override String get showNavBarLabelsDescription => 'ナビゲーションバーアイコンの下にテキストラベルを表示';
@override String get liveTvDefaultFavorites => 'お気に入りチャンネルをデフォルトに';
@@ -1567,6 +1569,8 @@ extension on TranslationsJa {
'settings.requireProfileSelectionOnOpenDescription' => 'アプリを開くたびにプロフィール選択を表示',
'settings.confirmExitOnBack' => '終了前に確認',
'settings.confirmExitOnBackDescription' => '戻るボタンでアプリを終了する際に確認ダイアログを表示',
'settings.autoHidePerformanceOverlay' => 'パフォーマンスオーバーレイを自動非表示',
'settings.autoHidePerformanceOverlayDescription' => '再生コントロールと一緒にパフォーマンスオーバーレイをフェードする',
'settings.showNavBarLabels' => 'ナビゲーションバーラベルを表示',
'settings.showNavBarLabelsDescription' => 'ナビゲーションバーアイコンの下にテキストラベルを表示',
'settings.liveTvDefaultFavorites' => 'お気に入りチャンネルをデフォルトに',
@@ -1864,10 +1868,10 @@ extension on TranslationsJa {
'about.viewLicensesDescription' => 'サードパーティライブラリのライセンスを表示',
'serverSelection.allServerConnectionsFailed' => 'どのサーバーにも接続できませんでした。ネットワークを確認してもう一度お試しください。',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '${username} (${email})のサーバーが見つかりません',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'サーバーの読み込みに失敗しました: ${error}',
'hubDetail.title' => 'タイトル',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'サーバーの読み込みに失敗しました: ${error}',
'hubDetail.title' => 'タイトル',
'hubDetail.releaseYear' => '公開年',
'hubDetail.dateAdded' => '追加日',
'hubDetail.rating' => '評価',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsKo implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => '앱을 열 때마다 프로필 선택 화면을 표시합니다';
@override String get confirmExitOnBack => '종료 전 확인';
@override String get confirmExitOnBackDescription => '뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다';
@override String get autoHidePerformanceOverlay => '성능 오버레이 자동 숨기기';
@override String get autoHidePerformanceOverlayDescription => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리';
@override String get showNavBarLabels => '내비게이션 바 라벨 표시';
@override String get showNavBarLabelsDescription => '내비게이션 바 아이콘 아래에 텍스트 라벨을 표시합니다';
@override String get liveTvDefaultFavorites => '즐겨찾기 채널 기본 설정';
@@ -1567,6 +1569,8 @@ extension on TranslationsKo {
'settings.requireProfileSelectionOnOpenDescription' => '앱을 열 때마다 프로필 선택 화면을 표시합니다',
'settings.confirmExitOnBack' => '종료 전 확인',
'settings.confirmExitOnBackDescription' => '뒤로 버튼을 눌러 앱을 종료할 때 확인 대화상자를 표시합니다',
'settings.autoHidePerformanceOverlay' => '성능 오버레이 자동 숨기기',
'settings.autoHidePerformanceOverlayDescription' => '재생 컨트롤과 함께 성능 오버레이를 페이드 처리',
'settings.showNavBarLabels' => '내비게이션 바 라벨 표시',
'settings.showNavBarLabelsDescription' => '내비게이션 바 아이콘 아래에 텍스트 라벨을 표시합니다',
'settings.liveTvDefaultFavorites' => '즐겨찾기 채널 기본 설정',
@@ -1864,10 +1868,10 @@ extension on TranslationsKo {
'about.viewLicensesDescription' => '타사 라이브러리 라이선스 보기',
'serverSelection.allServerConnectionsFailed' => '어떤 서버에도 연결할 수 없습니다. 네트워크를 확인하고 다시 시도하세요.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '${username} (${email})의 서버를 찾을 수 없습니다.',
'serverSelection.failedToLoadServers' => ({required Object error}) => '서버를 로드할 수 없습니다: ${error}',
'hubDetail.title' => '제목',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => '서버를 로드할 수 없습니다: ${error}',
'hubDetail.title' => '제목',
'hubDetail.releaseYear' => '출시 연도',
'hubDetail.dateAdded' => '추가 날짜',
'hubDetail.rating' => '평점',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsNb implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Vis profilvalg hver gang appen åpnes';
@override String get confirmExitOnBack => 'Bekreft før avslutning';
@override String get confirmExitOnBackDescription => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen';
@override String get autoHidePerformanceOverlay => 'Skjul ytelsesoverlegg automatisk';
@override String get autoHidePerformanceOverlayDescription => 'Fade ytelsesoverlegget med avspillingskontrollene';
@override String get showNavBarLabels => 'Vis navigasjonsfeltlabeler';
@override String get showNavBarLabelsDescription => 'Vis tekstlabeler under navigasjonsfeltikoner';
@override String get liveTvDefaultFavorites => 'Standard til favorittkanaler';
@@ -1567,6 +1569,8 @@ extension on TranslationsNb {
'settings.requireProfileSelectionOnOpenDescription' => 'Vis profilvalg hver gang appen åpnes',
'settings.confirmExitOnBack' => 'Bekreft før avslutning',
'settings.confirmExitOnBackDescription' => 'Vis en bekreftelsesdialog når du trykker tilbake for å avslutte appen',
'settings.autoHidePerformanceOverlay' => 'Skjul ytelsesoverlegg automatisk',
'settings.autoHidePerformanceOverlayDescription' => 'Fade ytelsesoverlegget med avspillingskontrollene',
'settings.showNavBarLabels' => 'Vis navigasjonsfeltlabeler',
'settings.showNavBarLabelsDescription' => 'Vis tekstlabeler under navigasjonsfeltikoner',
'settings.liveTvDefaultFavorites' => 'Standard til favorittkanaler',
@@ -1864,10 +1868,10 @@ extension on TranslationsNb {
'about.viewLicensesDescription' => 'Vis lisenser for tredjepartsbiblioteker',
'serverSelection.allServerConnectionsFailed' => 'Kunne ikke koble til noen servere. Sjekk nettverket ditt og prøv igjen.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Ingen servere funnet for ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke laste servere: ${error}',
'hubDetail.title' => 'Tittel',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kunne ikke laste servere: ${error}',
'hubDetail.title' => 'Tittel',
'hubDetail.releaseYear' => 'Utgivelsesår',
'hubDetail.dateAdded' => 'Dato lagt til',
'hubDetail.rating' => 'Vurdering',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsNl implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Toon profielselectie telkens wanneer de app wordt geopend';
@override String get confirmExitOnBack => 'Bevestigen voor afsluiten';
@override String get confirmExitOnBackDescription => 'Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten';
@override String get autoHidePerformanceOverlay => 'Prestatie-overlay automatisch verbergen';
@override String get autoHidePerformanceOverlayDescription => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen';
@override String get showNavBarLabels => 'Navigatiebalk labels tonen';
@override String get showNavBarLabelsDescription => 'Tekstlabels onder de pictogrammen van de navigatiebalk weergeven';
@override String get liveTvDefaultFavorites => 'Standaard favoriete zenders';
@@ -1567,6 +1569,8 @@ extension on TranslationsNl {
'settings.requireProfileSelectionOnOpenDescription' => 'Toon profielselectie telkens wanneer de app wordt geopend',
'settings.confirmExitOnBack' => 'Bevestigen voor afsluiten',
'settings.confirmExitOnBackDescription' => 'Toon een bevestigingsvenster bij het drukken op terug om de app af te sluiten',
'settings.autoHidePerformanceOverlay' => 'Prestatie-overlay automatisch verbergen',
'settings.autoHidePerformanceOverlayDescription' => 'Laat de prestatie-overlay meevervagen met de afspeelknoppen',
'settings.showNavBarLabels' => 'Navigatiebalk labels tonen',
'settings.showNavBarLabelsDescription' => 'Tekstlabels onder de pictogrammen van de navigatiebalk weergeven',
'settings.liveTvDefaultFavorites' => 'Standaard favoriete zenders',
@@ -1864,10 +1868,10 @@ extension on TranslationsNl {
'about.viewLicensesDescription' => 'Bekijk licenties van third-party bibliotheken',
'serverSelection.allServerConnectionsFailed' => 'Kon niet verbinden met servers. Controleer je netwerk en probeer opnieuw.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Geen servers gevonden voor ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kon servers niet laden: ${error}',
'hubDetail.title' => 'Titel',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Kon servers niet laden: ${error}',
'hubDetail.title' => 'Titel',
'hubDetail.releaseYear' => 'Uitgavejaar',
'hubDetail.dateAdded' => 'Datum toegevoegd',
'hubDetail.rating' => 'Beoordeling',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsPl implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana';
@override String get confirmExitOnBack => 'Potwierdź przed wyjściem';
@override String get confirmExitOnBackDescription => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji';
@override String get autoHidePerformanceOverlay => 'Automatycznie ukrywaj nakładkę wydajności';
@override String get autoHidePerformanceOverlayDescription => 'Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania';
@override String get showNavBarLabels => 'Pokaż etykiety paska nawigacji';
@override String get showNavBarLabelsDescription => 'Wyświetl tekstowe etykiety pod ikonami paska nawigacji';
@override String get liveTvDefaultFavorites => 'Domyślnie ulubione kanały';
@@ -1567,6 +1569,8 @@ extension on TranslationsPl {
'settings.requireProfileSelectionOnOpenDescription' => 'Pokaż wybór profilu za każdym razem, gdy aplikacja jest otwierana',
'settings.confirmExitOnBack' => 'Potwierdź przed wyjściem',
'settings.confirmExitOnBackDescription' => 'Pokaż dialog potwierdzenia przy naciśnięciu wstecz, aby wyjść z aplikacji',
'settings.autoHidePerformanceOverlay' => 'Automatycznie ukrywaj nakładkę wydajności',
'settings.autoHidePerformanceOverlayDescription' => 'Wygaszaj nakładkę wydajności wraz z kontrolkami odtwarzania',
'settings.showNavBarLabels' => 'Pokaż etykiety paska nawigacji',
'settings.showNavBarLabelsDescription' => 'Wyświetl tekstowe etykiety pod ikonami paska nawigacji',
'settings.liveTvDefaultFavorites' => 'Domyślnie ulubione kanały',
@@ -1864,10 +1868,10 @@ extension on TranslationsPl {
'about.viewLicensesDescription' => 'Zobacz licencje bibliotek zewnętrznych',
'serverSelection.allServerConnectionsFailed' => 'Nie udało się połączyć z żadnym serwerem. Sprawdź sieć i spróbuj ponownie.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nie znaleziono serwerów dla ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Nie udało się załadować serwerów: ${error}',
'hubDetail.title' => 'Tytuł',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Nie udało się załadować serwerów: ${error}',
'hubDetail.title' => 'Tytuł',
'hubDetail.releaseYear' => 'Rok premiery',
'hubDetail.dateAdded' => 'Data dodania',
'hubDetail.rating' => 'Ocena',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsPt implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Mostrar seleção de perfil toda vez que o app for aberto';
@override String get confirmExitOnBack => 'Confirmar antes de sair';
@override String get confirmExitOnBackDescription => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app';
@override String get autoHidePerformanceOverlay => 'Ocultar overlay de desempenho automaticamente';
@override String get autoHidePerformanceOverlayDescription => 'Desvanecer o overlay de desempenho com os controles de reprodução';
@override String get showNavBarLabels => 'Mostrar Rótulos da Barra de Navegação';
@override String get showNavBarLabelsDescription => 'Exibir rótulos de texto sob os ícones da barra de navegação';
@override String get liveTvDefaultFavorites => 'Canais favoritos por padrão';
@@ -1567,6 +1569,8 @@ extension on TranslationsPt {
'settings.requireProfileSelectionOnOpenDescription' => 'Mostrar seleção de perfil toda vez que o app for aberto',
'settings.confirmExitOnBack' => 'Confirmar antes de sair',
'settings.confirmExitOnBackDescription' => 'Mostrar diálogo de confirmação ao pressionar voltar para sair do app',
'settings.autoHidePerformanceOverlay' => 'Ocultar overlay de desempenho automaticamente',
'settings.autoHidePerformanceOverlayDescription' => 'Desvanecer o overlay de desempenho com os controles de reprodução',
'settings.showNavBarLabels' => 'Mostrar Rótulos da Barra de Navegação',
'settings.showNavBarLabelsDescription' => 'Exibir rótulos de texto sob os ícones da barra de navegação',
'settings.liveTvDefaultFavorites' => 'Canais favoritos por padrão',
@@ -1864,10 +1868,10 @@ extension on TranslationsPt {
'about.viewLicensesDescription' => 'Ver licenças de bibliotecas de terceiros',
'serverSelection.allServerConnectionsFailed' => 'Falha ao conectar a qualquer servidor. Verifique sua rede e tente novamente.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Nenhum servidor encontrado para ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Falha ao carregar servidores: ${error}',
'hubDetail.title' => 'Título',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Falha ao carregar servidores: ${error}',
'hubDetail.title' => 'Título',
'hubDetail.releaseYear' => 'Ano de Lançamento',
'hubDetail.dateAdded' => 'Data de Adição',
'hubDetail.rating' => 'Avaliação',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsRu implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Показывать выбор профиля при каждом открытии приложения';
@override String get confirmExitOnBack => 'Подтверждать выход';
@override String get confirmExitOnBackDescription => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения';
@override String get autoHidePerformanceOverlay => 'Автоскрытие оверлея производительности';
@override String get autoHidePerformanceOverlayDescription => 'Скрывать оверлей производительности вместе с элементами управления воспроизведением';
@override String get showNavBarLabels => 'Показывать подписи панели навигации';
@override String get showNavBarLabelsDescription => 'Отображать текстовые подписи под иконками панели навигации';
@override String get liveTvDefaultFavorites => 'Избранные каналы по умолчанию';
@@ -1567,6 +1569,8 @@ extension on TranslationsRu {
'settings.requireProfileSelectionOnOpenDescription' => 'Показывать выбор профиля при каждом открытии приложения',
'settings.confirmExitOnBack' => 'Подтверждать выход',
'settings.confirmExitOnBackDescription' => 'Показывать диалог подтверждения при нажатии «назад» для выхода из приложения',
'settings.autoHidePerformanceOverlay' => 'Автоскрытие оверлея производительности',
'settings.autoHidePerformanceOverlayDescription' => 'Скрывать оверлей производительности вместе с элементами управления воспроизведением',
'settings.showNavBarLabels' => 'Показывать подписи панели навигации',
'settings.showNavBarLabelsDescription' => 'Отображать текстовые подписи под иконками панели навигации',
'settings.liveTvDefaultFavorites' => 'Избранные каналы по умолчанию',
@@ -1864,10 +1868,10 @@ extension on TranslationsRu {
'about.viewLicensesDescription' => 'Просмотр лицензий сторонних библиотек',
'serverSelection.allServerConnectionsFailed' => 'Не удалось подключиться ни к одному серверу. Проверьте сеть и попробуйте снова.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Серверы не найдены для ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Не удалось загрузить серверы: ${error}',
'hubDetail.title' => 'Название',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Не удалось загрузить серверы: ${error}',
'hubDetail.title' => 'Название',
'hubDetail.releaseYear' => 'Год выпуска',
'hubDetail.dateAdded' => 'Дата добавления',
'hubDetail.rating' => 'Рейтинг',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsSv implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => 'Visa profilval varje gång appen öppnas';
@override String get confirmExitOnBack => 'Bekräfta innan avslut';
@override String get confirmExitOnBackDescription => 'Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen';
@override String get autoHidePerformanceOverlay => 'Dölj prestandaöverlagring automatiskt';
@override String get autoHidePerformanceOverlayDescription => 'Tona prestandaöverlagringen med uppspelningskontrollerna';
@override String get showNavBarLabels => 'Visa navigeringsfältets etiketter';
@override String get showNavBarLabelsDescription => 'Visa textetiketter under navigeringsfältets ikoner';
@override String get liveTvDefaultFavorites => 'Standard till favoritkanaler';
@@ -1567,6 +1569,8 @@ extension on TranslationsSv {
'settings.requireProfileSelectionOnOpenDescription' => 'Visa profilval varje gång appen öppnas',
'settings.confirmExitOnBack' => 'Bekräfta innan avslut',
'settings.confirmExitOnBackDescription' => 'Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen',
'settings.autoHidePerformanceOverlay' => 'Dölj prestandaöverlagring automatiskt',
'settings.autoHidePerformanceOverlayDescription' => 'Tona prestandaöverlagringen med uppspelningskontrollerna',
'settings.showNavBarLabels' => 'Visa navigeringsfältets etiketter',
'settings.showNavBarLabelsDescription' => 'Visa textetiketter under navigeringsfältets ikoner',
'settings.liveTvDefaultFavorites' => 'Standard till favoritkanaler',
@@ -1864,10 +1868,10 @@ extension on TranslationsSv {
'about.viewLicensesDescription' => 'Visa licenser för tredjepartsbibliotek',
'serverSelection.allServerConnectionsFailed' => 'Misslyckades att ansluta till servrar. Kontrollera ditt nätverk och försök igen.',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => 'Inga servrar hittades för ${username} (${email})',
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Misslyckades att ladda servrar: ${error}',
'hubDetail.title' => 'Titel',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => 'Misslyckades att ladda servrar: ${error}',
'hubDetail.title' => 'Titel',
'hubDetail.releaseYear' => 'Utgivningsår',
'hubDetail.dateAdded' => 'Datum tillagd',
'hubDetail.rating' => 'Betyg',
+6 -2
View File
@@ -342,6 +342,8 @@ class _TranslationsSettingsZh implements TranslationsSettingsEn {
@override String get requireProfileSelectionOnOpenDescription => '每次打开应用时显示配置文件选择';
@override String get confirmExitOnBack => '退出前确认';
@override String get confirmExitOnBackDescription => '按返回键退出应用时显示确认对话框';
@override String get autoHidePerformanceOverlay => '自动隐藏性能叠加层';
@override String get autoHidePerformanceOverlayDescription => '性能叠加层随播放控件一起淡入淡出';
@override String get showNavBarLabels => '显示导航栏标签';
@override String get showNavBarLabelsDescription => '在导航栏图标下方显示文字标签';
@override String get liveTvDefaultFavorites => '默认显示收藏频道';
@@ -1567,6 +1569,8 @@ extension on TranslationsZh {
'settings.requireProfileSelectionOnOpenDescription' => '每次打开应用时显示配置文件选择',
'settings.confirmExitOnBack' => '退出前确认',
'settings.confirmExitOnBackDescription' => '按返回键退出应用时显示确认对话框',
'settings.autoHidePerformanceOverlay' => '自动隐藏性能叠加层',
'settings.autoHidePerformanceOverlayDescription' => '性能叠加层随播放控件一起淡入淡出',
'settings.showNavBarLabels' => '显示导航栏标签',
'settings.showNavBarLabelsDescription' => '在导航栏图标下方显示文字标签',
'settings.liveTvDefaultFavorites' => '默认显示收藏频道',
@@ -1864,10 +1868,10 @@ extension on TranslationsZh {
'about.viewLicensesDescription' => '查看第三方库的许可证',
'serverSelection.allServerConnectionsFailed' => '无法连接到任何服务器。请检查你的网络并重试。',
'serverSelection.noServersFoundForAccount' => ({required Object username, required Object email}) => '未找到 ${username} (${email}) 的服务器',
'serverSelection.failedToLoadServers' => ({required Object error}) => '无法加载服务器: ${error}',
'hubDetail.title' => '标题',
_ => null,
} ?? switch (path) {
'serverSelection.failedToLoadServers' => ({required Object error}) => '无法加载服务器: ${error}',
'hubDetail.title' => '标题',
'hubDetail.releaseYear' => '发行年份',
'hubDetail.dateAdded' => '添加日期',
'hubDetail.rating' => '评分',
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "Visa profilval varje gång appen öppnas",
"confirmExitOnBack": "Bekräfta innan avslut",
"confirmExitOnBackDescription": "Visa en bekräftelsedialog när du trycker tillbaka för att avsluta appen",
"autoHidePerformanceOverlay": "Dölj prestandaöverlagring automatiskt",
"autoHidePerformanceOverlayDescription": "Tona prestandaöverlagringen med uppspelningskontrollerna",
"showNavBarLabels": "Visa navigeringsfältets etiketter",
"showNavBarLabelsDescription": "Visa textetiketter under navigeringsfältets ikoner",
"liveTvDefaultFavorites": "Standard till favoritkanaler",
+2
View File
@@ -223,6 +223,8 @@
"requireProfileSelectionOnOpenDescription": "每次打开应用时显示配置文件选择",
"confirmExitOnBack": "退出前确认",
"confirmExitOnBackDescription": "按返回键退出应用时显示确认对话框",
"autoHidePerformanceOverlay": "自动隐藏性能叠加层",
"autoHidePerformanceOverlayDescription": "性能叠加层随播放控件一起淡入淡出",
"showNavBarLabels": "显示导航栏标签",
"showNavBarLabelsDescription": "在导航栏图标下方显示文字标签",
"liveTvDefaultFavorites": "默认显示收藏频道",
+10
View File
@@ -15,6 +15,7 @@ class SettingsProvider extends ChangeNotifier {
bool _hideSpoilers = false;
bool _showNavBarLabels = true;
bool _liveTvDefaultFavorites = false;
bool _autoHidePerformanceOverlay = true;
bool _isInitialized = false;
Future<void>? _initFuture;
@@ -42,6 +43,7 @@ class SettingsProvider extends ChangeNotifier {
_hideSpoilers = _settingsService!.getHideSpoilers();
_showNavBarLabels = _settingsService!.getShowNavBarLabels();
_liveTvDefaultFavorites = _settingsService!.getLiveTvDefaultFavorites();
_autoHidePerformanceOverlay = _settingsService!.getAutoHidePerformanceOverlay();
_isInitialized = true;
notifyListeners();
}
@@ -71,6 +73,8 @@ class SettingsProvider extends ChangeNotifier {
bool get liveTvDefaultFavorites => _liveTvDefaultFavorites;
bool get autoHidePerformanceOverlay => _autoHidePerformanceOverlay;
/// Helper to update a setting: ensures init, deduplicates, persists, notifies.
Future<void> _updateSetting<T>({
required T current,
@@ -152,6 +156,12 @@ class SettingsProvider extends ChangeNotifier {
persist: _settingsService!.setLiveTvDefaultFavorites,
);
Future<void> setAutoHidePerformanceOverlay(bool value) => _updateSetting(
current: _autoHidePerformanceOverlay, value: value,
setLocal: (v) => _autoHidePerformanceOverlay = v,
persist: _settingsService!.setAutoHidePerformanceOverlay,
);
String get episodePosterModeDisplayName {
switch (_episodePosterMode) {
case EpisodePosterMode.seriesPoster:
@@ -83,6 +83,7 @@ class _AppearanceSettingsScreenState extends State<AppearanceSettingsScreen> {
_buildHideSpoilers(),
_buildRequireProfileSelection(),
if (PlatformDetector.isTV()) _buildConfirmExitOnBack(),
_buildAutoHidePerformanceOverlay(),
const SizedBox(height: 24),
]),
),
@@ -367,6 +368,22 @@ class _AppearanceSettingsScreenState extends State<AppearanceSettingsScreen> {
);
}
Widget _buildAutoHidePerformanceOverlay() {
return Consumer<SettingsProvider>(
builder: (context, settingsProvider, child) {
return SwitchListTile(
secondary: const AppIcon(Symbols.speed_rounded, fill: 1),
title: Text(t.settings.autoHidePerformanceOverlay),
subtitle: Text(t.settings.autoHidePerformanceOverlayDescription),
value: settingsProvider.autoHidePerformanceOverlay,
onChanged: (value) async {
await settingsProvider.setAutoHidePerformanceOverlay(value);
},
);
},
);
}
// --- Helpers ---
String _getLanguageDisplayName(AppLocale locale) {
+11
View File
@@ -84,6 +84,7 @@ class SettingsService extends BaseSharedPreferencesService {
static const String _keyDownloadOnWifiOnly = 'download_on_wifi_only';
static const String _keyVideoPlayerNavigationEnabled = 'video_player_navigation_enabled';
static const String _keyShowPerformanceOverlay = 'show_performance_overlay';
static const String _keyAutoHidePerformanceOverlay = 'auto_hide_performance_overlay';
static const String _keyMpvConfigEntries = 'mpv_config_entries'; // Legacy
static const String _keyMpvConfigText = 'mpv_config_text';
static const String _keyMpvConfigPresets = 'mpv_config_presets';
@@ -624,6 +625,15 @@ class SettingsService extends BaseSharedPreferencesService {
return prefs.getBool(_keyShowPerformanceOverlay) ?? false; // Default: disabled
}
// Auto-hide performance overlay (fade with playback controls)
Future<void> setAutoHidePerformanceOverlay(bool enabled) async {
await prefs.setBool(_keyAutoHidePerformanceOverlay, enabled);
}
bool getAutoHidePerformanceOverlay() {
return prefs.getBool(_keyAutoHidePerformanceOverlay) ?? true; // Default: enabled
}
// Helper methods for HotKey serialization
static const _modifierMap = <String, HotKeyModifier>{
'alt': HotKeyModifier.alt,
@@ -1368,6 +1378,7 @@ class SettingsService extends BaseSharedPreferencesService {
prefs.remove(_keyDownloadOnWifiOnly),
prefs.remove(_keyVideoPlayerNavigationEnabled),
prefs.remove(_keyShowPerformanceOverlay),
prefs.remove(_keyAutoHidePerformanceOverlay),
prefs.remove(_keyMpvConfigEntries),
prefs.remove(_keyMpvConfigText),
prefs.remove(_keyMpvConfigPresets),
@@ -312,6 +312,7 @@ class _PlexVideoControlsState extends State<PlexVideoControls> with WindowListen
bool _videoPlayerNavigationEnabled = false;
// Performance overlay
bool _showPerformanceOverlay = false;
bool _autoHidePerformanceOverlay = true;
// Long-press 2x speed state
bool _isLongPressing = false;
// Subtitle visibility toggle state
@@ -603,6 +604,7 @@ class _PlexVideoControlsState extends State<PlexVideoControls> with WindowListen
_autoSkipDelay = settingsService.getAutoSkipDelay();
_videoPlayerNavigationEnabled = settingsService.getVideoPlayerNavigationEnabled();
_showPerformanceOverlay = settingsService.getShowPerformanceOverlay();
_autoHidePerformanceOverlay = settingsService.getAutoHidePerformanceOverlay();
_clickVideoTogglesPlayback = settingsService.getClickVideoTogglesPlayback();
});
@@ -2191,7 +2193,11 @@ class _PlexVideoControlsState extends State<PlexVideoControls> with WindowListen
curve: Curves.easeInOut,
top: _showControls && isMobile ? 80.0 : 16.0,
left: 16,
child: IgnorePointer(child: PlayerPerformanceOverlay(player: widget.player)),
child: AnimatedOpacity(
opacity: (!_autoHidePerformanceOverlay || _showControls || _forceShowControls) ? 1.0 : 0.0,
duration: const Duration(milliseconds: 200),
child: IgnorePointer(child: PlayerPerformanceOverlay(player: widget.player)),
),
),
// Screen lock overlay - absorbs all touches when active
if (_isScreenLocked)