fix(player): align addon subtitle loading with TV

This commit is contained in:
tapframe 2026-08-04 23:16:08 +05:30
parent 04792de891
commit 8881eae1c8
28 changed files with 317 additions and 158 deletions

View file

@ -856,13 +856,13 @@
<string name="settings_playback_option_device_language">Език на устройството</string>
<string name="settings_playback_option_forced">Принудителен</string>
<string name="settings_playback_option_none">Нищо</string>
<string name="settings_playback_addon_subtitle_startup_all">Всички субтитри</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Извличай и показвай всички субтитри на добавките за видеото.</string>
<string name="settings_playback_addon_subtitle_startup_all">Всички субтитри от добавки</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Предварително зареди и прикрепи всички субтитри от добавки преди възпроизвеждане. Най-бавно стартиране.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Бързо стартиране</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Пропусни автоматичното извличане на субтитри на добавки, докато не ги поискате в плейъра.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Стартиране на субтитри на добавки</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Само предпочитани</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Извличай субтитри на добавки, но показвай само съвпадения на предпочитания език.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Стартирай възпроизвеждането веднага. Изборът на субтитри от добавка може да презареди плейъра веднъж.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Зареждане на субтитри от добавка</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Предпочитани езици</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Предварително зареди субтитри от добавки преди възпроизвеждане и прикрепи предпочитани/вторични езикови писти.</string>
<string name="settings_playback_prefer_binge_group">Предпочитай Binge Group (следващ епизод)</string>
<string name="settings_playback_prefer_binge_group_description">Опитай първо същия профил на извора (същата добавка/група с качество) преди нормалните правила за автоматично пускане.</string>
<string name="settings_playback_reuse_binge_group">Използвай повторно Binge Group</string>

View file

@ -883,13 +883,13 @@
<string name="settings_playback_option_original_hint">Vyžaduje povolení obohacování z TMDB</string>
<string name="settings_playback_option_forced">Vynucené (Forced)</string>
<string name="settings_playback_option_none">Žádné</string>
<string name="settings_playback_addon_subtitle_startup_all">Všechny titulky</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Načíst a zobrazit pro video všechny titulky z doplňků.</string>
<string name="settings_playback_addon_subtitle_startup_all">Všechny titulky z doplňků</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Předem načíst a připojit všechny titulky z doplňků před přehráváním. Nejpomalejší spuštění.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Rychlé spuštění</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Přeskočit automatické načítání titulků z doplňků, dokud si to sami nevyžádáte v přehrávači.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Spouštění titulků doplňku</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Pouze preferované</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Stáhnout titulky z doplňků, ale zobrazit pouze shody v preferovaném jazyce.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Spustit přehrávání okamžitě. Výběr titulků z doplňků může vyžadovat jednorázové znovunačtení přehrávače.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Načítání titulků z doplňků</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferované jazyky</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Předem načíst titulky z doplňků před přehráváním a připojit stopy preferovaného/sekundárního jazyka.</string>
<string name="settings_playback_prefer_binge_group">Upřednostnit skupinu (Další epizoda)</string>
<string name="settings_playback_prefer_binge_group_description">Před uplatněním normálních pravidel automatického přehrávání zkusit nejdříve stejný profil zdroje (stejný doplněk/skupinu kvality).</string>
<string name="settings_playback_reuse_binge_group">Znovu použít skupinu pro další sledování (Binge Group)</string>

View file

@ -667,6 +667,13 @@
<string name="settings_playback_option_device_language">Gerätesprache</string>
<string name="settings_playback_option_forced">Erzwungen</string>
<string name="settings_playback_option_none">Keine</string>
<string name="settings_playback_addon_subtitle_startup_all">Alle Addon-Untertitel</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Alle Add-on-Untertitel vor der Wiedergabe vorab laden und anhängen. Langsamster Start.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Schneller Start</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Wiedergabe sofort starten. Durch die Auswahl von Addon-Untertiteln wird der Player möglicherweise einmal neu geladen.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Addon-Untertitel laden</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Bevorzugte Sprachen</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Add-on-Untertitel vor der Wiedergabe vorab laden und bevorzugte/sekundäre Sprachspuren anhängen.</string>
<string name="settings_playback_prefer_binge_group">Binge-Gruppe bevorzugen</string>
<string name="settings_playback_prefer_binge_group_description">Bei automatischer Wiedergabe einen Stream aus derselben Binge-Gruppe wie den aktuellen bevorzugen.</string>
<string name="settings_playback_preferred_audio_language">Bevorzugte Audiosprache</string>

View file

@ -1822,13 +1822,13 @@
<string name="settings_p2p_subtitle">Επιτρέψτε ροές peer-to-peer (torrent)</string>
<string name="settings_p2p_title">Ροές P2P</string>
<string name="settings_playback_section_p2p">ΡΟΈΣ P2P</string>
<string name="settings_playback_addon_subtitle_startup_all">Όλοι οι υπότιτλοι</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Λήψη και εμφάνιση κάθε υπότιτλου πρόσθετου για το βίντεο.</string>
<string name="settings_playback_addon_subtitle_startup_all">Όλοι οι υπότιτλοι πρόσθετου</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Προφόρτωση και επισύναψη όλων των υπότιτλων πρόσθετου πριν την αναπαραγωγή. Πιο αργή εκκίνηση.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Γρήγορη εκκίνηση</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Παράλειψη αυτόματης λήψης υποτίτλων πρόσθετου έως ότου το ζητήσετε στον player.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Εκκίνηση υποτίτλων πρόσθετου</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Μόνο προτιμώμενα</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Λήψη υποτίτλων πρόσθετου, αλλά εμφάνιση μόνο των αντιστοιχιών προτιμώμενης γλώσσας.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Άμεση έναρξη αναπαραγωγής. Η επιλογή υπότιτλων πρόσθετου μπορεί να επαναφορτώσει το πρόγραμμα αναπαραγωγής μία φορά.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Φόρτωση υπότιτλων πρόσθετου</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Προτιμώμενες γλώσσες</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Προφόρτωση υπότιτλων πρόσθετου πριν την αναπαραγωγή και επισύναψη κομματιών προτιμώμενης/δευτερεύουσας γλώσσας.</string>
<string name="settings_playback_engine">Αναπαραγωγή Engine</string>
<string name="settings_playback_engine_auto_description">Χρήση του ExoPlayer πρώτα και επιστροφή στο libmpv αν η αναπαραγωγή αποτύχει.</string>
<string name="settings_playback_engine_exoplayer_description">Χρήση ExoPlayer και αποκωδικοποιητών Android Media3.</string>

View file

@ -883,13 +883,13 @@
<string name="settings_playback_option_original_hint">Requiere que se habilite el enriquecimiento TMDB</string>
<string name="settings_playback_option_forced">Forzado</string>
<string name="settings_playback_option_none">Ninguno</string>
<string name="settings_playback_addon_subtitle_startup_all">Todos los subtítulos</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Busque y muestre todos los subtítulos adicionales del video.</string>
<string name="settings_playback_addon_subtitle_startup_all">Todos los subtítulos de addons</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Obtener y adjuntar todos los subtítulos de addons antes de la reproducción. El inicio más lento.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Inicio rápido</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Omita la búsqueda automática de subtítulos del complemento hasta que lo solicite en el reproductor.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Inicio de subtítulos adicionales</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferido solamente</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Obtenga subtítulos de complementos, pero solo muestre coincidencias de idiomas preferidos.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Iniciar reproducción inmediatamente. Seleccionar subtítulos de addons podría recargar el reproductor una vez.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Carga de Subtítulos de Addons</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Idiomas preferidos</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Obtener subtítulos de addons antes de la reproducción y adjuntar pistas de idioma preferido/secundario.</string>
<string name="settings_playback_prefer_binge_group">Preferir grupo binge</string>
<string name="settings_playback_prefer_binge_group_description">Al reproducir automáticamente, preferir un stream del mismo grupo binge que el actual.</string>
<string name="settings_playback_reuse_binge_group">Reutilizar grupo de atracones</string>

View file

@ -901,13 +901,13 @@
<string name="settings_playback_option_original_hint">Nécessite lactivation de lenrichissement TMDB</string>
<string name="settings_playback_option_forced">Forcé</string>
<string name="settings_playback_option_none">Aucun</string>
<string name="settings_playback_addon_subtitle_startup_all">Tous les sous-titres</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Récupère et affiche tous les sous-titres daddons pour la vidéo.</string>
<string name="settings_playback_addon_subtitle_startup_all">Tous les sous-titres des addons</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Précharger et lier tous les sous-titres des addons avant la lecture. Démarrage le plus lent.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Démarrage rapide</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Ignore la récupération automatique des sous-titres daddons jusquà ce que vous la demandiez dans le lecteur.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Sous-titres daddons au démarrage</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Préférés uniquement</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Récupère les sous-titres daddons, mais naffiche que ceux dans vos langues préférées.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Lance la lecture immédiatement. La sélection des sous-titres dun addon peut entraîner un rechargement du lecteur.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Chargement des sous-titres des addons</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Langues préférées</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Précharger les sous-titres des addons avant la lecture et lier les pistes des langues préférées/secondaires.</string>
<string name="settings_playback_prefer_binge_group">Préférer le groupe binge</string>
<string name="settings_playback_prefer_binge_group_description">Lors de la lecture automatique, préférer un stream du même groupe binge que le stream actuel.</string>
<string name="settings_playback_reuse_binge_group">Réutiliser le groupe de binge</string>

View file

@ -709,6 +709,13 @@
<string name="p2p_consent_enable">P2P הפעל</string>
<string name="p2p_consent_cancel">ביטול</string>
<string name="settings_p2p_title">סטרימינג P2P</string>
<string name="settings_playback_addon_subtitle_startup_all">כל כתוביות התוסף</string>
<string name="settings_playback_addon_subtitle_startup_all_description">משוך את כל כתוביות התוסף לפני ההפעלה. האיטי מבין שלושת המצבים.</string>
<string name="settings_playback_addon_subtitle_startup_fast">הפעלה מהירה</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">התחל הפעלה מיד. בחירת כתוביות תוסף עלולה לטעון מחדש את הנגן פעם אחת.</string>
<string name="settings_playback_addon_subtitle_startup_mode">טעינת כתוביות תוסף</string>
<string name="settings_playback_addon_subtitle_startup_preferred">שפות מועדפות</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">משוך כתוביות תוסף מראש, לפני ההפעלה, וצרף רצועות בשפה המועדפת והמשנית שלך.</string>
<string name="settings_playback_section_p2p">סטרימינג P2P</string>
<string name="settings_p2p_subtitle">אפשר מקורות Stream עמית-לעמית (חינמי אך טעינה איטית).</string>
<string name="player_torrent_peer_info">%1$d מקורות · %2$d עמיתים</string>

View file

@ -1479,13 +1479,13 @@
<string name="settings_playback_touch_gestures_description">Csúsztatások és dupla koppintások engedélyezése a lejátszó felületén a tekeréshez, valamint a fényerő vagy a hangerő beállításához.</string>
<string name="settings_playback_option_original">Eredeti nyelv</string>
<string name="settings_playback_option_original_hint">A TMDB adatbővítés engedélyezése szükséges hozzá</string>
<string name="settings_playback_addon_subtitle_startup_all">Összes felirat</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Lekéri és megjeleníti a videóhoz tartozó összes kiegészítő feliratot.</string>
<string name="settings_playback_addon_subtitle_startup_all">Összes bővítmény felirat</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Az összes bővítmény felirat előtöltése és csatolása lejátszás előtt. Ez a leglassabb indítási mód.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Gyors indítás</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Kihagyja a kiegészítő feliratok automatikus lekérését mindaddig, amíg nem kéred azt a lejátszóban.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Kiegészítő feliratok indítása</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Csak a preferáltak</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Lekéri a kiegészítő feliratokat, de csak a preferált nyelvi egyezéseket jeleníti meg.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">A lejátszás azonnali indítása. A bővítmény feliratok kiválasztása egyszer újraindíthatja a lejátszót.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Bővítmény feliratok betöltése</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Előnyben részesített nyelvek</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Bővítmény feliratok előtöltése lejátszás előtt, az elsődleges és másodlagos nyelvi sávok csatolásával.</string>
<string name="settings_playback_reuse_binge_group">Sorozatnézési csoport újrafelhasználása</string>
<string name="settings_playback_reuse_binge_group_description">Megjegyzi és újra felhasználja az utolsó sorozatnézési csoportot a munkamenetek között (Nézés folytatása, Részletek stb.).</string>
<string name="settings_playback_engine">Lejátszómotor</string>

View file

@ -796,13 +796,13 @@
<string name="settings_playback_option_device_language">Bahasa perangkat</string>
<string name="settings_playback_option_forced">Paksa</string>
<string name="settings_playback_option_none">Tidak Ada</string>
<string name="settings_playback_addon_subtitle_startup_all">Semua terjemahan</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Ambil dan tampilkan masing-masing addon terjemahan untuk video ini.</string>
<string name="settings_playback_addon_subtitle_startup_all">Semua subtitle addon</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pra-ambil dan lampirkan semua subtitle addon sebelum pemutaran. Startup paling lambat.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Mulai cepat</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Lewati pengambilan addon terjemahan otomatis sampai Anda memintanya di pemutar.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Inisialisasi Addon Terjemahan</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Hanya Favorit</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Ambil addon terjemahan, tetapi hanya tampilkan bahasa yang sesuai preferensi.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Mulai pemutaran segera. Memilih subtitle addon mungkin memuat ulang pemutar sekali.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Pemuatan Subtitle Addon</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Bahasa yang diutamakan</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pra-ambil subtitle addon sebelum pemutaran dan lampirkan trek bahasa yang diutamakan/kedua.</string>
<string name="settings_playback_prefer_binge_group">Utamakan Grup Maraton (Episode Berikutnya)</string>
<string name="settings_playback_prefer_binge_group_description">Coba profil sumber yang sama terlebih dahulu (addon/grup kualitas yang sama) sebelum aturan putar otomatis normal.</string>
<string name="settings_playback_reuse_binge_group">Gunakan Kembali Grup Maraton</string>

View file

@ -796,13 +796,13 @@
<string name="settings_playback_option_device_language">Bahasa perangkat</string>
<string name="settings_playback_option_forced">Paksa</string>
<string name="settings_playback_option_none">Tidak Ada</string>
<string name="settings_playback_addon_subtitle_startup_all">Semua terjemahan</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Ambil dan tampilkan masing-masing addon terjemahan untuk video ini.</string>
<string name="settings_playback_addon_subtitle_startup_all">Semua subtitle addon</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pra-ambil dan lampirkan semua subtitle addon sebelum pemutaran. Startup paling lambat.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Mulai cepat</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Lewati pengambilan addon terjemahan otomatis sampai Anda memintanya di pemutar.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Inisialisasi Addon Terjemahan</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Hanya Favorit</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Ambil addon terjemahan, tetapi hanya tampilkan bahasa yang sesuai preferensi.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Mulai pemutaran segera. Memilih subtitle addon mungkin memuat ulang pemutar sekali.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Pemuatan Subtitle Addon</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Bahasa yang diutamakan</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pra-ambil subtitle addon sebelum pemutaran dan lampirkan trek bahasa yang diutamakan/kedua.</string>
<string name="settings_playback_prefer_binge_group">Utamakan Grup Maraton (Episode Berikutnya)</string>
<string name="settings_playback_prefer_binge_group_description">Coba profil sumber yang sama terlebih dahulu (addon/grup kualitas yang sama) sebelum aturan putar otomatis normal.</string>
<string name="settings_playback_reuse_binge_group">Gunakan Kembali Grup Maraton</string>

View file

@ -526,13 +526,13 @@
<string name="settings_playback_option_device_language">Lingua del dispositivo</string>
<string name="settings_playback_option_forced">Forzati</string>
<string name="settings_playback_option_none">Nessuno</string>
<string name="settings_playback_addon_subtitle_startup_all">Tutti i sottotitoli</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Recupera e mostra ogni sottotitolo degli addon per il video.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Avvio veloce</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Salta la ricerca automatica dei sottotitoli se non lo richiedi manualmente nel player.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Avvio Sottotitoli degli Addons</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Solo preferiti</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Trova sottotitoli degli addon, ma mostra solo se nelle lingue preferite.</string>
<string name="settings_playback_addon_subtitle_startup_all">Tutti i sottotitoli dell'addon</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Ottieni e unisci al lettore tutti i sottotitoli dagli addon prima della riproduzione. Avvio più lento.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Avvio Rapido</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Inizia riproduzione immediatamente. I sottotitoli dell'addon selezionati potrebbero riavviare una sola volta il lettore.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Caricamento Sottotitoli Addon</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Lingue Preferite</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Ottieni i sottotitoli dagli addon prima della riproduzione e unisci al lettore le tracce preferite e secondarie.</string>
<string name="settings_playback_prefer_binge_group">Preferisci Binge Group</string>
<string name="settings_playback_prefer_binge_group_description">Durante la riproduzione automatica, preferisci un flusso dello stesso "binge group" di quello attuale.</string>
<string name="settings_playback_preferred_audio_language">Lingua audio preferita</string>

View file

@ -881,13 +881,13 @@
<string name="settings_playback_option_original_hint">TMDB補完が有効な必要があります</string>
<string name="settings_playback_option_forced">強制</string>
<string name="settings_playback_option_none">なし</string>
<string name="settings_playback_addon_subtitle_startup_all">すべての字幕</string>
<string name="settings_playback_addon_subtitle_startup_all_description">動画のすべてのアドオン字幕を取得して表示します。</string>
<string name="settings_playback_addon_subtitle_startup_all">すべてのアドオン字幕</string>
<string name="settings_playback_addon_subtitle_startup_all_description">再生前にすべてのアドオン字幕を取得して添付。最も起動が遅い</string>
<string name="settings_playback_addon_subtitle_startup_fast">高速起動</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">プレーヤーでリクエストするまでアドオン字幕の自動取得をスキップします。</string>
<string name="settings_playback_addon_subtitle_startup_mode">アドオン字幕の起動設定</string>
<string name="settings_playback_addon_subtitle_startup_preferred">優先言語のみ</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">アドオン字幕を取得しますが、優先言語の一致のみ表示します。</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">すぐに再生を開始。アドオン字幕の選択時にプレーヤーが一度再読み込みされる場合があります</string>
<string name="settings_playback_addon_subtitle_startup_mode">アドオン字幕の読み込み</string>
<string name="settings_playback_addon_subtitle_startup_preferred">優先言語</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">再生前にアドオン字幕を取得して優先・第2言語トラックを添付</string>
<string name="settings_playback_prefer_binge_group">一気見グループを優先(次のエピソード)</string>
<string name="settings_playback_prefer_binge_group_description">通常の自動再生ルールより先に同じソースプロファイル(同じアドオン/品質グループ)を試みます。</string>
<string name="settings_playback_reuse_binge_group">一気見グループを再利用</string>

View file

@ -776,6 +776,13 @@
<string name="settings_playback_option_device_language">Enhetsspråk</string>
<string name="settings_playback_option_forced">Tvungen</string>
<string name="settings_playback_option_none">Ingen</string>
<string name="settings_playback_addon_subtitle_startup_all">Alle tilleggsundertekster</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Hent og legger ved alle tilleggsundertekster før avspilling. Langsom oppstart.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Rask oppstart</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Start avspilling umiddelbart. Valg av undertekst fra tillegg kan laste spilleren på nytt en gang.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Last undertekster fra tillegg</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Foretrukne språk</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Hent undertekster fra tillegg før avspilling og legger ved foretrukne/sekundære språkspor.</string>
<string name="settings_playback_prefer_binge_group">Foretrekk binge-gruppe (neste episode)</string>
<string name="settings_playback_prefer_binge_group_description">Prøv samme kildeprofil først før vanlige auto-play-regler.</string>
<string name="settings_playback_preferred_audio_language">Foretrukket lydspråk</string>

View file

@ -909,13 +909,13 @@
<string name="settings_playback_option_original_hint">Vereist dat TMDB-verrijking is ingeschakeld</string>
<string name="settings_playback_option_forced">Geforceerd</string>
<string name="settings_playback_option_none">Geen</string>
<string name="settings_playback_addon_subtitle_startup_all">Alle ondertitels</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Haal elke addon-ondertitel voor de video op en toon deze.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Snel opstarten</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Sla het automatisch ophalen van addon-ondertitels over totdat je dit in de speler aanvraagt.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Opstartmodus addon-ondertitels</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Alleen voorkeur</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Haal addon-ondertitels op, maar toon alleen overeenkomsten in de voorkeurstaal.</string>
<string name="settings_playback_addon_subtitle_startup_all">Alle addon-ondertitels</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Laad en koppel alle addon-ondertitels vóór het afspelen. Langzaamste opstart.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Snelle start</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Start direct met afspelen. Het kiezen van addon-ondertitels kan de speler één keer herladen.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Addon-ondertitels laden</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Voorkeurstalen</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Laad addon-ondertitels vooraf en koppel sporen voor voorkeur- en secundaire taal.</string>
<string name="settings_playback_prefer_binge_group">Voorkeur voor bingegroep (volgende aflevering)</string>
<string name="settings_playback_prefer_binge_group_description">Probeer eerst hetzelfde bronprofiel (dezelfde addon-/kwaliteitsgroep) vóór de normale regels voor automatisch afspelen.</string>
<string name="settings_playback_reuse_binge_group">Bingegroep hergebruiken</string>

View file

@ -802,13 +802,13 @@
<string name="settings_playback_option_device_language">Język urządzenia</string>
<string name="settings_playback_option_forced">Wymuszone</string>
<string name="settings_playback_option_none">Brak</string>
<string name="settings_playback_addon_subtitle_startup_all">Wszystkie napisy</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pobierz i pokaż wszystkie napisy z dodatków dla tego wideo.</string>
<string name="settings_playback_addon_subtitle_startup_all">Wszystkie napisy z dodatków</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pobierz i dołącz wszystkie napisy z dodatków przed odtwarzaniem. Najwolniejszy start.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Szybki start</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Pomiń automatyczne pobieranie napisów z dodatków do momentu żądania w odtwarzaczu.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Tryb uruchamiania napisów z dodatków</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Tylko preferowane</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pobierz napisy z dodatków, ale pokaż tylko te w preferowanym języku.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Uruchom odtwarzanie natychmiast. Wybór napisów z dodatku może raz przeładować odtwarzacz.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Wczytywanie napisów z dodatków</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferowane języki</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pobierz napisy z dodatków przed odtwarzaniem i dołącz preferowane/drugorzedne ścieżki językowe.</string>
<string name="settings_playback_player_preference">Odtwarzacz</string>
<string name="settings_playback_player_preference_internal">Wewnętrzny</string>
<string name="settings_playback_player_preference_external">Zewnętrzny</string>

View file

@ -763,6 +763,13 @@
<string name="settings_playback_option_device_language">Idioma do dispositivo</string>
<string name="settings_playback_option_forced">Forçada</string>
<string name="settings_playback_option_none">Nenhuma</string>
<string name="settings_playback_addon_subtitle_startup_all">Todas as legendas</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Busca todas antes de iniciar, mais lento</string>
<string name="settings_playback_addon_subtitle_startup_fast">Início rápido</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Início imediato, mas pode causar um breve reinício do player.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Carregamento de legendas</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Idiomas preferidos</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Busca idiomas preferidos antes de iniciar</string>
<string name="settings_playback_prefer_binge_group">Preferir Grupo de Maratona (Próximo Episódio)</string>
<string name="settings_playback_prefer_binge_group_description">Tentar o mesmo perfil de fonte primeiro (mesmo addon/grupo de qualidade) antes das regras normais de reprodução automática.</string>
<string name="settings_playback_reuse_binge_group">Reutilizar Grupo de Maratona</string>

View file

@ -865,13 +865,13 @@
<string name="settings_playback_option_device_language">Idioma do dispositivo</string>
<string name="settings_playback_option_forced">Forçadas</string>
<string name="settings_playback_option_none">Nenhum</string>
<string name="settings_playback_addon_subtitle_startup_all">Todas as legendas</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Obtém e mostra todas as legendas dos addons para o vídeo.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Arranque rápido</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Ignora a obtenção automática de legendas dos addons até as pedires no leitor.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Carregamento inicial de legendas dos addons</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Apenas preferidas</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Obtém legendas dos addons, mas mostra apenas correspondências nos idiomas preferidos.</string>
<string name="settings_playback_addon_subtitle_startup_all">Todas as legendas de addons</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pré-carregar e anexar todas as legendas de addons antes da reprodução. Início mais lento.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Início rápido</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Iniciar a reprodução imediatamente. Selecionar legendas de addons pode recarregar o leitor uma vez.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Carregamento de legendas de addons</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Idiomas preferidos</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pré-carregar as legendas de addons antes da reprodução e anexar as pistas dos idiomas preferidos/secundários.</string>
<string name="settings_playback_prefer_binge_group">Preferir grupo de maratona (Próximo episódio)</string>
<string name="settings_playback_prefer_binge_group_description">Tenta primeiro o mesmo perfil de fonte (mesmo addon/grupo de qualidade) antes das regras normais de reprodução automática.</string>
<string name="settings_playback_reuse_binge_group">Reutilizar grupo de maratona</string>

View file

@ -909,13 +909,13 @@
<string name="settings_playback_option_original_hint">Necesită activarea îmbunătățirii TMDB</string>
<string name="settings_playback_option_forced">Forțată</string>
<string name="settings_playback_option_none">Fără</string>
<string name="settings_playback_addon_subtitle_startup_all">Toate subtitrările</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Preia și afișează fiecare subtitrare disponibilă din extensii pentru videoclip.</string>
<string name="settings_playback_addon_subtitle_startup_all">Toate subtitrările din extensii</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Preîncarcă și atașează toate subtitrările din extensii înainte de redare. Cea mai lentă pornire.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Pornire rapidă</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Omite preluarea automată a subtitrărilor din extensii până când o soliciți în player.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Mod pornire subtitrări din extensii</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Doar cele preferate</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Preia subtitrările din extensii, dar le afișează doar pe cele care se potrivesc cu limba preferată.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Pornește redarea imediat. Selectarea subtitrărilor din extensii poate reîncărca playerul o singură dată.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Încărcarea subtitrărilor din extensii</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Limbi preferate</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Preîncarcă subtitrările din extensii înainte de redare și atașează pistele în limbile preferată/secundară.</string>
<string name="settings_playback_prefer_binge_group">Preferă grupul de Binge (Episodul următor)</string>
<string name="settings_playback_prefer_binge_group_description">Încearcă mai întâi același profil de sursă (aceeași extensie/grup de calitate) înainte de regulile normale de redare automată.</string>
<string name="settings_playback_reuse_binge_group">Reutilizează grupul de Binge</string>

View file

@ -867,13 +867,13 @@
<string name="settings_playback_option_device_language">Jazyk zariadenia</string>
<string name="settings_playback_option_forced">Vynútené</string>
<string name="settings_playback_option_none">Žiadne</string>
<string name="settings_playback_addon_subtitle_startup_all">Všetky titulky</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Načítať a zobraziť všetky titulky doplnku pre video.</string>
<string name="settings_playback_addon_subtitle_startup_all">Všetky titulky z doplnkov</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Pred prehrávaním prednačítať a pripojiť všetky titulky z doplnkov. Najpomalšie spustenie.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Rýchle spustenie</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Preskočiť automatické načítanie titulkov doplnku, kým ich nepožiadate v prehrávači.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Spustenie titulkov doplnku</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Iba preferované</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Načítať titulky doplnku, ale zobraziť iba zhody v preferovanom jazyku.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Spustiť prehrávanie okamžite. Výber titulkov z doplnkov môže raz znovu načítať prehrávač.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Načítavanie titulkov z doplnkov</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferované jazyky</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Pred prehrávaním prednačítať titulky z doplnkov a pripojiť preferované/sekundárne jazykové stopy.</string>
<string name="settings_playback_prefer_binge_group">Uprednostniť skupinu binge (ďalšia epizóda)</string>
<string name="settings_playback_prefer_binge_group_description">Najprv vyskúšať rovnaký profil zdroja (rovnaká skupina doplnku/kvality) pred bežnými pravidlami automatického prehrávania.</string>
<string name="settings_playback_reuse_binge_group">Znovu použiť skupinu binge</string>

View file

@ -786,6 +786,13 @@
<string name="settings_playback_option_device_language">Cihaz dili</string>
<string name="settings_playback_option_forced">Zorunlu</string>
<string name="settings_playback_option_none">Yok</string>
<string name="settings_playback_addon_subtitle_startup_all">Tüm eklenti altyazıları</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Bulunan tüm eklenti altyazılarını baştan arka planda getirir. Videonun başlaması biraz daha uzun sürebilir.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Hızlı başlangıç</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Videoyu beklemeden başlatır. Eklentiden farklı bir altyazı seçerseniz oynatıcı anlık olarak yeniden yüklenebilir.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Eklenti Altyazılarını Yükleme</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Tercih edilen diller</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Video başlamadan önce eklenti altyazılarını arar ve yalnızca seçtiğiniz dillerdeki altyazıları hazır eder.</string>
<string name="settings_playback_prefer_binge_group">Binge grubunu tercih et</string>
<string name="settings_playback_prefer_binge_group_description">Otomatik oynatırken mevcut yayınla aynı binge grubundan bir yayın tercih et.</string>
<string name="settings_playback_reuse_binge_group">Binge Grubunu Tekrar Kullan</string>

View file

@ -888,13 +888,13 @@
<string name="settings_playback_option_original_hint">Yêu cầu kích hoạt tính năng cập nhật thông tin từ TMDB</string>
<string name="settings_playback_option_forced">Phụ đề bắt buộc</string>
<string name="settings_playback_option_none">Không</string>
<string name="settings_playback_addon_subtitle_startup_all">Tất cả phụ đề</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Tải và hiển thị tất cả phụ đề từ addon</string>
<string name="settings_playback_addon_subtitle_startup_fast">Khởi chạy nhanh</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Chỉ tải phụ đề từ addon khi bạn yêu cầu trong trình phát</string>
<string name="settings_playback_addon_subtitle_startup_mode">Khởi chạy phụ đề từ addon</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Chỉ hiển thị ngôn ngữ ưu tiên</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Chỉ hiển thị ngôn ngữ ưu tiên khi tải phụ đề từ addon</string>
<string name="settings_playback_addon_subtitle_startup_all">Tất cả phụ đề addon</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Tải trước và gắn tất cả phụ đề addon trước khi phát. Khởi động chậm nhất.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Khởi động nhanh</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Bắt đầu phát ngay. Chọn phụ đề addon có thể tải lại trình phát một lần.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Tải phụ đề từ Addon</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Ngôn ngữ ưa thích</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Tải trước phụ đề addon và gắn rãnh ngôn ngữ ưa thích/thứ hai trước khi phát.</string>
<string name="settings_playback_prefer_binge_group">Ưu tiên chế độ xem liên tiếp</string>
<string name="settings_playback_prefer_binge_group_description">Ưu tiên chọn nguồn phát của tập tiếp theo giống với hiện tại (cùng addon/chất lượng) trước khi áp dụng các quy tắc khác</string>
<string name="settings_playback_reuse_binge_group">Ghi nhớ chế độ xem liên tiếp</string>

View file

@ -973,13 +973,13 @@
<string name="settings_playback_option_original_hint">Requires TMDB enrichment to be enabled</string>
<string name="settings_playback_option_forced">Forced</string>
<string name="settings_playback_option_none">None</string>
<string name="settings_playback_addon_subtitle_startup_all">All subtitles</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Fetch and show every addon subtitle for the video.</string>
<string name="settings_playback_addon_subtitle_startup_all">All addon subtitles</string>
<string name="settings_playback_addon_subtitle_startup_all_description">Prefetch and attach all addon subtitles before playback. Slowest startup.</string>
<string name="settings_playback_addon_subtitle_startup_fast">Fast startup</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Skip automatic addon subtitle fetch until you request it in the player.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Addon Subtitle Startup</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferred only</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Fetch addon subtitles, but only show preferred-language matches.</string>
<string name="settings_playback_addon_subtitle_startup_fast_description">Start playback immediately. Selecting addon subtitles may reload the player once.</string>
<string name="settings_playback_addon_subtitle_startup_mode">Addon Subtitle Loading</string>
<string name="settings_playback_addon_subtitle_startup_preferred">Preferred languages</string>
<string name="settings_playback_addon_subtitle_startup_preferred_description">Prefetch addon subtitles before playback and attach preferred/secondary language tracks.</string>
<string name="settings_playback_prefer_binge_group">Prefer Binge Group (Next Episode)</string>
<string name="settings_playback_prefer_binge_group_description">Try the same source profile first (same addon/quality group) before normal auto-play rules.</string>
<string name="settings_playback_reuse_binge_group">Reuse Binge Group</string>

View file

@ -0,0 +1,6 @@
package com.nuvio.app.features.player
internal fun canAutomaticallyFetchAddonSubtitles(
mode: AddonSubtitleStartupMode,
playerInitialized: Boolean,
): Boolean = mode != AddonSubtitleStartupMode.FAST_STARTUP || playerInitialized

View file

@ -189,11 +189,20 @@ internal fun PlayerScreenRuntime.BindPlayerRuntimeEffects() {
controller.updateNowPlayingMetadata(buildNowPlayingInfo())
}
LaunchedEffect(activeSourceUrl, addonSubtitleFetchKey, playerSettingsUiState.addonSubtitleStartupMode) {
LaunchedEffect(
activeSourceUrl,
addonSubtitleFetchKey,
playerSettingsUiState.addonSubtitleStartupMode,
playerController,
playerControllerSourceUrl,
) {
val fetchKey = addonSubtitleFetchKey ?: return@LaunchedEffect
if (playerSettingsUiState.addonSubtitleStartupMode == AddonSubtitleStartupMode.FAST_STARTUP) {
return@LaunchedEffect
}
val playerInitialized = playerController != null && playerControllerSourceUrl == activeSourceUrl
val canFetch = canAutomaticallyFetchAddonSubtitles(
mode = playerSettingsUiState.addonSubtitleStartupMode,
playerInitialized = playerInitialized,
)
if (!canFetch) return@LaunchedEffect
if (autoFetchedAddonSubtitlesForKey == fetchKey) return@LaunchedEffect
autoFetchedAddonSubtitlesForKey = fetchKey
fetchAddonSubtitlesForActiveItem()

View file

@ -200,51 +200,61 @@ fun SubtitleModal(
}
}
AnimatedVisibility(
visible = activeLanguageKey != SubtitleOffLanguageKey,
enter = fadeIn(),
exit = fadeOut(),
SubtitleRail(
title = stringResource(Res.string.compose_player_subtitles),
width = 300.dp,
) {
SubtitleRail(
title = stringResource(Res.string.compose_player_subtitles),
width = 300.dp,
) {
when {
options.isEmpty() && isLoadingAddonSubtitles -> {
PlayerModalLoading(modifier = Modifier.padding(vertical = 24.dp))
}
options.isEmpty() -> {
SubtitleRailEmptyState(
text = stringResource(Res.string.compose_player_fetch_subtitles),
onClick = onFetchAddonSubtitles,
when {
options.isEmpty() -> {
when (
subtitleOptionsRailEmptyContent(
selectedLanguageKey = activeLanguageKey,
hasAvailableLanguages = languageItems.size > 1,
isLoadingAddonSubtitles = isLoadingAddonSubtitles,
)
) {
SubtitleOptionsRailEmptyContent.NONE -> {
SubtitleRailEmptyState(
text = stringResource(Res.string.compose_player_none),
)
}
SubtitleOptionsRailEmptyContent.LOADING -> {
PlayerModalLoading(modifier = Modifier.padding(vertical = 24.dp))
}
SubtitleOptionsRailEmptyContent.FETCH -> {
SubtitleRailEmptyState(
text = stringResource(Res.string.compose_player_fetch_subtitles),
onClick = onFetchAddonSubtitles,
)
}
}
}
else -> {
LazyColumn(
modifier = Modifier.heightIn(max = railMaxHeight),
verticalArrangement = Arrangement.spacedBy(4.dp),
contentPadding = PaddingValues(vertical = 8.dp),
) {
items(options, key = { it.id }) { option ->
SubtitleOptionRow(
option = option,
selected = option.id == selectedOptionId,
onClick = {
pendingOptionId = option.id
when (option) {
is SubtitleSelectionOption.BuiltIn -> {
onBuiltInTrackSelected(option.track.index)
}
is SubtitleSelectionOption.Addon -> {
onAddonSubtitleSelected(option.subtitle)
}
else -> {
LazyColumn(
modifier = Modifier.heightIn(max = railMaxHeight),
verticalArrangement = Arrangement.spacedBy(4.dp),
contentPadding = PaddingValues(vertical = 8.dp),
) {
items(options, key = { it.id }) { option ->
SubtitleOptionRow(
option = option,
selected = option.id == selectedOptionId,
onClick = {
pendingOptionId = option.id
when (option) {
is SubtitleSelectionOption.BuiltIn -> {
onBuiltInTrackSelected(option.track.index)
}
},
)
}
is SubtitleSelectionOption.Addon -> {
onAddonSubtitleSelected(option.subtitle)
}
}
},
)
}
}
}
@ -475,7 +485,7 @@ private fun SubtitleSourceChip(
@Composable
private fun SubtitleRailEmptyState(
text: String,
onClick: () -> Unit,
onClick: (() -> Unit)? = null,
) {
val tokens = MaterialTheme.nuvio
@ -483,17 +493,19 @@ private fun SubtitleRailEmptyState(
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(12.dp))
.clickable(onClick = onClick)
.then(onClick?.let { Modifier.clickable(onClick = it) } ?: Modifier)
.padding(horizontal = 6.dp, vertical = 10.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp),
verticalAlignment = Alignment.CenterVertically,
) {
Icon(
imageVector = Icons.Rounded.CloudDownload,
contentDescription = null,
tint = tokens.colors.textMuted,
modifier = Modifier.size(20.dp),
)
if (onClick != null) {
Icon(
imageVector = Icons.Rounded.CloudDownload,
contentDescription = null,
tint = tokens.colors.textMuted,
modifier = Modifier.size(20.dp),
)
}
Text(
text = text,
color = tokens.colors.textMuted,

View file

@ -8,6 +8,12 @@ internal data class SubtitleLanguageItem(
val count: Int,
)
internal enum class SubtitleOptionsRailEmptyContent {
NONE,
LOADING,
FETCH,
}
internal sealed interface SubtitleSelectionOption {
val id: String
@ -80,6 +86,21 @@ internal fun buildSubtitleSelectionOptions(
return builtInOptions + addonOptions
}
internal fun subtitleOptionsRailEmptyContent(
selectedLanguageKey: String,
hasAvailableLanguages: Boolean,
isLoadingAddonSubtitles: Boolean,
): SubtitleOptionsRailEmptyContent {
if (selectedLanguageKey == SubtitleOffLanguageKey && hasAvailableLanguages) {
return SubtitleOptionsRailEmptyContent.NONE
}
return if (isLoadingAddonSubtitles) {
SubtitleOptionsRailEmptyContent.LOADING
} else {
SubtitleOptionsRailEmptyContent.FETCH
}
}
internal fun selectedSubtitleLanguageKey(
subtitleTracks: List<SubtitleTrack>,
selectedSubtitleIndex: Int,

View file

@ -0,0 +1,40 @@
package com.nuvio.app.features.player
import kotlin.test.Test
import kotlin.test.assertFalse
import kotlin.test.assertTrue
class AddonSubtitleStartupPolicyTest {
@Test
fun fastStartupWaitsForPlayerInitialization() {
assertFalse(
canAutomaticallyFetchAddonSubtitles(
mode = AddonSubtitleStartupMode.FAST_STARTUP,
playerInitialized = false,
),
)
assertTrue(
canAutomaticallyFetchAddonSubtitles(
mode = AddonSubtitleStartupMode.FAST_STARTUP,
playerInitialized = true,
),
)
}
@Test
fun prefetchModesCanFetchBeforePlayerInitialization() {
assertTrue(
canAutomaticallyFetchAddonSubtitles(
mode = AddonSubtitleStartupMode.PREFERRED_ONLY,
playerInitialized = false,
),
)
assertTrue(
canAutomaticallyFetchAddonSubtitles(
mode = AddonSubtitleStartupMode.ALL_SUBTITLES,
playerInitialized = false,
),
)
}
}

View file

@ -86,6 +86,42 @@ class SubtitleSelectionModelTest {
assertIs<SubtitleSelectionOption.Addon>(options[1])
}
@Test
fun emptySubtitleRailShowsFetchActionWhenNoLanguagesAreAvailable() {
assertEquals(
SubtitleOptionsRailEmptyContent.FETCH,
subtitleOptionsRailEmptyContent(
selectedLanguageKey = SubtitleOffLanguageKey,
hasAvailableLanguages = false,
isLoadingAddonSubtitles = false,
),
)
}
@Test
fun emptySubtitleRailShowsLoadingWhileBackgroundFetchRuns() {
assertEquals(
SubtitleOptionsRailEmptyContent.LOADING,
subtitleOptionsRailEmptyContent(
selectedLanguageKey = SubtitleOffLanguageKey,
hasAvailableLanguages = false,
isLoadingAddonSubtitles = true,
),
)
}
@Test
fun subtitleRailShowsNoneWhenOffIsSelectedAndLanguagesExist() {
assertEquals(
SubtitleOptionsRailEmptyContent.NONE,
subtitleOptionsRailEmptyContent(
selectedLanguageKey = SubtitleOffLanguageKey,
hasAvailableLanguages = true,
isLoadingAddonSubtitles = false,
),
)
}
private fun subtitleTrack(
index: Int,
language: String,