From 6908355d3825166674474b58528e304bcea5e0ff Mon Sep 17 00:00:00 2001 From: monolifed Date: Tue, 4 Jun 2019 05:47:18 +0000 Subject: [PATCH 001/122] Translated using Weblate (Turkish) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-tr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b7c4b0156..4f642bbf7 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -328,7 +328,7 @@ Hızlı isabetsiz konumlama kullan İsabetsiz konumlama, oynatıcının daha düşük hassasiyetle daha hızlı pozisyon aramasını sağlar Sonraki akışı otomatik kuyruğa ekle - Yinelenmeyen bir kuyruktaki son akışı oynatırken ilgili akışı otomatik ekler. + Yinelenmeyen bir kuyruktaki son akışı oynatırken, ilgili bir akışı kendiliğinden ekle EŞZAMANLA Dosya Böyle bir dizin yok From 99ad3dc292621c616dd74652f0e9a8c01db32d1a Mon Sep 17 00:00:00 2001 From: Karel S Date: Mon, 3 Jun 2019 19:17:26 +0000 Subject: [PATCH 002/122] Translated using Weblate (Czech) Currently translated at 99.8% (442 of 443 strings) --- app/src/main/res/values-cs/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ce2943fc4..3bf80f94b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -340,7 +340,7 @@ otevření ve vyskakovacím okně Odebrat všechna data uložená v mezipaměti Mezipaměť metadat vymazána Automatická fronta dalšího streamu - Automaticky připojí související stream při přehrávání posledního streamu v neopakující se frontě. + Automaticky připojí související stream při přehrávání posledního streamu v neopakující se frontě Soubor Neexistující složka Neexistující zdroj souboru/obsahu From 8cbfe9e6cfc158d245bc6ce1d47ce6b854cdf907 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Sun, 2 Jun 2019 18:12:21 +0000 Subject: [PATCH 003/122] Translated using Weblate (Polish) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-pl/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4fedc93d9..b926808c5 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -217,9 +217,9 @@ Brak filmów - film - filmy - filmów + Film + Filmy + Filmów Większość znaków specjalnych Dotacja @@ -330,7 +330,7 @@ Wyczyść pamięć podręczną stron Wyczyszczono pamięć podręczną metadanych Automatyczne kolejkowanie następnego strumienia - Automatycznie dodaj kolejny powiązany strumień podczas odtwarzania ostatniego strumienia w niezapętlonej kolejce. + Automatycznie dodaj kolejny powiązany strumień podczas odtwarzania ostatniego strumienia w niezapętlonej kolejce Plik Nie ma takiego folderu Nie ma takiego źródła plików/treści From 50e8f456018a9c28eb6106bfc3f7cfcb759ab12f Mon Sep 17 00:00:00 2001 From: pjammo Date: Tue, 4 Jun 2019 06:58:55 +0000 Subject: [PATCH 004/122] Translated using Weblate (Italian) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-it/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b4bcd2926..3985dcb0e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -328,7 +328,7 @@ Usa la ricerca rapida ma imprecisa La ricerca imprecisa permette al lettore multimediale di spostarsi nelle posizioni più velocemente con una precisione ridotta Metti in coda automaticamente il prossimo flusso - Aggiungi automaticamente un flusso correlato quando è in corso la riproduzione dell\'ultimo flusso in una coda non ripetitiva. + Aggiungi automaticamente un flusso correlato quando è in corso la riproduzione dell\'ultimo flusso in una coda non ripetitiva SINCRONIZZAZIONE File Nessuna cartella From ffed9f6116f8406d01e21e3510070ef73360603e Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Mon, 3 Jun 2019 17:12:18 +0000 Subject: [PATCH 005/122] Translated using Weblate (Arabic) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-ar/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f197bf975..f37cc851b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -342,7 +342,7 @@ إزالة جميع بيانات صفحات الويب المخزنة مؤقتًا تم محو ذاكرة التخزين المؤقت للبيانات الوصفية وضع البث القادم تلقائيا في قائمة الإنتظار - رفض التدفق-التلقائي المشابه في حال كان التدفق السابق يعمل في-حالة عدم التكرار. + إلحاق التدفق المرتبط تلقائيا عند تشغيل التدفق الأخير في قائمة انتظار مِن دون تكرار إضافة صورة مصغرة إلى قائمة التشغيل تفضيل قائمة التشغيل تم تغيير الصورة المصغرة لقائمة التشغيل. From 8842f53696764aff2de56552a37a35d79788ff70 Mon Sep 17 00:00:00 2001 From: Eduardo Serra Date: Mon, 3 Jun 2019 23:52:54 +0000 Subject: [PATCH 006/122] Translated using Weblate (Spanish) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-es/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 47748195d..747918506 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -40,7 +40,7 @@ (Experimental) Forzar la descarga a través de Tor para una mayor privacidad (transmisión de vídeos aún no compatible). No se puede crear la carpeta de descarga \'%1$s\' Carpeta de descarga creada \'%1$s\' - Los audios descargados se almacenan aquí + Aqui se almacena el audio descargado Introducir ruta de descarga para archivos de audio Bloqueado por GEMA Carpeta de descarga de audio @@ -61,7 +61,7 @@ Las transmisiones en vivo aún no están soportadas Contenido Contenido restringido por edad - Mostrar vídeo restringido por edad. Se puede permitir este tipo de material desde Ajustes. + Muestra un vídeo restringido por edad. Se puede guardar esta modificación desde Ajustes. Toque en buscar para empezar Reproducción automática Reproducir un vídeo cuando NewPipe es llamado desde otra app @@ -162,7 +162,7 @@ abrir en modo popup Suscribirse Suscrito Canal no suscrito - No se pudo cambiar la suscripción + No se pude cambiar la suscripción No se pudo actualizar la suscripción Principal Suscripciones @@ -242,7 +242,7 @@ abrir en modo popup Comenzar a reproducir aquí Comenzar aquí en segundo plano Comenzar aquí en popup - Mostrar consejo \"Mantener para poner en la cola\" + Muestra el consejo \"Manten para poner en la cola\" Nuevo y popular Mantener para poner en la cola Donar @@ -322,7 +322,7 @@ abrir en modo popup Usar búsqueda rápida inexacta La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión Auto-encolar la siguiente transmisión - Auto-añadir un vídeo relacionado al reproducir el último vídeo en una cola no repetitiva. + Añadir de forma automática un vídeo relacionado con el último vídeo reproducido en una cola no repetitiva. DIRECTO SINCRONIZAR Archivo @@ -440,7 +440,7 @@ abrir en modo popup No se puede conectar con el servidor El servidor no devolvio datos El servidor no acepta descargas multi-hilos, intente de nuevo con @string/msg_threads = 1 - El rango solicitado no se puede satisfacer + No se puede soicitar el rango. No encontrado Fallo el post-procesado Desuscribirse From bd55b91a863f9296c11880da5dbcc1ba15b19fda Mon Sep 17 00:00:00 2001 From: Jazz Date: Mon, 3 Jun 2019 23:29:13 +0000 Subject: [PATCH 007/122] Translated using Weblate (French) Currently translated at 99.8% (442 of 443 strings) --- app/src/main/res/values-fr/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6d8d03dec..347344ffa 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -333,7 +333,7 @@ Quelque chose va bien bientôt arriver ;D Télécharger le fichier de flux Vidéo suivante en file d\'attente - Ajout automatique d\'un morceau suggéré lors de la lecture du dernier morceau dans une file d\'attente non bouclée. + Ajout automatique d\'un morceau suggéré lors de la lecture du dernier morceau dans une file d\'attente non bouclée Débogage Remplir Générés automatiquement @@ -474,4 +474,5 @@ Utilisation des onglets par défaut, erreur lors de la lecture des onglets enregistrés Le serveur n\'accepte pas les téléchargements multi-threads, réessayez avec @string/msg_threads = 1 Continuer vos %s transferts en attente depuis Téléchargement + Champs d’en-tête de requête « range » incorrect \ No newline at end of file From 691c1e1a376ac910b29a0723e264ce72999673a3 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 4 Jun 2019 03:07:16 +0000 Subject: [PATCH 008/122] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (443 of 443 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 655cd0dd6..50a68c6c6 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -327,7 +327,7 @@ 使用粗略但快速的尋找 粗略的尋找能讓播放器以降低的精確度更快找到影片的進度位置 自動將下一部影片新增至佇列 - 在非重複播放佇列中最後一個串流開始播放時,自動新增相關串流。 + 在非重複播放佇列中最後一個串流開始播放時,自動新增相關串流 同步 檔案 無效的資料夾 From d153772eb2d28394e2bc7f90ecabcc57edc2f39c Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 4 Jun 2019 22:16:52 +0000 Subject: [PATCH 009/122] Translated using Weblate (Russian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ru/strings.xml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d4bf5d803..d6a27060b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -105,8 +105,8 @@ Не удалось расшифровать подпись URL у видео Не удалось найти ни одного потока Воспроизвести - Фоновое воспроизведение - Всплывающее окно + В фоне + В окне Только некоторые устройства поддерживают видео в 2K/4K Формат видео по умолчанию Чёрная @@ -472,4 +472,15 @@ Пост-обработка не удалась Останавливать скачивание при переходе на мобильную сеть Закрыть + Показать комментарии + Отключите, чтобы скрыть комментарии + Автовоспроизведение + + Комментарии + + + + Нет комментариев + Не удалось загрузить комментарии + Играть вне очереди в фоне \ No newline at end of file From a92bf155a3ae2958760c02aceba49068c6157200 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 4 Jun 2019 22:39:18 +0000 Subject: [PATCH 010/122] Translated using Weblate (Russian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ru/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d6a27060b..45045946c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -358,7 +358,7 @@ \n \nПродолжить? Загружать миниатюры - Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений. + Отключите, чтобы не загружать миниатюры и сэкономить трафик и память. Изменение настройки очистит кэш изображений Кэш изображений очищен Очистить кэш метаданных Кэш метаданных очищен @@ -432,7 +432,7 @@ Уведомление об обновлении Уведомления о новой версии NewPipe Обновления - Показать уведомление с предложением обновить приложение при наличии новой версии + Показать уведомление при наличии новой версии Доступно обновление NewPipe! Нажмите для загрузки Завершено @@ -470,15 +470,15 @@ Не удалось соединиться с сервером Не удалось получить данные с сервера Пост-обработка не удалась - Останавливать скачивание при переходе на мобильную сеть + Приостанавливать скачивание при переходе на мобильную сеть Закрыть Показать комментарии Отключите, чтобы скрыть комментарии Автовоспроизведение Комментарии - - + + Нет комментариев Не удалось загрузить комментарии From 4ca639323dad6ef61bf801132e6e3d9ccd636a5d Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Tue, 4 Jun 2019 22:59:35 +0000 Subject: [PATCH 011/122] Translated using Weblate (Russian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 45045946c..f0f681571 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -482,5 +482,5 @@ Нет комментариев Не удалось загрузить комментарии - Играть вне очереди в фоне + Играть сейчас в фоне \ No newline at end of file From daf2890161fb93376f058ff363a4d0f265b4690d Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Wed, 5 Jun 2019 15:16:25 +0000 Subject: [PATCH 012/122] Added translation using Weblate (Nepali) --- app/src/main/res/values-ne/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-ne/strings.xml diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-ne/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From ff430f5e331a68e4ae619e9c4e4602c73bec4fe8 Mon Sep 17 00:00:00 2001 From: nautilusx Date: Tue, 4 Jun 2019 21:04:29 +0000 Subject: [PATCH 013/122] Translated using Weblate (German) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-de/strings.xml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dada4e80f..1af9f7305 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -26,7 +26,7 @@ Audio Bevorzugtes Audioformat Herunterladen - Nächstes + Nächste \'Nächste\' und \'ähnliche\' Videos anzeigen Nicht unterstützte URL Video & Audio @@ -131,7 +131,7 @@ Hintergrund Pop-up Größe und Position des Pop-ups merken - Entfernt Tonspur bei manchen Auflösungen + Entfernt Tonspur bei MANCHEN Auflösungen Letzte Größe und Position des Pop-ups merken Gestensteuerung Helligkeit und Lautstärke mittels Gesten einstellen @@ -244,7 +244,7 @@ In Warteschlange für Pop-up Ab hier wiedergeben Ab hier im Hintergrundmodus - Ab hier im Pop-up + Wiedergabe in einem neuen Pop-up starten Spenden Zurückgeben Website @@ -472,4 +472,15 @@ Downloads, die nicht pausiert werden können, werden wiederholt Konferenzen Ereignisse + Kommentare anzeigen + Deaktivieren, um die Anzeige von Kommentaren zu beenden + Autoplay + + Kommentare + + + Keine Kommentare + Kommentare konnten nicht geladen werden + Direkt im Hintergrund wiedergeben + Schließen \ No newline at end of file From 3ddc3acf4c237956c5450ff282546cf24452e1d8 Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 5 Jun 2019 19:21:15 +0000 Subject: [PATCH 014/122] Translated using Weblate (German) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1af9f7305..2f4c79514 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -241,9 +241,9 @@ \"Gedrückt halten, um hinzuzufügen\" Tipp anzeigen [Unbekannt] In Warteschlange für Hintergrundwiedergabe - In Warteschlange für Pop-up + In Warteschlange in neuen Pop-up Ab hier wiedergeben - Ab hier im Hintergrundmodus + Wiedergabe im Hintergrund starten Wiedergabe in einem neuen Pop-up starten Spenden Zurückgeben From f8784ae3c7f0a3b3d526d1102e86ec7b490f9930 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojt=C4=9Bch=20=C5=A0amla?= Date: Tue, 11 Jun 2019 21:37:58 +0000 Subject: [PATCH 015/122] Translated using Weblate (Czech) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-cs/strings.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index abc33feef..96f1a7db8 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -33,7 +33,7 @@ Tmavé Světlé Stáhnout - Další videa + Příští video Zobrazovat \'další\' a \'podobná\' videa URL není podporováno Preferovaný jazyk obsahu @@ -246,8 +246,8 @@ otevření ve vyskakovacím okně Do fronty na pozadí Do fronty v okně Začne hrát zde - Začne zde, když na pozadí - Začne zde v okně + Začít přehrávat na pozadí + Začít přehrávat v okně Donate NewPipe je vyvíjen dobrovolníky, kteří tráví svůj čas, aby vaše zkušenost s aplikací byla co nejlepší. Vraťte vývojářům něco zpět, aby mohli NewPipe dále zlepšovat a zároveň si vychutnat šálek kávy. Daruj @@ -319,7 +319,6 @@ otevření ve vyskakovacím okně Menší písmo Normální písmo Větší písmo - Sledovat únik paměti Sledování úniku paměti vypnuto Sledování úniku paměti povoleno, aplikace může při zátěži přestat reagovat @@ -481,4 +480,16 @@ otevření ve vyskakovacím okně Maximální počet pokusů před zrušením stahování Pozastavit při přepnutí na mobilní data Stahování, která nelze pozastavit, budou restartována + Zobrazit komentáře + Deaktivovat zobrazování komentářů + Automatické přehrávání + + Komentáře + + + + Žádné komentáře + Nelze načíst komentáře + Přehrát přímo na pozadí + Zavřít \ No newline at end of file From 7ca026393b8fb736671af04990c8751a91950280 Mon Sep 17 00:00:00 2001 From: Karel S Date: Tue, 11 Jun 2019 21:42:42 +0000 Subject: [PATCH 016/122] Translated using Weblate (Czech) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-cs/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 96f1a7db8..360432f5b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -492,4 +492,5 @@ otevření ve vyskakovacím okně Nelze načíst komentáře Přehrát přímo na pozadí Zavřít + Stahování na externí SD kartu ještě není možné. Resetovat umístění složky pro stahování\? \ No newline at end of file From b1f27b9da7cabd753e1028f7d2d6cff177466cfd Mon Sep 17 00:00:00 2001 From: Lucas Ayala Date: Mon, 10 Jun 2019 20:47:45 +0000 Subject: [PATCH 017/122] Translated using Weblate (Spanish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-es/strings.xml | 63 +++++++++++++++----------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 46f8fcb17..7b01f80b7 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,11 +21,11 @@ Reproducir con Kodi Aplicación Kore no encontrada. ¿Instalarla? Mostrar opción \"Reproducir con Kodi\" - Mostrar una opción para reproducir vídeo con Kodi Media Center + Mostrar una opción para reproducir vídeo en Kodi Audio Formato de audio por defecto Descargar - Siguiente + A continuación URL no soportada Usar reproductor de vídeo externo Usar reproductor de audio externo @@ -40,7 +40,7 @@ (Experimental) Forzar la descarga a través de Tor para una mayor privacidad (transmisión de vídeos aún no compatible). No se puede crear la carpeta de descarga \'%1$s\' Carpeta de descarga creada \'%1$s\' - Aqui se almacena el audio descargado + Aquí se almacena el audio descargado Introducir ruta de descarga para archivos de audio Bloqueado por GEMA Carpeta de descarga de audio @@ -61,7 +61,7 @@ Las transmisiones en vivo aún no están soportadas Contenido Contenido restringido por edad - Muestra un vídeo restringido por edad. Se puede guardar esta modificación desde Ajustes. + Mostrar vídeo restringido por edad. Permitir tal contenido es posible desde Ajustes. Toque en buscar para empezar Reproducción automática Reproducir un vídeo cuando NewPipe es llamado desde otra app @@ -99,9 +99,9 @@ Servidor no soportado El archivo ya existe URL mal formada o Internet no disponible - Descarga de NewPipe + NewPipe está descargando Toque para ver detalles - Espere, por favor … + Espere, por favor... Copiado al portapapeles Por favor, seleccione un directorio de descarga disponible No se pudo cargar la imagen @@ -137,7 +137,7 @@ abrir en modo popup Recordar el último tamaño y posición del popup Popup Redimensionando - Elimina el audio en algunas resoluciones + Elimina el audio en ALGUNAS resoluciones Controles de gestos del reproductor Usar gestos para controlar el brillo y volumen del reproductor Sugerencias de búsqueda @@ -156,13 +156,13 @@ abrir en modo popup Streaming gratuito y ligero en Android. Ver en GitHub Licencia de NewPipe - Si tienes ideas de; traducción, cambios de diseño, limpieza de código o cambios de código realmente fuertes—la ayuda siempre es bienvenida. Cuanto más se hace, mejor se pone! + Si tienes ideas de; traducción, cambios de diseño, limpieza de código o grandes cambios de código—la ayuda siempre es bienvenida. Cuanto más se hace, mejor se pone! Leer licencia Contribuir Suscribirse Suscrito Canal no suscrito - No se pude cambiar la suscripción + No se pudo cambiar la suscripción No se pudo actualizar la suscripción Principal Suscripciones @@ -181,7 +181,7 @@ abrir en modo popup Almacenar historial de vídeos vistos Historial Buscado - Visualizado + Visto Historial desactivado Historial El historial está vacío @@ -194,7 +194,7 @@ abrir en modo popup Lista de reproducción Deshacer No hay resultados - Nada más que grillos + Aquí no hay nada más que grillos Sin suscriptores %s suscriptor @@ -219,7 +219,7 @@ abrir en modo popup Página de feed Página del canal Seleccione un canal - No hay canales suscritos todavía + No hay suscripciones a canales todavía Seleccione un kiosco Kiosco Tendencias @@ -237,11 +237,11 @@ abrir en modo popup Detalles Ajustes de audio [Desconocido] - Poner en cola de segundo plano - Poner en cola de popup + Añadir a cola en segundo plano + Añadir a cola en un popup nuevo Comenzar a reproducir aquí - Comenzar aquí en segundo plano - Comenzar aquí en popup + Comenzar a reproducir en segundo plano + Comenzar a reproducir en un popup nuevo Muestra el consejo \"Manten para poner en la cola\" Nuevo y popular Mantener para poner en la cola @@ -272,7 +272,7 @@ abrir en modo popup Cargando contenido solicitado Importar base de datos Exportar base de datos - Reemplazará su historial actual y sus suscripciones + Reemplaza tu historial actual y suscripciones Exportar historial, suscripciones y listas de reproducción Exportado Importado @@ -321,13 +321,13 @@ abrir en modo popup Usar búsqueda rápida inexacta La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión Auto-encolar la siguiente transmisión - Añadir de forma automática un vídeo relacionado con el último vídeo reproducido en una cola no repetitiva. + Añadir de forma automática un vídeo relacionado con el último vídeo reproducido en una cola no repetitiva DIRECTO SINCRONIZAR Archivo No existe el directorio - No existe la fuente del archivo/contenido - El archivo no existe o insuficientes permisos para leerlo o escribir en él + No existe la fuente de tal archivo/contenido + El archivo no existe o carece de los permisos para leer o escribir en él El nombre del archivo no puede estar vacío Ocurrió un error: %1$s Importar/exportar @@ -358,7 +358,7 @@ abrir en modo popup Cargar miniaturas Desactívalo para evitar la carga de miniaturas, ahorrando datos y uso de memoria. Los cambios borrarán tanto la caché de imágenes en la memoria como en el disco. Caché de imagen limpiado - Metadatos eliminados del caché + Eliminar metadatos de la caché Eliminar todos los datos de la página web en caché Metadatos del caché limpiados Controles de velocidad de reproducción @@ -380,7 +380,7 @@ abrir en modo popup ¿Eliminar todo el historial de búsqueda\? Historial de búsquedas eliminado. 1 elemento eliminado. - NewPipe es software libre copyleft: puedes usarlo, estudiarlo, compartirlo y mejorarlo a tu antojo. Específicamente, puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior. + NewPipe es un software copyleft libre: puedes usarlo, estudiarlo, compartirlo y mejorarlo a voluntad. Específicamente, puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior. ¿Desea importar también los ajustes? Política de Privacidad de NewPipe El proyecto NewPipe toma su privacidad muy en serio. Por lo tanto, la aplicación no recopila ningún dato sin su consentimiento. La política de privacidad de NewPipe explica en detalle qué datos se envían y almacenan cuando envía un informe de fallas. @@ -390,10 +390,10 @@ abrir en modo popup Declinar Sin límite Limitar la resolución cuando se usen datos móviles - Mimimizar al cambiar de aplicación + Minimizar al cambiar de aplicación Acción de cambiar a otra aplicación desde el reproductor principal — %s Ninguna - Minimizar al reproductor de fondo + Minimizar a reproductor en segundo plano Minimizar al reproductor popup Avance rápido durante el silencio Paso @@ -407,7 +407,7 @@ abrir en modo popup pausado en cola post-procesado - Encolar + Añadir a cola Acción denegada por el sistema Archivo borrado @@ -439,7 +439,7 @@ abrir en modo popup No se puede conectar con el servidor El servidor no devolvio datos El servidor no acepta descargas multi-hilos, intente de nuevo con @string/msg_threads = 1 - No se puede soicitar el rango. + Rango solicitado no satisfactorio No encontrado Fallo el post-procesado Desuscribirse @@ -469,4 +469,15 @@ abrir en modo popup Cambiar vista ¡Actualización de NewPipe disponible! Pulsa para descargar + Mostrar comentarios + Deshabilitar para dejar de mostrar comentarios + Reproducción automática + + Comentarios + + + Sin comentarios + No se pudo cargar comentarios + Reproducir directamente en segundo plano + Cerrar \ No newline at end of file From 3952c88510a05a8454459b986c375d83549458bd Mon Sep 17 00:00:00 2001 From: gabriellluz Date: Wed, 5 Jun 2019 12:09:35 +0000 Subject: [PATCH 018/122] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 798131f37..454961951 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -241,11 +241,11 @@ abrir em modo popup Configurações de Áudio Mantenha pressionado para colocar na fila [Desconhecido] - Adicionar a fila em Plano de Fundo - Adicionar a fila em Popup + Adicionar à fila em Plano de Fundo + Adicionar à fila em nova Popup Iniciar a reproduzir à partir daqui - Iniciar aqui quando estiver em Plano de Fundo - Iniciar aqui em novo popup + Iniciar a reprodução quando estiver em Plano de Fundo + Reproduzir em uma nova popup Doar NewPipe é desenvolvido por voluntários que usam seu tempo para trazer a melhor experiência para você. Retribua para ajudar os desenvolvedores a tornarem o NewPipe ainda melhor enquanto desfrutam uma xícara de café. Retribuir @@ -468,4 +468,15 @@ abrir em modo popup Número máximo de tentativas antes de cancelar o download Pausar quando trocar para dados móveis Downloads que não puderem ser pausados serão reiniciados + Exibir comentários + Desabilitar para parar de exibir comentários + Reprodução automática + + Comentários + + + Não há comentários + Não foi possível carregar comentários + Reproduzir diretamente em segundo plano + Fechar \ No newline at end of file From 08bc97582b3bb77dfee31132557cecb1255a10cc Mon Sep 17 00:00:00 2001 From: postsorino Date: Wed, 5 Jun 2019 19:17:43 +0000 Subject: [PATCH 019/122] Translated using Weblate (Greek) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-el/strings.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 68e93ba58..217176640 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -315,11 +315,11 @@ Λεπτομέρειες Ρυθμίσεις ήχου Πιέστε παρατεταμένα για να προστεθεί στην ουρά - Προσθήκη στην ουρά όταν είναι στο παρασκήνιο - Προσθήκη στην ουρά νέου Αναδυόμενου παραθύρου + "Προσθήκη στη λίστα αναπαραγωγής του παρασκήνιου" + Προσθήκη στη λίστα αναπαραγωγής νέου Αναδυόμενου παραθύρου Εκκίνηση Αναπαραγωγής εδώ - Εκκίνηση εδώ όταν είναι στο Παρασκήνιο - Εκκίνηση εδώ όταν είναι στο Αναδυόμενο Παράθυρο + Εκκίνηση αναπαραγωγής στο παρασκήνιο + Εκκίνηση αναπαραγωγής στο Αναδυόμενο Παράθυρο Άνοιγμα Συρταριού Κλείσιμο Συρταριού Κάτι θα παιχτεί εδω σύντομα ;D @@ -466,4 +466,15 @@ Μέγιστος αριθμός προσπαθειών προτού γίνει ακύρωση της λήψης Παύση με την εναλλαγή του δικτύου σε δεδομένα Οι λήψεις που δεν δέχονται παύση θα επανεκκινηθούν + Προβολή σχολίων + Απενεργοποίηση για διακοπή της εμφάνιση σχολίων + Αυτόματη αναπαραγωγή + + Σχόλια + + + Χωρίς σχόλια + Δεν ήταν δυνατή η φόρτωση σχολίων + Αναπαραγωγή απευθείας στο παρασκήνιο + Κλείσιμο \ No newline at end of file From b4ef44b34392999d3f3414920a772cb1a36dec8a Mon Sep 17 00:00:00 2001 From: THANOS SIOURDAKIS Date: Sat, 8 Jun 2019 20:47:08 +0000 Subject: [PATCH 020/122] Translated using Weblate (Greek) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 217176640..c2b1d0dce 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -267,7 +267,7 @@ Δεν ήταν δυνατή η φόρτωση της άδειας Περί Συνεισφέροντες - Ανοιχτού κώδικα, ελαφριά εφαρμογή του Android, για την αναπαραγωγή πολυμεσων από το ίντερνετ. + Ανοιχτού κώδικα, ελαφριά εφαρμογή Android, για την αναπαραγωγή πολυμεσων από το διαδίκτυο. Συνεισφέρετε Αν έχετε ιδέες για μετάφραση, αλλαγή σχεδιασμού, εκκαθάριση ή ριζικές αλλαγές κώδικα της εφαρμογής—η βοήθεια σας είναι πάντα ευπρόσδεκτη. Όσο περισσότερη έχουμε, τόσο καλύτεροι γινόμαστε! Δείτε το στο GitHub From a4274c6301084c376d863489018f7f3cbec967ac Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 5 Jun 2019 06:35:07 +0000 Subject: [PATCH 021/122] Translated using Weblate (Ukrainian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-uk/strings.xml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 60934ebb1..f08358a6d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -28,7 +28,7 @@ Програти у Kodi Застосунок Kore не знайдено. Встановити його\? Показати опцію \"Програти у Kodi\" - Показати опцію програвання відео у медіацентрі Kodi + Показати опцію програвання відео у Kodi Аудіо Типовий формат аудіо Тема @@ -290,11 +290,11 @@ Програвач у вікні Видалити Утримуйте, щоб додати до черги - Додати до черги при програванні у тлі - Додати до черги при програванні у вікні + Додати до фону + Додати до вікна Розпочати програвання звідси - Розпочати звідси при програванні у тлі - Розпочати звідси при програванні у вікні + Розпочати програвання на фоні + Розпочати програванні у вікні Відкрити бічну панель Закрити бічну панель Незабаром тут щось з\'явиться ;D @@ -469,4 +469,16 @@ Запитуваний діапазон неприпустимий Продовжити ваші %s відкладених переміщень із Завантажень Завантаження, що не можуть бути призупинені, будуть перезапущені + Показувати коментарі + Вимнути відображення дописів + Автопрогравання + + Коментарі + + + + Коментарі відсутні + Не вдалося підвантажити коментарів + Програвати у фоні + Закрити \ No newline at end of file From 59085ff8c8c52ead1b51ce6319383902e6c50bf0 Mon Sep 17 00:00:00 2001 From: naofum Date: Sat, 8 Jun 2019 01:38:39 +0000 Subject: [PATCH 022/122] Translated using Weblate (Japanese) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ja/strings.xml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 124c3580b..16e5d7b58 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -245,7 +245,7 @@ これにより、現在の設定が上書きされます。 バックグラウンド再生 ここから再生を開始 - ここからバックグランド再生を開始 + バックグランドで再生を開始 ドロワーを開く ドロワーを閉じる 動画プレーヤー @@ -339,7 +339,7 @@ 視聴回数 %s 回 - 本の動画 + 動画 1 つのアイテムが削除されました 支援する @@ -354,9 +354,9 @@ NewPipe バックグラウンドおよびポップアップのプレーヤーの通知 新着 & 人気 長押ししてキューに入れる - バックグラウンド再生のキューに入れる - ポップアップ再生のキューに入れる - ポップアップ時にここから開始 + バックグラウンドでキューに入れる + ポップアップでキューに入れる + 新しいポップアップで再生を開始 すぐにここに表示されます;D お好みの \'開く\' アクション コンテンツを開くときのデフォルト動作 — %s @@ -464,4 +464,14 @@ ダウンロードから %s の保留中の転送を続行します モバイルデータ通信に切替時に、一時停止する 一時停止できない場合は再開して継続されます + コメントを表示 + 無効にするとコメントの表示を停止します + 自動再生 + + コメント + + コメントはありません + コメントを読み込めませんでした + バックグラウンドで直接再生 + 閉じる \ No newline at end of file From b6e4afe321def29831852e6843c0b93cfd72b3e6 Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Wed, 5 Jun 2019 10:51:30 +0000 Subject: [PATCH 023/122] Translated using Weblate (Catalan) Currently translated at 97.1% (438 of 451 strings) --- app/src/main/res/values-ca/strings.xml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 4285a73dc..60b963c06 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -321,8 +321,8 @@ Encara no us heu subscrit a cap canal Novetats Manteniu premut per afegir a la cua - Reprodueix aquí en segon pla - Reprodueix aquí en mode emergent + Comença a reproduir en segon pla + Comença a reproduir en mode emergent Defineix com a miniatura de la llista de reproducció Afegeix la llista de reproducció a les adreces d\'interès Elimina l\'adreça d\'interès @@ -457,4 +457,14 @@ Nombre màxim d\'intents abans de cancel·lar la baixada Pausa en canviar a dades mòbils Les baixades que no es puguin pausar es tornaran a iniciar + Elimina la subscripció + Sobreescriu + No s\'ha trobat + Mostra els comentaris + Desactiva-ho per deixar de mostrar els comentaris + Reproducció automàtica + No hi ha comentaris + No s\'han pogut carregar els comentaris + Reprodueix directament en segon pla + Tanca \ No newline at end of file From 630cbc77a85fb6ea2d98f8a0aa5cf991273ef2b1 Mon Sep 17 00:00:00 2001 From: ssantos Date: Wed, 5 Jun 2019 19:21:53 +0000 Subject: [PATCH 024/122] Translated using Weblate (Portuguese) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-pt/strings.xml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 9db2e401a..ac6aa880e 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -27,7 +27,7 @@ Áudio Formato áudio padrão Descarregar - Seguinte + A seguir Mostrar vídeos \'Seguintes\' e \'Semelhantes\' URL não suportado Idioma padrão do conteúdo @@ -233,8 +233,8 @@ Detalhes Definições de áudio Iniciar reprodução aqui - Iniciar aqui se em segundo plano - Iniciar aqui em novo \'pop-up\' + Comecar a reproduzir em segundo plano + Comecar a reproduzir num novo popup Mostrar informação Listas de reprodução favoritas Serviço @@ -370,8 +370,8 @@ NewPipe é copyleft libre software: você pode usar, estudar, partilhar e melhorar a aplicação. Especificamente, você pode redistribuir e/ou modificar a aplicação nos termos da GNU General Public License, conforme publicada pela Free Software Foundation, tanto a versão 3 da licença ou (por sua opção) qualquer versão posterior. Deseja também importar as definições\? Toque longo para colocar na fila - Colocar em fila se estiver em segundo plano - Colocar em novo \'popup\' + Enfileirar em segundo plano + Enfileirar num novo popup Ação \'abrir\' preferida Ação padrão para abrir o conteúdo — %s Definir como miniatura da lista de reprodução @@ -466,4 +466,15 @@ Descarregamentos que não podem ser pausados serão reiniciados Eventos Conferências + Mostrar comentários + Desativar para parar de mostrar comentários + Reprodução automática + + Comentários + + + Sem comentários + Não foi possível carregar comentários + Reproduzir diretamente no fundo + Fechar \ No newline at end of file From 196117998af4fdd45e270354fa0603d398fb2352 Mon Sep 17 00:00:00 2001 From: Stjepan Date: Wed, 5 Jun 2019 11:16:22 +0000 Subject: [PATCH 025/122] Translated using Weblate (Croatian) Currently translated at 99.3% (448 of 451 strings) --- app/src/main/res/values-hr/strings.xml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index e7aeb924a..faf828444 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -246,10 +246,10 @@ Doniraj Web stranica Ovdje započni reprodukciju - Ovdje započni repr. u pozadini + Započni reprodukciju u pozadini Dodaj na red čekanja u pozadini Dodaj na red u novom skočnom prozoru - Započni ovdje u Skočnom prozoru + Započni reprodukciju u skočnom prozoru Otvori ladicu Zatvori ladicu Nešto će se uskoro pojaviti :D @@ -393,7 +393,7 @@ Uklonite sve podatke iz privremenih web-stranica Metapodaci su izbrisani Automatski dodaj u red sljedeće strujanje - Automatsko dodavanje povezanog videozapisa tijekom reprodukcije posljednjeg videozapisa u neponavljajućem redu. + Automatsko dodavanje povezanog videozapisa tijekom reprodukcije posljednjeg videozapisa u neponavljajućem redu Kontrola glasnoće pomoću gesti Koristi gesture za kontrolu glasnoće Kontrola svjetline pomoću gesti @@ -468,4 +468,16 @@ Maksimalni broj pokušaja prije poništavanja preuzimanja Pauziraj prilikom prebacivanja na mobilne podatke Preuzimanja koja se ne mogu zaustaviti ponovno će se pokrenuti + Prikaži komentare + Onemogućite da biste prestali prikazivati komentare + Automatska reprodukcija + + Komentari + + + + Nema komentara + Komentare nije moguće učitati + Sviraj izravno u pozadini + Zatvori \ No newline at end of file From 90c525e99a38f58d314d65e1e156af50503af460 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Tue, 4 Jun 2019 12:28:54 +0000 Subject: [PATCH 026/122] Translated using Weblate (Hebrew) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-he/strings.xml | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 9edee2411..a434f1a71 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -52,7 +52,7 @@ הצעות חיפוש הצגת הצעות בעת החיפוש הורדה - הבא + הבא בתור להציג סרטונים דומים ובאים בתור כתובת לא נתמכת שפת התוכן המועדפת @@ -251,11 +251,11 @@ פרטים אפשרויות שמע להחזיק כדי להוסיף לרשימת נגינה - להוסיף לרשימת הנגינה בעת נגינת רקע - הוספה לרשימת הנגינה בנגן הצף + להוסיף לרשימת הנגינה ברקע + הוספה לתור בנגן צף חדש להתחיל לנגן מכאן - "להתחיל מכאן כאשר נגן הרקע מופעל" - להתחיל כאן בנגן הצף + להתחיל לנגן ברקע + להתחיל לנגן בחלון צף חדש הורדת קובץ הזרמה הצגת מידע רשימות נגינה מסומנות @@ -473,4 +473,17 @@ מספר הניסיונות החוזרים המרבי בטרם ביטול ההורדה להשהות בעת מעבר לתקשורת נתונים סלולרית הורדות שלא ניתן להשהות יופעלו מחדש + הצגת תגובות + יש להשבית כדי להפסיק הצגת תגובות + ניגון אוטומטי + + תגובות + + + + + אין תגובות + לא ניתן לטעון תגובות + לנגן ישירות ברקע + סגירה \ No newline at end of file From 429a9a42d391d550624661767ff99f7744f81138 Mon Sep 17 00:00:00 2001 From: WaldiS Date: Thu, 6 Jun 2019 19:09:18 +0000 Subject: [PATCH 027/122] Translated using Weblate (Polish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-pl/strings.xml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b926808c5..416d49bfa 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -36,7 +36,7 @@ Ciemny Jasny Pobrane - Następny + Dalej do góry Pokaż \"następne\" i \"podobne\" filmy Nieobsługiwany adres URL Domyślny język treści @@ -249,10 +249,10 @@ Ustawienia dźwięku Przytrzymaj, aby zakolejkować Kolejkuj w tle - Kolejkuj w okienku + Kolejkuj w nowym wyskakującym okienku Zacznij odtwarzać tutaj - Odtwórz w tle - Zacznij tutaj w nowym wyskakującym okienku + Zacznij odtwarzać w tle + Zacznij odtwarzać w nowym wyskakującym okienku Nie znaleziono odtwarzacza strumieniowego (żeby odtworzyć, możesz zainstalować VLC). Domyślny kraj treści Usługa @@ -470,4 +470,16 @@ Pobierane pliki, których nie można wstrzymać, zostaną zrestartowane Zdarzenia Konferencje + Pokaż komentarze + Wyłącz, aby przestać wyświetlać komentarze + Automatyczne odtwarzanie + + Komentarze + + + + Brak komentarzy + Nie można załadować komentarzy + Odtwarzaj bezpośrednio w tle + Zamknij \ No newline at end of file From 472fd72c82b30af6bdeb8a3375bd9088c0bf728c Mon Sep 17 00:00:00 2001 From: pjammo Date: Wed, 5 Jun 2019 19:09:22 +0000 Subject: [PATCH 028/122] Translated using Weblate (Italian) Currently translated at 98.2% (443 of 451 strings) --- app/src/main/res/values-it/strings.xml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8d531e958..44d9c2660 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -243,8 +243,8 @@ In coda in sottofondo In coda nel riproduttore a comparsa Inizia la riproduzione qui - Inizia qui in sottofondo - Inizia qui nel riproduttore a comparsa + Avvia riproduzione in sottofondo + Avvia riproduzione a comparsa Dona Sito web Visita il sito web di NewPipe per maggiori informazioni e novità. @@ -473,4 +473,15 @@ I download che non possono essere messi in pausa verranno riavviati Eventi Conferenze + Mostra commenti + Disattiva per non visualizzare i commenti + Riproduzione automatica + + Commenti + + + Non ci sono commenti + Impossibile caricare i commenti + Riproduci direttamente in sottofondo + Chiudi \ No newline at end of file From 21eff0b2ecaf408fd3e6e120bcc11a00d30fa8ad Mon Sep 17 00:00:00 2001 From: Michael Moroni Date: Fri, 7 Jun 2019 17:59:03 +0000 Subject: [PATCH 029/122] Translated using Weblate (Italian) Currently translated at 98.2% (443 of 451 strings) --- app/src/main/res/values-it/strings.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 44d9c2660..a494613c7 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -5,14 +5,14 @@ Nessun lettore multimediale trovato. Vuoi installare VLC\? Installa Annulla - Apri nel Browser + Apri nel browser Condividi Scarica Cerca Impostazioni Intendevi: %1$s\? Condividi con - Scegli Browser + Scegli browser rotazione Percorso dei video scaricati Cartella in cui salvare i video scaricati @@ -37,8 +37,8 @@ Mi piace Impossibile creare la cartella di download \'%1$s\' Creata la cartella per i download \'%1$s\' - Usa Lettore Video Esterno - Usa Lettore Audio Esterno + Usa un lettore video esterno + Usa un lettore audio esterno Cartella degli audio scaricati Cartella in cui salvare gli audio scaricati Inserisci la cartella per gli audio scaricati @@ -118,8 +118,8 @@ È richiesta la risoluzione del reCAPTCHA Più tardi - Apri in Modalità Popup - Modalità Popup di NewPipe + Apri in modalità popup + Modalità popup di NewPipe Riproduzione in modalità popup Disattivato Non riproduce l\'audio con ALCUNE risoluzioni @@ -161,7 +161,7 @@ Informazioni su NewPipe Iscriviti Iscritto - Disiscritto dal Canale + Disiscritto dal canale Impossibile cambiare l\'iscrizione Impossibile aggiornare l\'iscrizione Iscrizioni From 25c3669564f4548712783d4048cb30898624ef31 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Tue, 4 Jun 2019 18:21:51 +0000 Subject: [PATCH 030/122] Translated using Weblate (Arabic) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ar/strings.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index be8814386..984f01e84 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -26,7 +26,7 @@ مضيء صور معاينة الفيديو خطأ في الشبكة - التالي + إلى التالية لا يوجد مشغل فيديو. هل تريد تثبيت VLC ؟ افتح في المتصفح الصوت @@ -261,7 +261,7 @@ الكشك إدراج في قائمة الانتظار في الخلفية إدراج في قائمة الانتظار على المنبثقة - تشغيل في الخلفية + ابدأ التشغيل في الخلفية المحتوى الإفتراضي حسب البلد تغيير الإتجاه الإنتقال إلى التشغيل في الخلفية @@ -484,4 +484,19 @@ الحد الأقصى لعدد محاولات قبل إلغاء التحميل "ايقاف عند التحويل إلى البيانات المتنقلة" سيتم إعادة تحميل التنزيلات التي لا يمكن إيقافها + إظهار التعليقات + عطّله لإيقاف عرض التعليقات + تشغيل تلقائي + + التعليقات + + + + + + + لا توجد تعليقات + تعذر تحميل التعليقات + التشغيل مباشرة في الخلفية + إغلاق \ No newline at end of file From cc89a342edcef5592a382db20e783d4dadfcb276 Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Wed, 5 Jun 2019 09:55:45 +0000 Subject: [PATCH 031/122] Translated using Weblate (Arabic) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ar/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 984f01e84..f5f8e1723 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -235,7 +235,7 @@ التفاصيل الإعدادات الصوتية تشغيل هنا - تشغيل هنا في وضع النافذة المنبثقة + تشغيل في وضع النافذة المنبثقة تحدي الكابتشا اضغط للإدراج في قائمة الانتظار From a14033afb77ab12eb581a0b903bf8d108b6d25fa Mon Sep 17 00:00:00 2001 From: zmni Date: Mon, 10 Jun 2019 13:40:29 +0000 Subject: [PATCH 032/122] Translated using Weblate (Indonesian) Currently translated at 99.8% (450 of 451 strings) --- app/src/main/res/values-id/strings.xml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 56f31eac6..8407b8f5b 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -184,7 +184,7 @@ Hapus tembolok metadata Buang semua data tembolok laman web Cache metadata dihapus - Otomatis tambahkan stream terkait ketika memutar stream terakhir dalam antrean tanpa perulangan. + Otomatis tambahkan stream terkait ketika memutar stream terakhir dalam antrean tanpa perulangan Simpan daftar video yang telah ditonton Tampilkan tip \"Tahan untuk menambahkan\" Tampilkan tip ketika tombol latar belakang atau popup disentuh pada halaman detail video @@ -281,11 +281,11 @@ Detail Pengaturan Audio Tahan untuk mengantre - Antre saat di latar belakang + Antre di latar belakang Antre di popup baru Mulai putar di sini - Mulai dari sini ketika di latar belakang - Mulai dari sini pada popup baru + Mulai putar di latar belakang + Mulai putar di popup baru Buka Laci Tutup Laci Sesuatu akan segera muncul di sini ;D @@ -469,4 +469,14 @@ Jumlah upaya maksimum sebelum membatalkan unduhan Berhenti ketika beralih ke data seluler Unduhan yang tidak dapat dijeda akan diulang dari awal + Tampilkan komentar + Nonaktifkan untuk berhenti menampilkan komentar + Otomatis putar + + Komentar + + Tidak ada komentar + Tidak bisa memuat komentar + Putar di latar belakang + Tutup \ No newline at end of file From 086cceb271abc787d44c3fa2003bc350e20fec95 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Wed, 5 Jun 2019 10:35:22 +0000 Subject: [PATCH 033/122] Translated using Weblate (Dutch) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-nl/strings.xml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 04b47c4c8..bedca9e76 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -240,11 +240,11 @@ Audio-instellingen Houd ingedrukt om toe te voegen aan wachtrij [Onbekend] - Toevoegen aan wachtrij wanneer in de achtergrond - Toevoegen aan wachtrij bij nieuwe pop-up + Toevoegen aan wachtrij in de achtergrond + Toevoegen aan wachtrij in nieuwe pop-up Begin hier met afspelen - Begin hier met afspelen wanneer op de achtergrond - Begin hier met afspelen in nieuwe pop-up + Begin hier met afspelen in de achtergrond + Begin met afspelen in nieuwe pop-up Doneren NewPipe wordt door vrijwilligers in hun vrije tijd ontwikkeld om jou de beste ervaring te brengen. Geef wat terug zodat onze ontwikkelaars NewPipe nóg beter kunnen maken terwijl ze van hun kopje koffie genieten. Teruggeven @@ -325,7 +325,7 @@ Snelle, minder exact spoelen gebruiken Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie Volgende stream automatisch in wachtrij plaatsen - Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst. + Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst SYNCHRONISEREN Bestand Deze map bestaat niet @@ -473,4 +473,15 @@ Downloads die niet kunnen worden gepauzeerd zullen worden herstart Gebeurtenissen Conferenties + Reacties tonen + Schakel dit uit om reacties niet meer te tonen + Automatisch afspelen + + Reacties + + + Geen reacties + Kan reacties niet laden + Direct spelen in achtergrond + Sluiten \ No newline at end of file From be423939edf5c2f725d2dd6a35472ab388fb4323 Mon Sep 17 00:00:00 2001 From: Prashant Shahi Date: Wed, 5 Jun 2019 15:25:45 +0000 Subject: [PATCH 034/122] Translated using Weblate (Nepali) Currently translated at 6.0% (27 of 451 strings) --- app/src/main/res/values-ne/strings.xml | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index a6b3daec9..2f574dd43 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -1,2 +1,30 @@ - \ No newline at end of file + + सुरू गर्न खोज चिन्ह दाब्नुहोस् + %1$s हेराइहरू + %1$s मा प्रकाशित + कुनै स्ट्रिम प्लेयर फेला परेन। के तपाईं VLC इन्स्टल गर्न चाहनुहुन्छ\? + कुनै स्ट्रीम प्लेयर फेला परेन (तपाइँ यसलाई प्ले गर्न VLC इन्स्टल गर्न सक्नुहुन्छ)। + इन्स्टल गर्नुहोस् + रद्द गर्नुहोस् + ब्राउजरमा खाेल्नुहाेस् + पपअप मोडमा खोल्नुहोस् + बांडनुहोस् + डाउनलोड + स्ट्रीम डाउनलोड गर्नुहोस् + खोजी + सेटिङ + के तपाईको मतलब %1$s हो\? + बांडनुहोस् + ब्राउजर रोज्नुहोस् + स्क्रीन रोटेशन + अन्य भिडियो प्लेयर प्रयोग गर्नुहोस् + केही प्रस्तावहरूमा अडियो हटाउँदछ + अन्य अडियो प्लेयर प्रयोग गर्नुहोस् + नयाँ पाइप पपअप मोड + सदस्यता लिनुहोस् + सदस्यता लगिसकेको + सदस्यता रद्द गर्नुहोस् + च्यानल सदस्यता रद्द गरियो + सदस्यता परिवर्तन गर्न सकिएन + \ No newline at end of file From 79717859b351e9c78df142b8217922bcac168a59 Mon Sep 17 00:00:00 2001 From: Florian Date: Tue, 4 Jun 2019 16:58:27 +0000 Subject: [PATCH 035/122] Translated using Weblate (French) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-fr/strings.xml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 504c0e0c4..2500159a9 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -243,7 +243,7 @@ Mettre en file d\'attente en arrière-plan Mettre en file d\'attente en fenêtré Commencer la lecture ici - Démarrer ici en arrière-plan + Commencer à jouer en arrière-plan Démarrer ici en fenêtré Donner NewPipe est développé par des volontaires sur leur temps libre afin de vous proposer la meilleure expérience possible. Vous pouvez leur offrir un café pour les soutenir dans leurs efforts et rendre NewPipe encore meilleur. @@ -472,4 +472,15 @@ Le serveur n\'accepte pas les téléchargements multi-threads, réessayez avec @string/msg_threads = 1 Continuer vos %s transferts en attente depuis Téléchargement Champs d’en-tête de requête « range » incorrect + Afficher les commentaires + Désactiver l\'affichage des commentaires + Lecture automatique + + Commentaires + + + Pas de commentaires + Impossible de charger les commentaires + Jouer directement en arrière-plan + Fermer \ No newline at end of file From 2a57d74f1a320ad23807699885000bd8e1d0d1d6 Mon Sep 17 00:00:00 2001 From: Arnaud Jacquemin Date: Tue, 4 Jun 2019 17:56:00 +0000 Subject: [PATCH 036/122] Translated using Weblate (French) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2500159a9..777a69b5a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -244,7 +244,7 @@ Mettre en file d\'attente en fenêtré Commencer la lecture ici Commencer à jouer en arrière-plan - Démarrer ici en fenêtré + Commencer la lecture ici, en fenêtré Donner NewPipe est développé par des volontaires sur leur temps libre afin de vous proposer la meilleure expérience possible. Vous pouvez leur offrir un café pour les soutenir dans leurs efforts et rendre NewPipe encore meilleur. Site From 3c0d7de3773ccf3a5709a13d2dec3def993ae2e6 Mon Sep 17 00:00:00 2001 From: Nathan Follens Date: Wed, 5 Jun 2019 10:37:55 +0000 Subject: [PATCH 037/122] Translated using Weblate (Flemish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-nl-rBE/strings.xml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 51a30aa36..04bce77d9 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -69,7 +69,7 @@ Alle gecachete webpagina-gegevens wissen Metagegevens-cache gewist Volgende stream automatisch in wachtrij plaatsen - Automatisch ne gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst. + Automatisch ne gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende wachtlijst Veegbesturing Gebruikt vegen voor de helderheid en het volume van de speler aan te passen Zoeksuggesties @@ -299,11 +299,11 @@ Details Audio-instellingen Houdt ingedrukt voor toe te voegen aan wachtrij - Toevoegen aan wachtrij wanneer op de achtergrond - Toevoegen aan wachtrij bij nieuwe pop-up + Toevoegen aan wachtrij in de achtergrond + Toevoegen aan wachtrij in nieuwe pop-up Begint hier met afspelen - Begint hier met afspelen wanneer op de achtergrond - Begint hier met afspelen in nieuwe pop-up + Begint met afspelen in de achtergrond + Begint met afspelen in nieuwe pop-up Menu openen Menu sluiten Hier zal der binnenkort iets verschijnen ;D @@ -467,4 +467,15 @@ Maximaal aantal pogingen vooraleer dat den download wordt geannuleerd Pauzeren bij overschakelen naar mobiele gegevens Downloads die dat niet kunnen gepauzeerd worden gaan herstart worden + Commentaren weergeven + Schakelt dit uit voor reacties niet meer weer te geven + Automatisch afspelen + + Commentaren + + + Geen commentaren + Kan commentaren niet laden + Rechtstreeks in achtergrond afspelen + Sluiten \ No newline at end of file From f1f914743324ce21155b504ba67d445f946313e2 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 4 Jun 2019 12:42:06 +0000 Subject: [PATCH 038/122] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-zh-rTW/strings.xml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c7fa46b6b..b2d9d1ae8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -30,7 +30,7 @@ 灰暗 明亮 下載 - 下一部 + 接下來 顯示「下一部」與「相關」的影片 不支援此網址 預設內容語言 @@ -261,11 +261,11 @@ 移除 詳細資訊 音訊設定 - 當背景時佇列 - 在新懸浮視窗時佇列 + 在背景加入佇列 + 在新的彈出式視窗中加入佇列 從這裡開始播放 - 當背景時從這裡開始 - 懸浮視窗時從這裡開始 + 在背景開始播放 + 在新彈出式視窗中開始播放 長按以新增至佇列 NewPipe 由志願者所開發,他們耗費時間務求為您帶來最佳體驗。現在是時候回過頭來,讓我們的開發人員能夠在使 NewPipe 更臻完美的同時,享受一杯咖啡。 打開抽屜 @@ -469,4 +469,14 @@ 無法暫停的下載將會重新開始 事件 會議 + 顯示留言 + 停用以停止顯示留言 + 自動播放 + + 留言 + + 沒有留言 + 無法載入留言 + 直接在背景播放 + 關閉 \ No newline at end of file From a15ef4b7ce0b1e5625923c487b20b6a8e47ef583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Tue, 4 Jun 2019 20:25:28 +0000 Subject: [PATCH 039/122] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 94.9% (428 of 451 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 124 +++++---------------- 1 file changed, 29 insertions(+), 95 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index a806df31a..d1a2354c3 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -16,15 +16,12 @@ sideoppsett Bruk ekstern videoavspiller Bruk ekstern lydavspiller - Videoens nedlastingssti Mappe lagrede nedlastinger skal puttes i Skriv inn nedlastingssti for videoer - Nedlastingsmappe for lyd Nedlastet lyd lagres her Skriv inn nedlastingssti for lydfiler - Forvalgt oppløsning Spill av med Kodi Kore-programmet ble ikke funnet. Installer det? @@ -35,7 +32,6 @@ Drakt Mørk Lys - Last ned Neste Vis \"Neste\" og \"Lignende\" -videoer @@ -47,7 +43,6 @@ Spiller i bakgrunnen Spill av Nettverksfeil - Video-forhåndsvisning i miniatyrbilde Miniatyrbilde for video-forhåndsvisning Opplasterens avatar @@ -55,7 +50,6 @@ Nesetrekk Bruk Tor (Eksperimentelt) Tving nedlasting av trafikk gjennom Tor for forbedret personvern (strømming av videoer støttes ikke enda). - Kan ikke opprette nedlastingsmappe \'%1$s\' Opprettet nedlastingsmappen \'%1$s\' Trykk for å komme i gang @@ -82,31 +76,23 @@ Hva skjedde: Din kommentar (på Engelsk): Detaljer: - - Rapporter en feil Brukerrapport - Video Audio Prøv igjen Tilgang til lagring nektet Direkteoverført - Nedlastinger Nedlastinger Feilrapport - Kunne ikke laste bilde Program/brukergrensesnitt kræsjet Pause Spill Slett Sjekksum - OK - - Filnavn Tråder Feil @@ -121,50 +107,37 @@ Nytt mål Feilaktig nettadresse eller manglende internettilknytning Velg ei tilgjengelig nedlastingsmappe - reCAPTCHA reCAPTCHA-oppgave - Åpne i oppsprettsmodus NewPipe oppsprettsmodus - Forvalgt oppsprettsoppløsning Vis høyere oppløsninger Det er bare noen enheter som støtter avspilling av 2K-/4K-videoer Forvalgt videoformat Svart - Spiller av i oppsprettsmodus Alle Kanal Ja Senere Avskrudd - - K M Mrd. - Denne tilgangen trengs for åpning i oppsprettsmodus - reCAPTCHA-oppgave forespurt - Fjerner lyd ved NOEN oppløsninger Abonner Abonnert Kanalabonnent oppsagt Klarte ikke å endre abonnement Klarte ikke å oppdatere abonnement - Abonnementer - Hva er nytt - Bakgrunn Oppsprett - Husk oppsprettsstørrelse og posisjon Husk siste størrelse og posisjon for oppsprettsvinduet Søkeforslag @@ -179,18 +152,14 @@ Tøm Endrer størrelse Beste oppløsning - NewPipe-merknad Merknad for NewPipe-bakgrunn og oppsprettsspillere - Last ned Tillate tegn i filnavn Ugyldige tegn erstattes av denne verdien Erstatningstegn - Bokstaver og tall De fleste spesialtegn - Om NewPipe Innstillinger Om @@ -212,34 +181,28 @@ Historikk og mellomlagring Spilleliste Angre - Ingen resultater Bare ufisk her - Ingen abonnenter - %s abonnent - %s abonnenter - - + %s abonnent + %s abonnenter + Ingen visninger - %s visning - %s visninger - - + %s visning + %s visninger + Ingen videoer - video - videoer - - + video + videoer + Vis på GitHub NewPipe sin lisens Hvorvidt du har idéer vedrørende oversettelser, designendringer, koderenskning, eller tunge kodeendringer—hjelp er alltids kjærkommen. Desto mer som gjøres, desto bedre blir det! Les lisensen Bidra - Historikk Søk Sett @@ -248,9 +211,8 @@ Historikken er tom Historikk tømt Element slettet -Ønsker du å slette dette elementet fra søkehistorikken? -Spill av alle - + Ønsker du å slette dette elementet fra søkehistorikken? + Spill av alle Kunne ikke spille av denne strømmen Uopprettelig avspillerfeil oppstod Blank side @@ -259,7 +221,6 @@ Kanalside Velg en kanal Velg en kiosk - Kiosk Topp 50 Nytt og hett @@ -269,14 +230,12 @@ Detaljer Lydinnstillinger Hold for å legge i kø -Vis \"Hold for å legge til\" -tips + Vis \"Hold for å legge til\" -tips Vis tips når bakgrunns- eller oppsårettsknapp trykkes på siden for videodetaljer Lagt i kø for bakgrunnsavspiller Lagt i kø for oppsprettsspiller [Ukjent] - Gjenoppretter fra spillerfeil - Hovedsidens innhold Strømside Abonnerer ikke på noen kanaler enda @@ -286,7 +245,7 @@ Start avspilling her Start her når i bakgrunnen Start her ved nytt oppsprettsvindu -Doner + Doner NewPipe utvikles av frivillige som bruker deres fritid til å gi deg den beste opplevelsen. Gi tilbake for å hjelpe utviklere å gjøre NewPipe enda bedre, mens de nyter en varm kopp kaffe. Bidra Nettside @@ -297,25 +256,21 @@ Bytt til bakgrunnsmodus Bytt til oppsprettsmodus Bytt til hovedmodus - Åpne skuff Lukk skuff Ingen strømmespiller installert (du kan installere VLC for å spille den). Alltid Kun én gang - Eksterne avspillere kan ikke spille lenker av disse typene Ugyldig nettadresse Fant ingen videostrømmer Fant ingen lydstrømmer - Videoavspiller Bakgrunnsavspiller Oppsprettsavspiller - Henter informasjon… Laster forespurt innhold -Importer database + Importer database Eksporter database Overstyrer din nåværende historikk og abonnementsliste Eksporter historikk, abonnementer og spillelister @@ -324,77 +279,59 @@ Ingen gyldig ZIP-fil ADVARSEL: Kunne ikke importere alle filer. Dette vil overskrive ditt nåværende oppsett. - Last ned strøm-fil Vis info - Bokmerkede spillelister - Legg til i - Dra for å omorganisere - Opprett Slett én Slett alle Forkast Gi nytt navn - Ønsker du å slette dette elementet fra oppsynshistorikken? Er du sikker på at du ønsker å slette alle elementene fra historikken? Sist spilt Mest spilt - Alltid spør - Ny spilleliste Slett Gi nytt navn Navn Legg til i spilleliste Sett som miniatyrbilde for spilleliste - Bokmerk spilleliste Fjern bokmerke - Slett denne spillelisten\? Spilleliste opprettet Lagt til i spilleliste Miniatyrbilde for spilleliste endret. Kunne ikke slette spilleliste. - Ingen bildetekster - Tilpass Fyll Forstørr - Bildetekstens størrelse Mindre skrift Normal skrift Større skrift -Bruk raskt unøyaktig blafring + Bruk raskt unøyaktig blafring Feilretting Fil - Ingen slik mappe Ingen slik fil/innholdskilde Filen finnes ikke eller så har du ikke tilgang til å lese eller skrive til den Filnavn kan ikke være tomt. En feil inntraff: %1$s - Auto-generert Skru på LeakCanary Importer Importer fra Eksporter til - Importerer… Eksporterer… - Importer fil Forrige eksport - Last miniatyrbilder Bildehurtiglager tømt Tøm hurtiglagret metadata @@ -402,25 +339,19 @@ Metadatahurtiglager tømt Sett neste strøm i kø automatisk Ingen strømmer tilgjengelige for nedlasting - Noe vil bli presentert her snart ;D - - Foretrukket åpningshandling Forvalgt handling ved åpning av innhold — %s - Importer/eksporter din-ID, soundcloud.com/dinid - Husk at denne handlingen kan belaste nettverket tungt. \n \nØnsker du å fortsette? - Fartskontroller for avspilling Tempo Tonehøyde Forvalg -Tøm avspillingshistorikk + Tøm avspillingshistorikk Slett historikken for avspilte strømmer Slett hele visningshistorikken\? Visningshistorikk slettet. @@ -429,18 +360,13 @@ Slett hele søkehistorikken\? Søkehistorikk slettet. Ett element slettet. - Inget program installert for avspilling av denne filen - Undertekster Endre undertekststørrelse og bakgrunnsstiler. Krever omstart av programmet for å tre i effekt. - NewPipe er copyleft, fri programvare: Du kan bruke, studere og forbedre etter egen vilje. Spesifikt kan du redistribuere og/eller modifisere det i henhold til vilkårene gitt i GNU General Public-lisensen, som publisert av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget ønske) enhver senere versjon. Ønsker du også å importere innstillinger? - Kunne ikke importere abonnementer Kunne ikke eksportere abonnementer - Importer YoutTube-abonnementer ved å laste ned eksportfilen: \n \n1. Gå til denne nettadressen: %1$s @@ -455,10 +381,8 @@ Skru av for å stoppe innlasting av miniatyrbilder, noe som sparer data- og minnebruk. Endring av dette vil tømme både disk- og minne-hurtiglager. Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø. Minnelekkasjeoppsyn kan forårsake programmet å opptre uresponsivt under haugdumping - Rapporter feil som opptrer utenfor sin levetid Tving rapportering av uleverbare Rx-unntak utenom fragment eller aktivitetslevetid etter forkastelse - Avhekt (kan forårsake forvrenging) Nightcore NewPipes personvernspraksis @@ -469,15 +393,14 @@ \nDu må godta den for å sende oss feilrapporten. Godta Avslå -Ubegrenset + Ubegrenset Begrens oppløsning når mobildata brukes Minimer ved programbytte Handling ved bytting til annet program fra hovedspiller — %s Ingen Minimer til bakgrunnsspiller Minimer til oppsprettsspiller - -Kanaler + Kanaler Spillelister Spor Brukere @@ -548,4 +471,15 @@ Maksimalt antall tilkoblingsforsøk før nedlastingen avblåses Pause ved veksling til mobildata Nedlastinger som ikke kan pauses vil bli startet på nytt + Vis kommentarer + Skru av for å stoppe visning i kommentarer + Spill av automatisk + + Kommentarer + + + Ingen kommenterer + Kunne ikke laste inn kommentarer + Spill direkte i bakgrunnen + Lukk \ No newline at end of file From 5252834075e94b722ba7d4572e4fd069f3d850fb Mon Sep 17 00:00:00 2001 From: JoC Date: Fri, 14 Jun 2019 06:46:49 +0000 Subject: [PATCH 040/122] Translated using Weblate (Spanish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-es/strings.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7b01f80b7..b7acfa9eb 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -40,7 +40,7 @@ (Experimental) Forzar la descarga a través de Tor para una mayor privacidad (transmisión de vídeos aún no compatible). No se puede crear la carpeta de descarga \'%1$s\' Carpeta de descarga creada \'%1$s\' - Aquí se almacena el audio descargado + El audio descargado se almacena aquí Introducir ruta de descarga para archivos de audio Bloqueado por GEMA Carpeta de descarga de audio @@ -51,7 +51,7 @@ No se pudo cargar las miniaturas No se pudo descifrar la URL del vídeo No se pudo analizar el sitio web - Mostrar vídeos \'siguientes\' y \'similares\' + Mostrar videos \'siguientes\' y \'similares\' Idioma del contenido por defecto Vista previa del vídeo Vista previa del vídeo @@ -61,7 +61,7 @@ Las transmisiones en vivo aún no están soportadas Contenido Contenido restringido por edad - Mostrar vídeo restringido por edad. Permitir tal contenido es posible desde Ajustes. + Mostrar vídeo restringido por edad. Permitir este contenido es posible desde Ajustes. Toque en buscar para empezar Reproducción automática Reproducir un vídeo cuando NewPipe es llamado desde otra app @@ -101,7 +101,7 @@ URL mal formada o Internet no disponible NewPipe está descargando Toque para ver detalles - Espere, por favor... + Por favor espere... Copiado al portapapeles Por favor, seleccione un directorio de descarga disponible No se pudo cargar la imagen @@ -232,7 +232,7 @@ abrir en modo popup Se produjo un error irrecuperable del reproductor Recuperándose del error del reproductor Reproductor en segundo plano - Reproductor popup + Reproductor emergente Quitar Detalles Ajustes de audio @@ -279,7 +279,7 @@ abrir en modo popup Archivo ZIP no válido ADVERTENCIA: no se pudieron importar todos los archivos. Esto reemplazará su configuración actual. - Descargar archivo stream + Descargar archivo de stream Mostrar info "Listas de reproducción en marcadores " Añadir a @@ -326,7 +326,7 @@ abrir en modo popup SINCRONIZAR Archivo No existe el directorio - No existe la fuente de tal archivo/contenido + No existe la fuente del archivo/contenido El archivo no existe o carece de los permisos para leer o escribir en él El nombre del archivo no puede estar vacío Ocurrió un error: %1$s @@ -370,7 +370,7 @@ abrir en modo popup Acción por defecto al abrir contenido — %s No hay ninguna app instalada para reproducir este archivo Subtítulos - Modificar la escala de texto de los subtítulos y los estilos de fondo del reproductor. Requiere el reinicio de la app para que surta efecto. + Modificar la escala de texto de los subtítulos y los estilos de fondo. Requiere reiniciar la app para que surta efecto. Borrar historial de reproducciones Elimina el historial de las transmisiones reproducidas ¿Eliminar todo el historial de reproducciones\? @@ -394,7 +394,7 @@ abrir en modo popup Acción de cambiar a otra aplicación desde el reproductor principal — %s Ninguna Minimizar a reproductor en segundo plano - Minimizar al reproductor popup + Minimizar al reproductor flotante Avance rápido durante el silencio Paso Reiniciar @@ -442,7 +442,7 @@ abrir en modo popup Rango solicitado no satisfactorio No encontrado Fallo el post-procesado - Desuscribirse + Cancelar suscripción Nueva pestaña Elige la pestaña Control de volumen por gestos @@ -474,7 +474,7 @@ abrir en modo popup Reproducción automática Comentarios - + Sin comentarios No se pudo cargar comentarios From 9c2cf9eef7b6bbca00ec44c8d8b9aa9d92904ca3 Mon Sep 17 00:00:00 2001 From: minsk21 Date: Sun, 16 Jun 2019 12:58:30 +0000 Subject: [PATCH 041/122] Translated using Weblate (Belarusian) Currently translated at 73.4% (331 of 451 strings) --- app/src/main/res/values-be/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index fe6dd7fe6..c9423d649 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -406,4 +406,5 @@ Фонавы плэер Плэер у акне Адпісацца + Іграць \"у фоне\" \ No newline at end of file From 1f2cd064f7a92f387f6838c3ee85645d41f08b15 Mon Sep 17 00:00:00 2001 From: Eduardo Caron Date: Wed, 19 Jun 2019 21:42:07 +0000 Subject: [PATCH 042/122] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 454961951..138d432e3 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -319,7 +319,7 @@ abrir em modo popup Usar índice de indexação rápido porém não preciso Usar índice de indexação inexato Adicionar a próxima stream à fila automaticamente - Auto anexar uma stream relacionada quando a reprodução iniciar na última stream em uma fila não repetitiva. + Adicionar automaticamente uma stream relacionada quando estiver reproduzindo a última stream da fila e a repetição estiver desligada Arquivo Pasta não encontrada Origem do arquivo/conteúdo não econtrada @@ -473,7 +473,7 @@ abrir em modo popup Reprodução automática Comentários - + Não há comentários Não foi possível carregar comentários From e99266f9d86b82c70f9ea8a11dd9d5ddd0bc621c Mon Sep 17 00:00:00 2001 From: Michael Moroni Date: Thu, 20 Jun 2019 11:10:43 +0000 Subject: [PATCH 043/122] Translated using Weblate (Italian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-it/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a494613c7..69b65182e 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -478,9 +478,9 @@ Riproduzione automatica Commenti - + - Non ci sono commenti + Nessun commento Impossibile caricare i commenti Riproduci direttamente in sottofondo Chiudi From 1d1cee17c3511b5f544d915905a265563b193fe6 Mon Sep 17 00:00:00 2001 From: gkhnblt Date: Sat, 22 Jun 2019 16:19:13 +0000 Subject: [PATCH 044/122] Translated using Weblate (Turkish) Currently translated at 98.0% (442 of 451 strings) --- app/src/main/res/values-tr/strings.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 321d931a8..4fe7968f8 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -35,7 +35,7 @@ Koyu Açık İndir - "Sonraki " + Sıradaki \'Sonraki\' ve \'Benzer\' videoları göster Desteklenmeyen URL Varsayılan içerik dili @@ -473,4 +473,7 @@ Duraklatılamayan indirmeler yeniden başlatılacak Olaylar Konferanslar + Yorumları göster + Yorumları göstermeyi durdurmak için devre dışı bırak + Otomatik oynat \ No newline at end of file From 6cbb8b17539c5e1abc7cc81a3b53bc0c310f1f22 Mon Sep 17 00:00:00 2001 From: Cenk YILDIZLI Date: Wed, 26 Jun 2019 23:14:56 +0000 Subject: [PATCH 045/122] Translated using Weblate (Turkish) Currently translated at 99.1% (447 of 451 strings) --- app/src/main/res/values-tr/strings.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 4fe7968f8..08b2fd092 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -476,4 +476,12 @@ Yorumları göster Yorumları göstermeyi durdurmak için devre dışı bırak Otomatik oynat + + Yorumlar + + + Yorum yok + Yorumlar yüklenemedi + Arka planda direkt başlat + Kapat \ No newline at end of file From 37153260343b04623d04dedb7ef22211fd835677 Mon Sep 17 00:00:00 2001 From: thami simo Date: Wed, 26 Jun 2019 20:45:58 +0000 Subject: [PATCH 046/122] Translated using Weblate (Arabic) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ar/strings.xml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f5f8e1723..e80416a46 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -5,7 +5,7 @@ اختر المتصفح مظلم صيغة الصوت الإفتراضية - الدقة الإفتراضية + الدقة الافتراضية عدم الإعجاب الإعجابات صور معاينة الفيديو @@ -69,9 +69,9 @@ اسود التاريخ وذاكرة التخزين المؤقت التاريخ و ذاكرة التخزين المؤقت - المحتوى + محتوى التنزيلات - التنزيلات + التحميل الكل القناة الفيديو @@ -80,7 +80,7 @@ عن التطبيق التاريخ التاريخ - افتح في وضع النافذة المنبثقة + فتح في وضع منبثق يزيل الصوت في بعض الخيارات وضع النوافذ المنبثقة NewPipe تم إلغاء الاشتراك في القناة @@ -89,7 +89,7 @@ نافذة المنبثقة تشغيل مقطع الفيديو عند إستدعاء NewPipe من تطبيق آخر الدقة الافتراضية لنوافذ المنبثقة - "عرض أعلى جودة " + عرض أعلى جودة بعض الأجهزة فقط تدعم تشغيل مقاطع الفيديو 2K / 4K تنسيق الفيديو الافتراضي تذكر حجم النافذة و وضعها @@ -108,7 +108,7 @@ المشغل السلوك الوضع المنبثق - يتم التشغيل في الوضع المنبثق + تشغيل في وضع منبثق تم وضعه على قائمة الانتظار في مشغل الخلفية تم وضعه على قائمة الانتظار في مشغل النافذة المنبثقة محتوى مقيد بحسب العمر @@ -273,7 +273,7 @@ دائماً مرة واحدة فقط العنوان خاطئ - لم يتم العثور على مشغل الفيديو (يمكنك تثبيت VLC وتشغيله). + لم يتم العثور على مشغل الفديو (يمكنك تثبيت VLC لتشغيله). استيراد قاعدة البيانات تصدير قاعدة البيانات "الكتابة فوق سجل التاريخ والاشتراكات الحالية " @@ -485,15 +485,15 @@ "ايقاف عند التحويل إلى البيانات المتنقلة" سيتم إعادة تحميل التنزيلات التي لا يمكن إيقافها إظهار التعليقات - عطّله لإيقاف عرض التعليقات + تعطيل لإيقاف عرض التعليقات تشغيل تلقائي التعليقات - - - - - + + + + + لا توجد تعليقات تعذر تحميل التعليقات From 2b2ee567126d7180c26e522192f5db1827f062bd Mon Sep 17 00:00:00 2001 From: JoC Date: Thu, 27 Jun 2019 07:13:10 +0000 Subject: [PATCH 047/122] Translated using Weblate (Spanish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-es/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b7acfa9eb..fe1a761ff 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1,6 +1,6 @@ - %1$s de visualizaciones + %1$s vistas Publicado el %1$s No se encontró ningún reproductor de vídeo. ¿Desea instalar VLC? Instalar @@ -101,7 +101,7 @@ URL mal formada o Internet no disponible NewPipe está descargando Toque para ver detalles - Por favor espere... + Por favor espere… Copiado al portapapeles Por favor, seleccione un directorio de descarga disponible No se pudo cargar la imagen From 6f97819ca7b4f6ce4b389575e958cb5716919d9a Mon Sep 17 00:00:00 2001 From: Mehmetali Date: Mon, 1 Jul 2019 08:56:18 +0000 Subject: [PATCH 048/122] Translated using Weblate (Turkish) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-tr/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 08b2fd092..a98aa9146 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -3,7 +3,7 @@ Başlamak için aramaya dokun %1$s görüntüleme Yayınlanma: %1$s - Akış oynatıcısı bulunamadı. VLC\'yi yüklemek istiyor musunuz\? + Akış oynatıcısı bulunamadı. VLC\'yi yüklemek ister misiniz\? Yükle İptal et Tarayıcıda aç @@ -241,10 +241,10 @@ Ses Ayarları Kuyruğa eklemek için basılı tutun Arka planda kuyruğa ekle - Yeni açılan oynatıcıda kuyruğa al + Yeni oynatıcıda kuyruğa al Burada oynatmaya başla - Burada arka planda başlat - Burada yeni açılır oynatıcıda başlat + Arka planda oynatmayı başlat + Yeni açılır oynatıcıda başlat Bağış yapın NewPipe, size en iyi deneyimi getiren zaman harcama gönüllüler tarafından geliştirilmiştir. Bir fincan kahvenin tadını çıkarırken geliştiricilerin New Pipe\'ı daha iyi hale getirmelerine yardımcı olun. Bağış yap @@ -258,7 +258,7 @@ Ana görünüme geç Çekmeceyi aç Çekmeceyi kapat - Akış oynatıcı bulunamadı (Bunu oynamak için VLC yükleyebilirsiniz). + Akış oynatıcı bulunamadı (Oynamak için VLC yükleyebilirsiniz). Her Zaman Yalnızca Bir Kez Harici oynatıcılar bu tür bağlantıları desteklemez @@ -478,7 +478,7 @@ Otomatik oynat Yorumlar - + Yorum yok Yorumlar yüklenemedi From 372d5ce413b4b286ebc3a379e64d7192da6dbb5b Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sun, 30 Jun 2019 11:22:01 +0000 Subject: [PATCH 049/122] Translated using Weblate (Basque) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-eu/strings.xml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 095bbfe5e..760e86853 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -254,8 +254,8 @@ Jarri ilaran bigarren planoan Jarri ilaran laster-leihoan Hasi hemen erreproduzitzen - Hasi hemen bigarren planoan - Hasi hemen laster-leihoan + Hasi erreproduzitzen bigarren planoan + Hasi erreproduzitzen laster-leihoan "Ireki tiradera " Itxi tiradera Ez da jarioen erreproduzigailurik aurkitu (VLC instalatu dezakezu). @@ -281,7 +281,7 @@ Kendu cachetik webguneen datu guztiak Metadatuen cachea ezabatuta Gehitu ilarara hurrengo jarioa - Gehitu erlazionatutako jario bat azken jarioa jo bitartean errepikapenik gabeko ilara batean. + Gehitu erlazionatutako jario bat azken jarioa jo bitartean errepikapenik gabeko ilara batean Arazketa Fitxategia Inportatu datu-basea @@ -468,4 +468,15 @@ Deskarga ezeztatu aurretik saiatu beharreko aldi kopurua Pausatu datu mugikorretara aldatzean Pausatu ezin daitezkeen deskargak berrekingo dira + Erakutsi iruzkinak + Desgaitu iruzkinak erakusteari erakusteko + Erreprodukzio automatikoa + + Iruzkinak + + + Iruzkinik ez + Ezin izan dira iruzkinak kargatu + Erreproduzitu zuzenean bigarren planoan + Itxi \ No newline at end of file From 200a81d53661b83bc8f23373c3945f618b0511bd Mon Sep 17 00:00:00 2001 From: Khaleel Jageer Date: Tue, 2 Jul 2019 11:48:14 +0000 Subject: [PATCH 050/122] Translated using Weblate (Tamil) Currently translated at 33.7% (152 of 451 strings) --- app/src/main/res/values-ta/strings.xml | 33 +++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 7aa021182..a90739766 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -1,25 +1,25 @@ - தொடங்குவதற்கு தேடல் பொத்தானை அழுத்தவும் - "%1$s பார்வைகள்" - "%1$s அன்று வெளியிடப்பட்டது" - ஸ்டீரீம் பிளேயர் கண்டறியப்படவில்லை. வில்சி நிருவ வேண்டுமா? - நிறுவ + தொடங்க தேடலை அழுத்தவும் + %1$s பார்வைகள் + %1$s அன்று வெளியிடப்பட்டது + நிகழ்பட ஓட்டி கண்டறியப்படவில்லை. VLC நிறுவ வேண்டுமா\? + நிறுவு ரத்துசெய் - உலாவியில் திறக்க + உலாவியில் திற பகிர் - பதிவிறக்க - தேடல் + பதிவிறக்கு + தேடு அமைப்புகள் - பகிர + இதனுடன் பகிர் உலாவியை தேர்ந்தெடு சுழற்சி - எந்த ஒரு இயக்கியும் கிடைக்கவில்லை (VLC-ஐ பயன்படுத்தவும்). - திரைமேல் நிலையில் காணவும் - தாரை கோப்பை பதிவிறக்கு - நீங்கள் கூறியது: %1$s இதுதானா\? - வெளி காணொலி இயக்கியை பயன்படுத்தவும் - வெளி ஒலி இயக்கியை பயன்படுத்தவும் + நிகழ்பட ஓட்டி கிடைக்கவில்லை (தாங்கள் VLC-ஐ பயன்படுத்தலாம்). + திரைமேல் நிலையில் காட்டவும் + நிகழ்பட கோப்பை பதிவிறக்கு + நீங்கள் கூறியது: %1$s\? + வேறு நிகழ்பட ஓட்டியை பயன்படுத்தவும் + வேறு ஒலி இயக்கியை பயன்படுத்தவும் NewPipe திரைமேல் நிலை குழுசேர் குழு சேர்க்கப்பட்டது @@ -105,7 +105,7 @@ முடிவுகள் இல்லை எந்த முடிவுகளும் இல்லை இழுத்து வரிசைமாற்று - தரவிறக்க அடைவு உருவாக்கப்பட்டது \'%1$s\' + \'%1$s\'-ல் தரவிறக்க அடைவு உருவாக்கப்பட்டது காணொலி ஒலி மீண்டும் முயற்சி @@ -155,4 +155,5 @@ "NewPipe பின்னனி மற்றும் பாப்அப் இயக்கிகளின் அறிவிப்புகள்" "பாப்அப் இயக்கிக்கு மாறு " குழுவிலகு + வரிசை \ No newline at end of file From daecfd97c277ad4d196a8b117e8a9dc14a7da6b3 Mon Sep 17 00:00:00 2001 From: THANOS SIOURDAKIS Date: Wed, 3 Jul 2019 12:26:10 +0000 Subject: [PATCH 051/122] Translated using Weblate (Greek) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-el/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index c2b1d0dce..bd604c591 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -5,7 +5,7 @@ Δεν βρέθηκε πρόγραμμα αναπαραγωγής. Θα θέλατε να εγκαταστήσετε το VLC; Εγκατάσταση Ακύρωση - Άνοιγμα στον browser + Άνοιγμα στο πρόγραμμα περιήγησης ιστού Κοινοποίηση Λήψη Αναζήτηση @@ -120,7 +120,7 @@ Αφαίρεση όλων των προσωρινά αποθηκευμένων δεδομένων ιστοσελίδων Η προσωρινή μνήμη μεταδεδομένων εκκαθαρίστηκε Αυτόματη πρόσθεση της επόμενης ροής στην ουρά - Αυτόματη πρόσθεση μιας σχετικής ροής όταν αναπαράγεται η προηγούμενη ροή σε μια μη-επαναλαμβανόμενη ουρά. + Αυτόματη πρόσθεση μιας σχετικής ροής όταν αναπαράγεται η προηγούμενη ροή σε μια μη-επαναλαμβανόμενη ουρά Έλεγχος αναπαραγωγής με χειρονομίες Χρήση χειρονομιών για τον έλεγχο της φωτεινότητας και της έντασης ήχου της εφαρμογής Εμφάνιση υποδείξεων ενώ κάνετε αναζήτηση @@ -267,7 +267,7 @@ Δεν ήταν δυνατή η φόρτωση της άδειας Περί Συνεισφέροντες - Ανοιχτού κώδικα, ελαφριά εφαρμογή Android, για την αναπαραγωγή πολυμεσων από το διαδίκτυο. + Ανοιχτού κώδικα, ελαφριά εφαρμογή Android, για την αναπαραγωγή πολυμέσων από το διαδίκτυο. Συνεισφέρετε Αν έχετε ιδέες για μετάφραση, αλλαγή σχεδιασμού, εκκαθάριση ή ριζικές αλλαγές κώδικα της εφαρμογής—η βοήθεια σας είναι πάντα ευπρόσδεκτη. Όσο περισσότερη έχουμε, τόσο καλύτεροι γινόμαστε! Δείτε το στο GitHub @@ -471,7 +471,7 @@ Αυτόματη αναπαραγωγή Σχόλια - + Χωρίς σχόλια Δεν ήταν δυνατή η φόρτωση σχολίων From ee3ec3a4ea1262fde6a52baeb511f83c8c37339b Mon Sep 17 00:00:00 2001 From: Flo - Fan Date: Wed, 3 Jul 2019 14:23:08 +0000 Subject: [PATCH 052/122] Translated using Weblate (French) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-fr/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 777a69b5a..f84fc8b08 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -76,7 +76,7 @@ Audio Réessayer Autorisation d\'accès au stockage refusée - Faites une recherche pour commencer + Appuyez sur recherche pour commencer Lecture automatique Afficher les vidéos soumises à une limite d\'âge. Autoriser ce type de contenu est possible depuis les paramètres. Rapport utilisateur @@ -315,7 +315,7 @@ Recherche rapide approximative Permettre au lecteur d\'accéder plus rapidement à une position au détriment de la précision Charger les miniatures - Désactivez pour empêcher le chargement des miniatures afin de réduire l’utilisation de bande passante et de mémoire. Ce changement vide le cache d’images en mémoire vive et sur le disque. + Désactivez pour empêcher le chargement des miniatures, afin de réduire l’utilisation de bande passante et de mémoire. Modifier cette option vide le cache d’images en mémoire vive et sur le disque. Images en cache effacées Effacer les données en cache Effacer toutes les pages web mises en cache @@ -477,7 +477,7 @@ Lecture automatique Commentaires - + Pas de commentaires Impossible de charger les commentaires From 2d6362dddb6ddd85c10b94470ef9059424a3efa7 Mon Sep 17 00:00:00 2001 From: D D Date: Fri, 5 Jul 2019 17:54:54 +0000 Subject: [PATCH 053/122] Translated using Weblate (Bulgarian) Currently translated at 85.4% (385 of 451 strings) --- app/src/main/res/values-bg/strings.xml | 107 +++++++------------------ 1 file changed, 30 insertions(+), 77 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 9a28dc625..294f79d78 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -1,5 +1,6 @@ - -Докоснете търсачката, за да започнете + + + Докоснете търсачката, за да започнете %1$s гледания Публикувано на %1$s Не е намерен стрийм плейър. Желаете ли да инсталирате VLC? @@ -24,22 +25,16 @@ Премахнат абонамент за канала Неуспешна промяна на абонамента Неуспешно обновление на абонамента - Абонаменти - Обновления - Във фонов режим В прозорец - Директория за изтегляне на видео Папка за съхранение на изтеглените видеота Въведете път за съхранение на изтеглените видеота - Директория за изтегляне на аудио Папка за съхранение на изтеглено аудио Въведете път за съхранение на изтеглено аудио - Автоматично възпроизвеждане Въпроизвежда видео, когато NewPipe е повикан от друго приложение Резолюция по подразбиране @@ -89,7 +84,7 @@ Възпроизвеждане Съдържание Съдържание за възрастни - Покажи съдържание за възрастни. Разрешаването на такова съдържание става от \"Настройки\". + Покажи съдържание за възрастни. Разрешаването на такова съдържание става от Настройки. НА ЖИВО Изтегляния Изтегляния @@ -107,12 +102,9 @@ Най-добра резолюция Отмени Възпроизведи всички - Известия от NewPipe Известия за Фонов плейър и плейъра в Отделен прозорец на NewPipe - [Неизвестен] - Грешка Проблем с мрежата Не мога да заредя всички миниатюри @@ -128,7 +120,6 @@ Неуспех при възпроизвеждането на този поток Критичен проблем с плейъра Опит за възстановяване от възникналия проблем с плейъра - Съжаляваме, това не би трябвало да се случва. Докладвай за грешката чрез имейл Съжаляваме, възникнаха някои грешки. @@ -137,8 +128,6 @@ Какво се случи: Вашият коментар (на английски): Подробности: - - Миниатюра на видео Миниатюра на аватара на качилия видео Харесвания @@ -148,39 +137,31 @@ Докладвай за грешка Няма резултати Тук няма нищо - Неуспешно създаване на директория за изтеглени в „%1$s“ Бе създадена директория за свалянията в „%1$s“ - Видео Аудио Опитай отново Достъпа до хранилището е отказан - - %s абонат - %s абонати - - + %s абонат + %s абонати + Няма гледания - %s гледане - %s гледания - - + %s гледане + %s гледания + Няма клипове - %s клип - %s клипове - - + Клип + Клипове + Пауза Начало Изтрий Контролна сума - ОК - Име на файла Нишки Грешка @@ -194,7 +175,6 @@ Позволени символи в името на файловете Невалидните символи се заменят с тази стойност Символ за замяна - Букви и цифри За NewPipe Настройки @@ -209,12 +189,9 @@ Виж в GitHub Изтегли стрийм файл Покажи инфо - Главен Отметнати плейлисти - Добави към - Използвай бързо, но неточно превъртане Неточното превъртане позволява на плейъра да превърта кадри по-бързо, с намалена прецизност Зареждай миниатюри @@ -223,19 +200,17 @@ Премахни всички метаданни за уебстраници от кеш-паметта Кеш-паметта с метаданни бе изтрита Автоматично нареди на опашка следващия - Автоматично прибавяне на сродно съдържание при неповтарящ се преглед. + Автоматично прибавяне на сродно съдържание при неповтарящ се преглед Държава, за която да бъде показвано съдържание Услуга Отстраняване на грешки Винаги Само веднъж Файл - Смени ориентацията Мини във фонов режим Мини към нов прозорец Мини в основен режим - Импортиране на база данни Експортиране на база данни Замества текущите история и абонаменти @@ -256,17 +231,14 @@ Името на файла не може да бъде празно Възникна грешка: %1$s Не са налични източници за изтегляне - хил. млн. млрд. - Няма абонати Създай Изтрий всички Откажи Няма инсталирано приложение, което да изпълни този файл - © %1$s от %2$s под лиценза %3$s Съдействайте За всичко, което се сетите: превод, промени по дизайна, изчистване на кода или много сериозни промени по кода – помощта е винаги добре дошла. Колкото повече развитие, толкова по-добре! @@ -290,28 +262,21 @@ Миниатюра на видео Потребителски доклад Пренареди чрез плъзгане - Начало Изтрий един Преименувай - Нова цел Моля, изберете достъпна папка за изтегляния Това разрешение се изисква за \nвъзпроизвеждане в отделен прозорец 1 елемент е изтрит. - преКАПЧА reCAPTCHA заявка Изисква се въвеждане на reCAPTCHA - Изтегляне Повечето специални символи - NewPipe е безплатен „copyleft“ софтуер: Можете да го използвате, изучавате, споделяте и подобрявате по желание. В частност, Вие можете да препубликувате и/или модифицирате приложението според правилата на Главния обществен лиценз на ГНУ, издаден от Фондацията за свободен софтуер – версия 3 на лиценза или по-нова. Прочетете лиценза - - История Търсения Гледани @@ -325,7 +290,6 @@ Окончателно ли искате да изтриете всички елементи от историята на гледанията? Последно възпроизвеждани Най-възпроизвеждани - Съдържание на главната страница Празна страница Страница-павилион @@ -341,7 +305,6 @@ Внимание: не всички файлове бяха импортирани успешно. Това ще замени текущата Ви инсталация. Желаете ли също да импортирате настройките? - Павилион Набиращи популярност Топ 50 @@ -357,68 +320,50 @@ Възпроизвеждане от тук Възпроизвеждане от тук при фонов режим Възпроизвеждане от тук при прозорец - Отвори навигационната лента Затвори навигационната лента Тук нещо ще се появи скоро ;D - - Действие при повикване от друго приложение Действие по подразбиране при отваряне на съдържание — %s - Видео плейър Във фонов режим В прозорец Винаги питай - Получаване на инфо… Зареждане на заявеното съдържание - Нов Плейлист Изтрий "Преименувай " Име Добави Към Плейлист Задай като миниатюра на плейлиста - Миниатюрата на плейлиста е сменена Премахни отметката - Искате ли да изтриете този плейлист? Плейлистът е създаден Добавено към плейлист Миниатюрата на плейлиста е сменена. Плейлистът не можа да бъде изтрит. - Без надписи - Приспособи Запълни Увеличи - Авто-генерирани - Надписи Модифицирай мащаба на текста и фона на надписите. Изисква рестарт на приложението, за да се приложат промените. - Включи LeakCanary Следенето за пропускане на памет може да направи приложението нестабилно - Докладвай за извънредни грешки Импортиране/Експортиране Импортирай Импортирай от Експортирай в - Импортиране… Експортиране… - Файл с данни за импортиране Предишно експортиране - Неуспешно импортиране на абонатите Неуспешно експортиране на абонатите - Импортирайте YouTube абонаментите, чрез изтегляне на нужния файл: \n \n1. Посетете тази връзка: %1$s @@ -431,11 +376,9 @@ \n3. Влезте в профила си, ако се изисква \n4. Копирайте хипервръзката на профилната страница, към която сте насочени. вашиятID, soundcloud.com/вашиятID - Това действие може да изразходва голямо количество данни от вашия трафик. \n \nЖелаете ли да продължите? - Управление скоростта на възпроизвеждане Темпо Височина @@ -444,7 +387,6 @@ \nТрябва да сте съгласни с условията, за да ни изпратите доклада за грешката. Приеми Откажи - Без ограничения Ограничена резолюция при мобилни данни Минимизирай при преход към друго приложение @@ -452,15 +394,26 @@ Без минимизиране Минимизирай във фонов режим Минимизирай в прозорец - -Канали + Канали Плейлисти Песни Потребители Възстанови - Стъпка Насили докладването на неизпращаеми Rx изключения извън фрагмента или кръговрата на активност след приключване - Откачи (може да предизвика промени) - + Отписване + Контрол на звука с жестове + Променяйте звука на плейъра с жестове + Контрол на яркостта с жестове + Променяйте яркостта на плейъра с жестове + Файлът е изтрит + Събития + Показвай коментари + Деактивиране за скриване на коментарите + Автоматично пускане + + Коментари + + + \ No newline at end of file From 8fcd23663cebce3d27efe35a099d7939de78d678 Mon Sep 17 00:00:00 2001 From: random r Date: Mon, 8 Jul 2019 08:47:38 +0000 Subject: [PATCH 054/122] Translated using Weblate (Italian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-it/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 69b65182e..05c6068e6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -325,7 +325,7 @@ Usa la ricerca rapida ma imprecisa La ricerca imprecisa permette al lettore multimediale di spostarsi nelle posizioni più velocemente con una precisione ridotta Metti in coda automaticamente il prossimo flusso - Aggiungi automaticamente un flusso correlato quando è in corso la riproduzione dell\'ultimo flusso in una coda non ripetitiva + Aggiungi automaticamente uno stream correlato raggiunta la fine della coda se la ripetizione è disattivata SINCRONIZZAZIONE File Nessuna cartella From 550c74da77fb0d9d0b67336cde2315208111f22e Mon Sep 17 00:00:00 2001 From: John Doe Date: Tue, 9 Jul 2019 09:58:07 +0000 Subject: [PATCH 055/122] Translated using Weblate (Croatian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-hr/strings.xml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index faf828444..d3fac00dd 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -428,7 +428,7 @@ \n2. Idite na ovaj URL: %1$s \n3. Ulogirajte se \n4. Kopirajte URL profila na koji ste preusmjereni. - Tempo + brzina Visina tona Prekini vezu (može uzrokovati izobličenje) Minimiziraj prilikom mjenjanje aplikacija @@ -473,11 +473,15 @@ Automatska reprodukcija Komentari - - + + Nema komentara Komentare nije moguće učitati Sviraj izravno u pozadini Zatvori + NewPipe je copyleft libre software: možete ga koristiti, proučavati i poboljšavati po volji. Konkretno, možete ga redistribuirati i / ili modificirati pod uvjetima GNU opće javne licence koju je objavila Free Software Foundation, bilo verzije 3 Licence, ili (po vašem izboru) bilo koje kasnije verzije. + "Projekt NewPipe ozbiljno shvaća vašu privatnost. Stoga aplikacija ne prikuplja nikakve podatke bez vašeg pristanka. +\nNewPipe pravila o privatnosti detaljno objašnjavaju koji se podaci šalju i pohranjuju kada šaljete izvješće o padu aplikacije." + Kako bismo se uskladili s Europskom općom uredbom o zaštiti podataka (GDPR), upozoravamo vas na politiku privatnosti tvrtke NewPipe. Pažljivo ga pročitajte. Morate ga prihvatiti da nam pošaljete izvješća o pogreškama. \ No newline at end of file From 1b66ffac6c9cf69c26cf50d41c9675bf06ee4417 Mon Sep 17 00:00:00 2001 From: Syver Stensholt Date: Wed, 10 Jul 2019 16:58:05 +0000 Subject: [PATCH 056/122] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.6% (440 of 451 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index d1a2354c3..0aedb1f65 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -57,13 +57,13 @@ Spiller en video når NewPipe blir forespurt av et annet program Innhold Aldersbegrenset innhold - Vis aldersbegrenset video. Å tillate slikt materiale kan gjøres fra innstillingene. + Vis aldersbegrenset video. Å tillate slikt materiale kan gjøres via innstillingene. Feil Kunne ikke laste inn alle miniatyrbilder Kunne ikke dekryptere signaturen til videoens nettadresse Kunne ikke tolke nettside Kunne ikke tolke nettside fullstendig - Innholdet er ikke tilgjengelig + Innholdet er utilgjengelig Blokkert av GEMA Kunne ikke sette opp nedlastingsmeny Direktesendinger støttes ikke enda. @@ -82,7 +82,7 @@ Audio Prøv igjen Tilgang til lagring nektet - Direkteoverført + DIREKTE Nedlastinger Nedlastinger Feilrapport @@ -195,8 +195,8 @@ Ingen videoer - video - videoer + Video + Videoer Vis på GitHub NewPipe sin lisens @@ -321,7 +321,7 @@ Ingen slik mappe Ingen slik fil/innholdskilde Filen finnes ikke eller så har du ikke tilgang til å lese eller skrive til den - Filnavn kan ikke være tomt. + Filnavn kan ikke være tomt En feil inntraff: %1$s Auto-generert Skru på LeakCanary @@ -379,7 +379,7 @@ \n4. Kopier profil-nettadressen du ble videresendt til. Unøyaktig blafring tillater spilleren å blafre til posisjoner raskere med redusert nøyaktighet Skru av for å stoppe innlasting av miniatyrbilder, noe som sparer data- og minnebruk. Endring av dette vil tømme både disk- og minne-hurtiglager. - Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø. + Legg til en relatert strøm ved avspilling av forrige strøm i ikke-repeterende kø Minnelekkasjeoppsyn kan forårsake programmet å opptre uresponsivt under haugdumping Rapporter feil som opptrer utenfor sin levetid Tving rapportering av uleverbare Rx-unntak utenom fragment eller aktivitetslevetid etter forkastelse @@ -476,7 +476,7 @@ Spill av automatisk Kommentarer - + Ingen kommenterer Kunne ikke laste inn kommentarer From 632e52b38d89c07428b360211a88dae9d3deb8ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Wed, 10 Jul 2019 18:59:43 +0000 Subject: [PATCH 057/122] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 97.6% (440 of 451 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 0aedb1f65..f8a9dd94c 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -240,11 +240,11 @@ Strømside Abonnerer ikke på noen kanaler enda På vei opp - Legg i kø når henvist til bakgrunnen - Legg i kø ved nytt oppsprett + Legg i kø i bakgrunnen + Legg i kø i nytt oppsprett Start avspilling her - Start her når i bakgrunnen - Start her ved nytt oppsprettsvindu + Start avspilling i bakgrunnen + Start avspilling i nytt oppsprettsvindu Doner NewPipe utvikles av frivillige som bruker deres fritid til å gi deg den beste opplevelsen. Gi tilbake for å hjelpe utviklere å gjøre NewPipe enda bedre, mens de nyter en varm kopp kaffe. Bidra From 99c519c065b1df9236d252935da25107fc3525e8 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 13 Jul 2019 18:46:01 +0000 Subject: [PATCH 058/122] Translated using Weblate (Russian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ru/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f0f681571..1c41f868c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -32,8 +32,8 @@ Видео и аудио Внешний вид Другое - Изображение видео перед его просмотром - Изображение видео перед его просмотром + Миниатюра видео-превью + Миниатюра видео-превью Миниатюра аватара пользователя Не понравилось Понравилось @@ -66,9 +66,9 @@ Подробнее Скопировано в буфер обмена Выберите доступную папку для загрузки - Ограниченный контент + Контент 18+ Ошибка - Ваш комментарий (по Английски): + Ваш комментарий (English): Не удалось создать папку для загрузки \"%1$s\" Автовоспроизведение Воспроизводить видео при вызове NewPipe из другого приложения @@ -83,7 +83,7 @@ Контент недоступен Заблокировано GEMA Не удалось создать меню загрузки - Прямые трансляции пока не поддерживается + Прямые трансляции пока не поддерживаются Не удалось загрузить изображение Приложение упало Простите, это не должно было произойти. @@ -225,8 +225,8 @@ Тренды Топ 50 Новое и горячее - Добавлено в очередь на фоновое воспроизведение - Добавлено в очередь во всплывающем окне + Добавлено в очередь в фоне + Добавлено в очередь в окне Играть всё Не удалось воспроизвести этот поток Сведения @@ -280,7 +280,7 @@ Быстрый поиск позиции Позволяет искать позицию быстрее, но с меньшей точностью Автодополнение очереди - Добавляет похожие потоки в очередь при воспроизведении последнего потока, если не включён повтор + Добавлять похожие потоки в очередь при воспроизведении последнего потока, если не включён повтор Отладка Файл Импорт данных @@ -417,7 +417,7 @@ Внешний накопитель недоступен Вкладки, видимые на главной странице Восстановить значения по умолчанию - Хотите восстановить значения по умолчанию\? + Восстановить значения по умолчанию\? Ошибка чтения сохранённых вкладок. Используются вкладки по умолчанию Выбор Количество подписчиков недоступно From b83a1fd10215baf7c3395e78d0373381592307b4 Mon Sep 17 00:00:00 2001 From: bluepencil Date: Tue, 16 Jul 2019 02:25:28 +0000 Subject: [PATCH 059/122] Translated using Weblate (Korean) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ko/strings.xml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 1bb71650d..5325c6efb 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -153,7 +153,6 @@ 무엇을:\\n요청:\\n컨텐츠 언어:\\n서비스:\\nGMT 기준 시간:\\n패키지:\\n버전:\\n안드로이드 버전: 결과 없음 구독할 항목을 추가하세요 - 백만 10억 @@ -242,11 +241,11 @@ 상세 정보 오디오 설정 눌러서 대기열에 추가 - 백그라운드로 갈 경우 대기 - 새 팝업으로 갈 경우 대기 + 백그라운드로 갈 경우 재생목록에서 제거 + 새 팝업으로 갈 경우 재생목록에서 제거 여기서부터 재생 - 백그라운드로 갈 경우 여기서부터 재생 - 새 팝업으로 갈 경우 여기서부터 재생 + 백그라운드에서 재생 + 새 팝업에서 재생 스트리밍 플레이어를 찾을 수 없습니다. VLC를 설치하면 플레이하실 수 있습니다. 스트리밍 파일 다운로드하기 정보 보기 @@ -473,4 +472,14 @@ 모바일 데이터로 전환시 일시정지 일시정지 할 수 없는 다운로드의 경우에는 다시 시작됩니다 컨퍼런스 + 댓글 보기 + 댓글을 보지 않으려면 비활성화하세요 + 자동 재생 + + 댓글 + + 댓글 없음 + 댓글을 불러올 수 없음 + 백그라운드에서 바로 재생 + 닫기 \ No newline at end of file From 77db3cb6fad0d9f942d48c2b68bc3584dc389e4c Mon Sep 17 00:00:00 2001 From: Mostafa Ahangarha Date: Wed, 17 Jul 2019 15:23:31 +0000 Subject: [PATCH 060/122] Translated using Weblate (Persian) Currently translated at 70.7% (319 of 451 strings) --- app/src/main/res/values-fa/strings.xml | 71 +++++++++++++++++++++----- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index e79a37557..5fa71af8a 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -38,7 +38,7 @@ بارگیری بعدی نماش ویدیوهای «بعدی» و «مشابه» - نشانی اینترنتی پشتیبانی نمی‌شود + نشانی پشتیبانی نشده زبان محتوای ترجیحی ویدیو و صدا ظاهر @@ -55,17 +55,17 @@ خطا خطای شبکه نمی‌توان تمام بندانگشتی‌ها را بار کرد - نمی‌توان امضای نشانی اینترنتی ویدیو را رمزگشایی کرد. - نمی‌توان پایگاه وب را تجزیه کرد. - نمی‌توان پایگاه وب را به صورت کامل تجزیه کرد. - محتوا در دسترس نیست. - مسدود شده توسّط GEMA. + نمی‌توان امضای نشانی اینترنتی ویدیو را رمزگشایی کرد + نمی‌توان پایگاه وب را تجزیه کرد + نمی‌توان پایگاه وب را به صورت کامل تجزیه کرد + محتوا در دسترس نیست + مسدود شده توسّط GEMA نمی‌توان فهرست بارگیری را برپا ساخت. - این یک جریان زنده است. این جریان‌ها هنوز پشتیبانی نمی‌شوند. - نمی‌توان هیچ جریانی را گرفت. + جریان‌های زنده هنوز پشتیبانی نمی‌شوند + نمی‌توان هیچ جریانی را گرفت ببخشید. نباید این اتّفاق می‌افتاد. - گزارش خطا با نامه - ببخشید. چند مشکل رخ داد. + گزارش خطا با رایانامه + ببخشید، چند مشکل رخ داد. گزارش اطّلاعات: چه روی داد: @@ -73,7 +73,7 @@ جزییات: بندانگشتی پیش‌نمایش ویدیو بندانگشتی پیش‌نمایش ویدیو - بندانگشتی کاربر بارگذار + بندانگشتی کاربر بارگذاری کننده پسندها نپسندیدن‌ها استفاده از تور @@ -88,7 +88,7 @@ اجازهٔ دسترسی به انبار ذخیره رد شد شروع مکث - نمایش + پخش حذف مجموع مقابله‌ای مآموریت جدید @@ -102,8 +102,8 @@ نیوپایپ در حال بارگیری است برای جزییات، ضربه بزنید لطفاً صبر کنید… - در حافظه رونوشت شد. - لطفاً یک شاخهٔ بارگیری موجود را برگزینید. + در حافظه رونوشت شد + لطفاً یک شاخهٔ بارگیری موجود را برگزینید هیچ پخش کننده جریانی پیدا نشد (شما می‌توانید برنامه وی‌ال‌سی را برای پخش آن نصب کنید). بارگیری پرونده جریان حذف صدا در برخی کیفیت‌ها @@ -296,4 +296,47 @@ به یاد داشتن آخرین اندازه و موقعیت قبلی پنجره جداگانه زمان فعلی پخش کننده را به صورت تقریبی و سریع جلو ببر این گزینه باعث می شود هنگام جلو/عقب کردن زمان تصویر، به جای زمان دقیق انتخاب شده، به زمان غیر دقیق و نزدیک به مکان انتخاب شده برود که این کار سریع تر انجام می شود + کاره یا رابط کاربری با خطا مواجه شد + ریکپچا + بارگیری + تغییر جهت + تغییر وضعیت به پس‌زمینه + تغییر وضعیت به اصلی + خدمت + برای تغییر ترتیب، بکشید + حافظه نهان تصویر پاک شد + می‌خواهید تنظیمات را نیز وارد کنید؟ + گام + پرونده پاک شد + اعلان به‌روزرسانی کاره + اعلان‌ها برای نسخه جدید نیوپایپ + بازنشانی پیش‌فرض‌ها + می‌خواهید پیش‌فرض‌ها را بازنشانی کنید؟ + گلچین + به‌روزرسانی‌ها + حالت نمایش سیاهه + سیاهه + شبکه + خودکار + تغییر نمایش + به‌روزرسانی برای نیوپایپ موجود است! + برای بارگیری، لمس کنید + تمام + در صف + صف + بارگیری ناموفق بود + بارگیری پایان یافت + یافت نشد + شکست در پساپردازش + بیشینه تعداد تلاش‌ها پیش از لغو بارگیری + رویدادها + نمایش نظرات + غیرفعال کنید تا نمایش نظرات متوقف شود + پخش خودکار + + نظرات + + + بدون نظر + ناتوانی در دریافت نظرات \ No newline at end of file From 3f790d01fa73165a3d56bdb2a9030399265c2981 Mon Sep 17 00:00:00 2001 From: bluepencil Date: Tue, 23 Jul 2019 01:14:03 +0000 Subject: [PATCH 061/122] Translated using Weblate (Korean) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ko/strings.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 5325c6efb..d4a23df93 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -254,7 +254,7 @@ 정확하지는 않지만 빠른 탐색 정확하지 않은 탐색은 빠르게 위치로 탐색할 수 있지만 정확도는 떨어집니다 다음 스트림을 자동으로 재생열에 추가하기 - 이전 스트림이 무한 반복 재생 큐가 아닐 경우, 관련 스트림을 자동 재생합니다. + 이전 스트림이 무한 반복 재생 큐가 아닐 경우, 관련 스트림을 자동 재생합니다 기본 콘텐츠 국가 서비스 디버그 @@ -348,11 +348,12 @@ \n3. 다운로드가 곧 시작 됩니다 (이 파일이 구독 파일입니다) SoundCloud 프로필을 가져오시려면 URL 및 ID를 입력해주세요. \n -\n프로필 URL을 찾으시려면 다음 과정을 따라해 주세요. -\n +\n프로필 URL을 찾으시려면 다음 과정을 따라해 주세요. +\n +\n1. 웹 브라우저의 \"데스크톱 모드\" 를 활성화하세요 \n2. 이 주소로 가세요: %1$s \n3. 로그인이 필요하면 하세요. -\n4. 리디렉트된 곳의 URL을 복사하세요. (이 URL이 당신의 프로필 URL 입니다) +\n4. 리디렉트된 프로필 URL을 복사하세요. 프로필ID, soundcloud.com/프로필ID 경고: 데이터 소모량이 늘어날 수 있습니다. \n @@ -411,7 +412,7 @@ 이벤트 파일 삭제됨 앱 업데이트 알림 - 새 뉴파이프 버전을 알림 + 새 뉴파이프 버전 알림 외부 저장소 없음 다운로드할 SD 카드를 찾을 수 없습니다. 다운로드 폴더 경로를 초기화 하시겠습니까\? 1개의 항목이 삭제되었습니다. From d4ecd0dfab9b351ceb04c55f979adca04dd26290 Mon Sep 17 00:00:00 2001 From: JS Ahn Date: Tue, 23 Jul 2019 01:15:40 +0000 Subject: [PATCH 062/122] Translated using Weblate (Korean) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ko/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d4a23df93..b1b84fe50 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -424,7 +424,7 @@ 단계 초기화 저장된 탭을 읽는 중 오류가 발생하여 기본 탭을 사용합니다 - 기본값 복원 + 초기화 기본값을 복원할까요\? 구독자 숫자가 없습니다 메인 화면에 표시할 탭 From 4c92aebc3cba3a611c1f684739e6f57541ca1763 Mon Sep 17 00:00:00 2001 From: JS Ahn Date: Tue, 23 Jul 2019 01:15:54 +0000 Subject: [PATCH 063/122] Translated using Weblate (Korean) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ko/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index b1b84fe50..319a41494 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -425,7 +425,7 @@ 초기화 저장된 탭을 읽는 중 오류가 발생하여 기본 탭을 사용합니다 초기화 - 기본값을 복원할까요\? + 초기 설정으로 복원하시겠습니까\? 구독자 숫자가 없습니다 메인 화면에 표시할 탭 선택 From 2a44a091c860736d4c14ea7aa59a8ca31cc735ee Mon Sep 17 00:00:00 2001 From: hatsunearu Date: Tue, 23 Jul 2019 01:18:18 +0000 Subject: [PATCH 064/122] Translated using Weblate (Korean) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ko/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 319a41494..f9d93115b 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -85,7 +85,7 @@ 저장소에 접근할 권한이 거부되었습니다 다운로드 다운로드 - 시작 + 재생 일시정지 삭제 체크섬 From 8cc8aa869367a4aa0bde58fbc3c3b5721835ed43 Mon Sep 17 00:00:00 2001 From: Nenad Date: Thu, 1 Aug 2019 07:30:38 +0000 Subject: [PATCH 065/122] Translated using Weblate (Serbian) Currently translated at 50.1% (226 of 451 strings) --- app/src/main/res/values-sr/strings.xml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index a34cc9e11..8a550f68b 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -47,9 +47,9 @@ Светла Изглед Грешка мреже - Одредиште преузимања за аудио + Фолдер преузимања за аудио Унесите путању за преузимање аудио фајлова - Путања за упис преузетих аудио фајлова + Овде се чувају преузети аудио-снимци Направљен директоријум за преузимање „%1$s“ Не могу да направим директоријум за преузимање„ %1$s“ Грешка @@ -133,7 +133,7 @@ Очисти Позадина Прозорче - Неке резолуције биће БЕЗ звука када је ова опција укључена + Уклања звук на неким резолуцијама Упамти величину и позицију искачућег прозора Памти последњу величину и позицију искачућег прозорчета Контроле прејера потезом @@ -243,7 +243,7 @@ Нема плејера тока (можете инсталирати ВЛЦ). Преузимање фајла тока Прикажи податке - Обележивачи + Сачуване плејлисте Додај у Подразумевана држава за садржај Услуга @@ -259,4 +259,16 @@ Да бисте добили више информација и најновије вести о ЊуПајпу посетите наш вебсајт. Задржи за стављање у ред Пусти одавде + Користи брзо, али непрецизно премотавање + Омогућава плејеру да брже долази до позиције уз смањену прецизност + Учитавање слика + Искључите како се не би преузимале слике, чиме ћете смањити количину пренетог саобраћаја и потрошњу меморије. Промена ове опције ће уклонити слике из радне и трајне меморије. + Очишћен кеш са сликама + Уклони кеширане метаподатке + Уклони све податке о кешираним веб-странама + Откажи претплату + Нова картица + Одабери картицу + Приказивање коментара + Искључите како се не би приказивали коментари \ No newline at end of file From 12c9dbf1bf26621fd8fbdda09c80c3c56c5ff6e3 Mon Sep 17 00:00:00 2001 From: Bas Conrads Date: Wed, 31 Jul 2019 10:11:55 +0000 Subject: [PATCH 066/122] Translated using Weblate (Esperanto) Currently translated at 18.6% (84 of 451 strings) --- app/src/main/res/values-eo/strings.xml | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 9ac81757f..d972042a2 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -1,4 +1,4 @@ - + %1$s vidoj Eldonita je %1$s @@ -15,7 +15,6 @@ turno Uzi eksteran videoludilon Uzi eksteran sonludilon - Defaŭlta distingivo Ludi per Kodi Montri \"Ludi per Kodi\"-opcion @@ -24,7 +23,6 @@ Etoso Malluma Luma - Elŝuti Sekva video Ligilo ne subtenita @@ -38,7 +36,6 @@ Reteraro Enhavo ne estas disponebla Blokita de GEMA - Ŝatoj Malŝatoj Uzi la programon Tor @@ -56,27 +53,22 @@ Elŝutujo por videoj Elŝutujo por muziko (Eksperimenta) Devigi elŝuttrafikon tra Tor por pli bona privateco (elsendfluaj videoj estas ankoraŭ ne subtenitaj). - Montri opcion por ludi videon per la aplikaĵo Kodi Dosierujo por konservi elŝutitajn videojn Dosierujo por konservi elŝutitan muzikon Elektu lokon por konservi elŝutitajn videojn - Elektu lokon por konservi elŝutitan muzikon - Enhavo Raporti eraron per retpoŝto RAPORTI Informoj: Via komento (en la angla): Detaloj: - - Raporti eraron Video Reprovi -Tapu serĉo por komenci - Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin) + Tapu serĉo por komenci + Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin). Malfermi en ŝprucfenestron modon Iuj rezolucioj NE havos aŭdion kiam ĉi tiu eblo estas ebligita NewPipe ŝprucfenestron modon @@ -84,20 +76,16 @@ Abonita Kanalo malabonita Neebla ŝanĝi abonon - Elŝutu dosieron. + Elŝutu dosieron Ne eblas ĝisdatigi abonon Montri informon - Ĉefa Abonoj Legosigno - Kio novas - Fono ŝprucfenestron Aldonu al - Aŭtomata play Ludas video kiam NewPipe vokas de alia programo Defaŭlta popup rezolucio @@ -110,4 +98,4 @@ Uzu rapide, ne preciza serĉon Ne preciza serĉo permesas al la ludanto serĉi poziciojn pli rapide kun malalta precizeco Ŝarĝi bildetojn - + \ No newline at end of file From ef9044d93373434557fd3f95a4f02ebc645bca49 Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Tue, 23 Jul 2019 10:32:12 +0000 Subject: [PATCH 067/122] Translated using Weblate (Catalan) Currently translated at 98.4% (444 of 451 strings) --- app/src/main/res/values-ca/strings.xml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 60b963c06..c31450430 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -345,7 +345,7 @@ Desvincula (pot provocar distorsió) Nightcore Elimina totes les dades de llocs web de la memòria cau - Afegeix a la cua un vídeo relacionat quan es reprodueix l\'últim vídeo en una cua sense repetició. + Afegeix a la cua un vídeo relacionat quan es reprodueix l\'últim vídeo en una cua sense repetició Mostra els missatges d\'ajuda Mostra un missatge d\'ajuda quan el botó de mode en segon pla o emergent estigui premut a la pàgina de detalls d\'un vídeo Què ha passat:\\nPetició:\\nIdioma del contingut:\\nServei:\\nHora GMT:\\nPaquet:\\nVersió:\\nVersió del SO: @@ -467,4 +467,12 @@ No s\'han pogut carregar els comentaris Reprodueix directament en segon pla Tanca + S\'estan utilitzant les pestanyes per defecte, s\'ha produït un error en llegir les pestanyes desades + Mostra una notificació per demanar l\'actualització de l\'aplicació si hi ha una nova versió disponible + Toca per baixar + El servidor no està enviant dades + + Comentaris + + \ No newline at end of file From a60a9bb1444a319725736a56e38b1e58c738c646 Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Fri, 2 Aug 2019 20:53:03 +0000 Subject: [PATCH 068/122] Translated using Weblate (Russian) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ru/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1c41f868c..670e04a6b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -15,7 +15,7 @@ Выбор браузера поворот Путь для скачанного видео - Путь для сохранения скачанного видео + Папка для хранения загруженных видео Введите путь к папке для скачивания видео Разрешение по умолчанию Воспроизвести в Kodi @@ -27,7 +27,7 @@ Скачать Следующее URL не поддерживается - Показывать \"Следующее\" и \"Похожие\" видео + \"Следующее\" и \"Похожие\" видео Язык контента по умолчанию Видео и аудио Внешний вид @@ -235,8 +235,8 @@ Удалить Вы подписаны Подписка отменена - Показывать \"Зажмите, чтобы добавить\" - Показывать подсказку при нажатии кнопок всплывающего окна или фонового воспроизведения на странице сведений о видео + \"Зажмите, чтобы добавить\" + Показать подсказку при нажатии \"В окне\" или \"В фоне\" на странице сведений о видео [Неизвестно] Восстановление после ошибки плеера В фоне From 5a6a6bcc78d2c5dfda255aa7478365b79ab7b8d6 Mon Sep 17 00:00:00 2001 From: kapodamy Date: Thu, 1 Aug 2019 18:55:37 -0300 Subject: [PATCH 069/122] clean-up: remove unused method --- .../java/org/schabi/newpipe/download/DownloadActivity.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java index 41971dfd4..2bc200f05 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java @@ -61,6 +61,7 @@ public class DownloadActivity extends AppCompatActivity { .commit(); } + @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); @@ -86,9 +87,4 @@ public class DownloadActivity extends AppCompatActivity { return super.onOptionsItemSelected(item); } } - - @Override - public void onRestoreInstanceState(Bundle inState){ - super.onRestoreInstanceState(inState); - } } From 0375194e7d212334c68c23999f8cd6c2140a957d Mon Sep 17 00:00:00 2001 From: kapodamy Date: Thu, 1 Aug 2019 18:58:25 -0300 Subject: [PATCH 070/122] fix start/pause buttons disappear when screen goes off * fix start/pause buttons disappear, issued by RecyclerView re-draw * show start/pause buttons in pair to avoid confusions --- .../giga/service/DownloadManager.java | 4 +-- .../giga/ui/adapter/MissionAdapter.java | 19 ++++-------- .../giga/ui/fragment/MissionsFragment.java | 29 +++++++++++++++++++ app/src/main/res/menu/download_menu.xml | 12 ++++---- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManager.java b/app/src/main/java/us/shandian/giga/service/DownloadManager.java index c2bba7396..b168ef474 100644 --- a/app/src/main/java/us/shandian/giga/service/DownloadManager.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManager.java @@ -666,9 +666,9 @@ public class DownloadManager { continue; if (mission.running) - paused = true; - else running = true; + else + paused = true; } } diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index ebc6e94c2..e53ab4f1f 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -122,14 +122,8 @@ public class MissionAdapter extends Adapter { break; } - if (mStartButton != null && mPauseButton != null) switch (msg.what) { - case DownloadManagerService.MESSAGE_DELETED: - case DownloadManagerService.MESSAGE_ERROR: - case DownloadManagerService.MESSAGE_FINISHED: - case DownloadManagerService.MESSAGE_PAUSED: - checkMasterButtonsVisibility(); - break; - } + if (mStartButton != null && mPauseButton != null) + checkMasterButtonsVisibility(); } }; @@ -163,8 +157,7 @@ public class MissionAdapter extends Adapter { mPendingDownloadsItems.remove(h); if (mPendingDownloadsItems.size() < 1) { setAutoRefresh(false); - if (mStartButton != null) mStartButton.setVisible(false); - if (mPauseButton != null) mPauseButton.setVisible(false); + checkMasterButtonsVisibility(); } } @@ -664,11 +657,11 @@ public class MissionAdapter extends Adapter { if (mEmptyMessage.getVisibility() != flag) mEmptyMessage.setVisibility(flag); } - private void checkMasterButtonsVisibility() { + public void checkMasterButtonsVisibility() { boolean[] state = mIterator.hasValidPendingMissions(); - mStartButton.setVisible(state[0]); - mPauseButton.setVisible(state[1]); + mPauseButton.setVisible(state[0]); + mStartButton.setVisible(state[1]); } public void ensurePausedMissions() { diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java index f8cecbed9..2a93d20f4 100644 --- a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java +++ b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; import android.preference.PreferenceManager; @@ -138,6 +139,7 @@ public class MissionsFragment extends Fragment { * deprecated in API level 23, * but must remain to allow compatibility with api<23 */ + @SuppressWarnings("deprecation") @Override public void onAttach(Activity activity) { super.onAttach(activity); @@ -169,6 +171,15 @@ public class MissionsFragment extends Fragment { if (mAdapter != null) setAdapterButtons(); + int max = getMaxActionButtons() - 1 /* grid button */; + if (max >= 2) { + // show start/pause downloads buttons in pair to avoid confusions + mStart.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + mPause.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + if (max > 3) mClear.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } + super.onPrepareOptionsMenu(menu); } @@ -249,6 +260,23 @@ public class MissionsFragment extends Fragment { ); } + public int getMaxActionButtons() { + Configuration configuration = mContext.getResources().getConfiguration(); + int widthDp = configuration.screenWidthDp; + int heightDp = configuration.screenHeightDp; + int smallest = configuration.smallestScreenWidthDp; + + if (smallest > 600 || widthDp > 600) { + return 5; + } else if (widthDp >= 500 || widthDp > 480 && heightDp > 640) { + return 4; + } else if (widthDp >= 360) { + return 3; + } else { + return 2; + } + } + @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); @@ -273,6 +301,7 @@ public class MissionsFragment extends Fragment { } mBinder.addMissionEventListener(mAdapter.getMessenger()); + mAdapter.checkMasterButtonsVisibility(); } if (mBinder != null) mBinder.enableNotifications(false); } diff --git a/app/src/main/res/menu/download_menu.xml b/app/src/main/res/menu/download_menu.xml index 4e4549957..935399169 100644 --- a/app/src/main/res/menu/download_menu.xml +++ b/app/src/main/res/menu/download_menu.xml @@ -1,29 +1,31 @@ - + tools:ignore="AlwaysShowAction" + app:showAsAction="always" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> Date: Sat, 3 Aug 2019 12:33:54 -0300 Subject: [PATCH 071/122] dont hardcode the buttons --- .../giga/ui/fragment/MissionsFragment.java | 27 ------------------- app/src/main/res/menu/download_menu.xml | 2 +- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java index 2a93d20f4..69c8e8f50 100644 --- a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java +++ b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java @@ -7,7 +7,6 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; -import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; import android.preference.PreferenceManager; @@ -171,15 +170,6 @@ public class MissionsFragment extends Fragment { if (mAdapter != null) setAdapterButtons(); - int max = getMaxActionButtons() - 1 /* grid button */; - if (max >= 2) { - // show start/pause downloads buttons in pair to avoid confusions - mStart.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - mPause.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - - if (max > 3) mClear.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - } - super.onPrepareOptionsMenu(menu); } @@ -260,23 +250,6 @@ public class MissionsFragment extends Fragment { ); } - public int getMaxActionButtons() { - Configuration configuration = mContext.getResources().getConfiguration(); - int widthDp = configuration.screenWidthDp; - int heightDp = configuration.screenHeightDp; - int smallest = configuration.smallestScreenWidthDp; - - if (smallest > 600 || widthDp > 600) { - return 5; - } else if (widthDp >= 500 || widthDp > 480 && heightDp > 640) { - return 4; - } else if (widthDp >= 360) { - return 3; - } else { - return 2; - } - } - @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); diff --git a/app/src/main/res/menu/download_menu.xml b/app/src/main/res/menu/download_menu.xml index 935399169..6285352da 100644 --- a/app/src/main/res/menu/download_menu.xml +++ b/app/src/main/res/menu/download_menu.xml @@ -7,7 +7,7 @@ android:icon="?attr/ic_grid" android:title="@string/grid" tools:ignore="AlwaysShowAction" - app:showAsAction="always" /> + app:showAsAction="ifRoom" /> Date: Sat, 10 Aug 2019 15:56:59 -0300 Subject: [PATCH 072/122] update download_menu.xml use "ifRoom" and "always" in cases where is possible --- app/src/main/res/menu/download_menu.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/menu/download_menu.xml b/app/src/main/res/menu/download_menu.xml index 6285352da..f91f8ad7b 100644 --- a/app/src/main/res/menu/download_menu.xml +++ b/app/src/main/res/menu/download_menu.xml @@ -7,25 +7,25 @@ android:icon="?attr/ic_grid" android:title="@string/grid" tools:ignore="AlwaysShowAction" - app:showAsAction="ifRoom" /> + app:showAsAction="always" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> Date: Mon, 12 Aug 2019 13:02:31 +0000 Subject: [PATCH 073/122] Added translation using Weblate (Thai) --- app/src/main/res/values-th/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 app/src/main/res/values-th/strings.xml diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml new file mode 100644 index 000000000..a6b3daec9 --- /dev/null +++ b/app/src/main/res/values-th/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From ec3ae7c7b84336c202b04aae940656ba5025017c Mon Sep 17 00:00:00 2001 From: TobiGr Date: Mon, 12 Aug 2019 17:35:36 +0200 Subject: [PATCH 074/122] Clean up string resources --- app/src/main/res/values-ar/strings.xml | 6 ------ app/src/main/res/values-b+ast/strings.xml | 5 ----- app/src/main/res/values-be/strings.xml | 1 - app/src/main/res/values-ca/strings.xml | 6 ------ app/src/main/res/values-cmn/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 8 -------- app/src/main/res/values-de/strings.xml | 6 ------ app/src/main/res/values-el/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 3 --- app/src/main/res/values-eu/strings.xml | 2 -- app/src/main/res/values-fr/strings.xml | 6 ------ app/src/main/res/values-gl/strings.xml | 1 - app/src/main/res/values-he/strings.xml | 1 - app/src/main/res/values-hi/strings.xml | 4 ---- app/src/main/res/values-hr/strings.xml | 5 ----- app/src/main/res/values-id/strings.xml | 6 ------ app/src/main/res/values-it/strings.xml | 7 ------- app/src/main/res/values-ja/strings.xml | 2 -- app/src/main/res/values-ko/strings.xml | 8 -------- app/src/main/res/values-lt/strings.xml | 4 ---- app/src/main/res/values-mk/strings.xml | 5 ----- app/src/main/res/values-nb-rNO/strings.xml | 6 ------ app/src/main/res/values-nl-rBE/strings.xml | 2 -- app/src/main/res/values-nl/strings.xml | 7 ------- app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 2 -- app/src/main/res/values-sk/strings.xml | 5 ----- app/src/main/res/values-ta/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 7 ------- app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 5 ----- app/src/main/res/values-zh-rTW/strings.xml | 7 ------- 34 files changed, 134 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 989df7cd3..63a063f00 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -307,11 +307,6 @@ لا يمكن حذف قائمة التشغيل. ملئ الشاشة تكبير - حجم خط التسمية - أصغر خط - خط عادي - خط ذو حجم كبير - مُزامَنة تنزيل ملف البث الإشارات المرجعية استعمال التقديم السريع الغير دقيق @@ -496,6 +491,5 @@ لا توجد تعليقات تعذر تحميل التعليقات - التشغيل مباشرة في الخلفية إغلاق \ No newline at end of file diff --git a/app/src/main/res/values-b+ast/strings.xml b/app/src/main/res/values-b+ast/strings.xml index b256888cb..e371e03ff 100644 --- a/app/src/main/res/values-b+ast/strings.xml +++ b/app/src/main/res/values-b+ast/strings.xml @@ -368,11 +368,6 @@ RELLENAR ZOOM - Tamañu de fonte de sotítulos - Fonte más pequeña - Fonte media - Fonte más grande - Activar LeakCanary La supervisión d\'escapes de memoria podría facer que l\'aplicación nun respuenda al volquiar la pila diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 1107657ff..08d74d525 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -405,5 +405,4 @@ Фонавы плэер Плэер у акне Адпісацца - Іграць \"у фоне\" \ No newline at end of file diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 097e19b12..5ad960c75 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -333,16 +333,11 @@ Omple Escala Generats automàticament - Mida dels subtítols - Mida més petita - Mida normal - Mida més gran Habilita el LeakCanary Darrera exportació No s\'han pogut importar les subscripcions No s\'han pogut exportar les subscripcions Desvincula (pot provocar distorsió) - Nightcore Elimina totes les dades de llocs web de la memòria cau Afegeix a la cua un vídeo relacionat quan es reprodueix l\'últim vídeo en una cua sense repetició Mostra els missatges d\'ajuda @@ -465,7 +460,6 @@ Reproducció automàtica No hi ha comentaris No s\'han pogut carregar els comentaris - Reprodueix directament en segon pla Tanca S\'estan utilitzant les pestanyes per defecte, s\'ha produït un error en llegir les pestanyes desades Mostra una notificació per demanar l\'actualització de l\'aplicació si hi ha una nova versió disponible diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index 74d39b1b0..a98969a1e 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -134,7 +134,6 @@ 不支持该网址 默认内容的国家 服务 - 默认内容的语言 播放器 行为 视频与音频 diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 97e8c406f..7d9a03c08 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -316,13 +316,7 @@ otevření ve vyskakovacím okně Přizpůsobit Vyplnit Zvětšit - Velikost písma nadpisu - Menší písmo - Normální písmo - Větší písmo Sledovat únik paměti - Sledování úniku paměti vypnuto - Sledování úniku paměti povoleno, aplikace může při zátěži přestat reagovat Ladění "Automaticky generováno " Povolit službu LeakCanary @@ -377,7 +371,6 @@ otevření ve vyskakovacím okně Rychlost Výška tónu Rozpojit (může způsobit zkreslení) - Nightcore mód Výchozí nastavení Ke stažení nejsou dostupné žádné streamy Preferovaná \'otevřít\' akce @@ -492,7 +485,6 @@ otevření ve vyskakovacím okně Žádné komentáře Nelze načíst komentáře - Přehrát přímo na pozadí Zavřít Stahování na externí SD kartu ještě není možné. Resetovat umístění složky pro stahování\? \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ea735f518..ff75b74c6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -302,9 +302,7 @@ Vorschaubild der Wiedergabeliste geändert. Konnte Wiedergabeliste nicht löschen. Keine Untertitel - Schriftgröße der Untertitel Abbrechen - Normale Schriftgröße Stream-Datei herunterladen Schnelle, ungenaue Suche verwenden Mit ungenauem Suchen kann die Abspielposition schneller erreicht werden, aber auf Kosten der Genauigkeit @@ -314,8 +312,6 @@ Dateiname darf nicht leer sein Ein Fehler ist aufgetreten: %1$s Automatisch erzeugt - Kleinere Schrift - Größere Schrift LeakCanary aktivieren Import von Export nach @@ -344,7 +340,6 @@ Geschwindigkeit Tonhöhe Verknüpfung aufheben (kann zu Verzerrungen führen) - Nightcore Standard Abschalten, um das Laden von Miniaturansichten zu verhindern, was Daten- und Speicherverbrauch spart. Änderungen löschen den Bildzwischenspeicher sowohl im Arbeitsspeicher als auch auf dem internen Speicher. Nächsten Stream automatisch einreihen @@ -482,6 +477,5 @@ Keine Kommentare Kommentare konnten nicht geladen werden - Direkt im Hintergrund wiedergeben Schließen \ No newline at end of file diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 90e8f331d..3484c0e58 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -475,6 +475,5 @@ Χωρίς σχόλια Δεν ήταν δυνατή η φόρτωση σχολίων - Αναπαραγωγή απευθείας στο παρασκήνιο Κλείσιμο \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index faf88a652..fcc5afda9 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -322,8 +322,6 @@ abrir en modo popup La búsqueda inexacta permite al reproductor buscar posiciones más rápido con menor precisión Auto-encolar la siguiente transmisión Añadir de forma automática un vídeo relacionado con el último vídeo reproducido en una cola no repetitiva - DIRECTO - SINCRONIZAR Archivo Archivo movido o eliminado No existe el directorio @@ -498,6 +496,5 @@ abrir en modo popup Sin comentarios No se pudo cargar comentarios - Reproducir directamente en segundo plano Cerrar \ No newline at end of file diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d66087a35..5379b6104 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -374,7 +374,6 @@ Tempoa Tonua Deslotu (distortsioa sor lezake) - Nightcore Lehenetsia Ezarpenak ere inportatu nahi dituzu? Bilaketa ez zehatzak posizioak azkarrago baina prezisio gutxiagoz bilatzea ahalbidetzen du @@ -477,6 +476,5 @@ Iruzkinik ez Ezin izan dira iruzkinak kargatu - Erreproduzitu zuzenean bigarren planoan Itxi \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ae5abb76e..64914be6a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -308,10 +308,6 @@ Aucuns sous-titres Ajuster Zoom - Taille des sous-titres - Petite - Normale - Grande Recherche rapide approximative Permettre au lecteur d\'accéder plus rapidement à une position au détriment de la précision Charger les miniatures @@ -373,7 +369,6 @@ Sous-titres Modifier la taille du texte et les styles d\'arrière-plan du lecteur. Redémarrage requis pour prendre effet. Ton - Nightcore Aucune application installée pour lire ce fichier Effacer l\'historique Supprimer l\'historique des flux regardés @@ -483,6 +478,5 @@ Pas de commentaires Impossible de charger les commentaires - Jouer directement en arrière-plan Fermer \ No newline at end of file diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 798d5833b..899a9be10 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -93,7 +93,6 @@ Este URL non está soportado País predeterminado para o contido Servizo - Idioma predeterminado do contido Reprodutor Comportamento Vídeo e audio diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 6a04547fa..07fc6ab6f 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -482,6 +482,5 @@ אין תגובות לא ניתן לטעון תגובות - לנגן ישירות ברקע סגירה \ No newline at end of file diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 89aaacb00..44edee145 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -310,10 +310,6 @@ फिट भरें ज़ूम करें - कैप्शन फ़ॉंट आकार - छोटे फ़ॉंट - सामांय फ़ॉंट - बड़ा फ़ॉंट डीबग करें ऑटो-जनरेटेड LeakCanary सक्षम करें diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b31060ba9..e85d5810e 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -276,10 +276,6 @@ Ispuniti Povećaj Auto generirano - Veličina fonta naslova - Manji font - Normalni font - Veći font Omogući \"LeakCanary\" Monitoring curenja memorije može uzrokovati greške u radu aplikacije prilikom odlaganje gomile Izvijestite o pogreškama izvan životnog ciklusa @@ -478,7 +474,6 @@ Nema komentara Komentare nije moguće učitati - Sviraj izravno u pozadini Zatvori NewPipe je copyleft libre software: možete ga koristiti, proučavati i poboljšavati po volji. Konkretno, možete ga redistribuirati i / ili modificirati pod uvjetima GNU opće javne licence koju je objavila Free Software Foundation, bilo verzije 3 Licence, ili (po vašem izboru) bilo koje kasnije verzije. "Projekt NewPipe ozbiljno shvaća vašu privatnost. Stoga aplikacija ne prikuplja nikakve podatke bez vašeg pristanka. diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 5e11fdf6d..2131974b3 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -312,12 +312,7 @@ Isi Perbesar Otomatis dibuat - Ukuran fon deskripsi - Fon lebih kecil - Fon normal - Fon lebih besar Aktifkan LeakCanary - Nightcore Bawaan Pemutar stream tidak ditemukan (anda bisa memasang VLC untuk memutarnya). Unduh berkas stream @@ -476,6 +471,5 @@ Tidak ada komentar Tidak bisa memuat komentar - Putar di latar belakang Tutup \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e217a4ee5..f9308ec8f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -310,10 +310,6 @@ Rientrato Pieno Ingrandito - Dimensione dei caratteri dei sottotitoli - Carattere più piccolo - Carattere normale - Carattere più grande A breve qualcosa apparirà qui ;D Debug Generato automaticamente @@ -325,7 +321,6 @@ La ricerca imprecisa permette al lettore multimediale di spostarsi nelle posizioni più velocemente con una precisione ridotta Metti in coda automaticamente il prossimo flusso Aggiungi automaticamente uno stream correlato raggiunta la fine della coda se la ripetizione è disattivata - SINCRONIZZAZIONE File Nessuna cartella Nessun file o cartella che contiene sorgenti @@ -367,7 +362,6 @@ Tempo Tono Scollega (può causare distorsione) - Nightcore Valore predefinito Nessun flusso disponibile per il download \'Apri\' preferibilmente con @@ -482,6 +476,5 @@ Nessun commento Impossibile caricare i commenti - Riproduci direttamente in sottofondo Chiudi \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 104c194bd..f4e33d454 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -294,7 +294,6 @@ プレイリストのサムネイルを変更しました。 プレイリストを削除できませんでした。 字幕表示なし - 字幕の文字サイズ インポート/エクスポート インポート インポート元 @@ -473,7 +472,6 @@ コメントはありません コメントを読み込めませんでした - バックグラウンドで直接再生 閉じる 接続タイムアウト diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 494a0789b..c82e0044b 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -257,7 +257,6 @@ 기본 콘텐츠 국가 서비스 디버그 - 라이브 (LIVE) 항상 한번만 디바이스 방향 토글 @@ -315,11 +314,6 @@ 채우기 확대 자동 생성됨 - 자막 폰트 크기 - 작은 폰트 - 보통 폰트 - 큰 폰트 - 동기화 LeakCanary 할성화 힙 덤프 중 메모리 누수 점검으로 앱이 불안정해질 수 있습니다 out-of-lifecycle 오류 보고 @@ -368,7 +362,6 @@ 템포 피치 영상과 소리 분리 (소리가 깨질 수 있음) - 나이트코어 기본 다운로드 가능한 스트림이 없습니다 이 파일을 재생할 수 있는 플레이어 앱이 없습니다 @@ -481,6 +474,5 @@ 댓글 없음 댓글을 불러올 수 없음 - 백그라운드에서 바로 재생 닫기 \ No newline at end of file diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index edb78cc3c..43fe9d862 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -362,10 +362,6 @@ Priartinti Automatiškai sugeneruotas - Antraštės šrifto dydis - Mažesnis šriftas - Normalus šriftas - Didesnis šriftas Įjungti LeakCanary Atminties nutekėjimo stebėjimas gali padaryti programėlę nestabilią diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index f1c8a943e..ca1721115 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -368,10 +368,6 @@ Зумирај Автоматски создадено - Големина на преводот - Помал фонт - Нормален фонт - Поголем фонт Вклучи LeakCanary Следењето на мемориските грешки може да ја прикочува апликацијата @@ -414,7 +410,6 @@ Темпо Тон Откачи (може да создаде мутации) - „Nightcore“ Стандардно Избриши историја на гледаност Ја брише историјата на пуштени видеа diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 3729fc086..dfb221ee8 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -310,10 +310,6 @@ Tilpass Fyll Forstørr - Bildetekstens størrelse - Mindre skrift - Normal skrift - Større skrift Bruk raskt unøyaktig blafring Feilretting Fil @@ -383,7 +379,6 @@ Rapporter feil som opptrer utenfor sin levetid Tving rapportering av uleverbare Rx-unntak utenom fragment eller aktivitetslevetid etter forkastelse Avhekt (kan forårsake forvrenging) - Nightcore NewPipes personvernspraksis NewPipe-prosjektet tar ditt personvern veldig alvorlig. Derfor samler ikke programmet inn data uten ditt samtykke. \nNewPipes personvernspraksis forklarer i detalj hvilken deta som sendes og lagres når du sender en kræsjrapport. @@ -478,6 +473,5 @@ Ingen kommenterer Kunne ikke laste inn kommentarer - Spill direkte i bakgrunnen Lukk \ No newline at end of file diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index 9ddba1bcb..2dd854acf 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -367,7 +367,6 @@ Tempo Toon Ontkoppelen (kan ruis veroorzaken) - Nightcore Standaard Kijkgeschiedenis wissen Verwijdert de geschiedenis van afgespeelde streams @@ -474,6 +473,5 @@ Geen commentaren Kan commentaren niet laden - Rechtstreeks in achtergrond afspelen Sluiten \ No newline at end of file diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index d4c86a297..b53ed1d90 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -310,10 +310,6 @@ Inpassen Opvullen Inzoomen - Lettergrootte van bijschrift - Kleiner lettertype - Normaal lettertype - Groter lettertype Hier zal binnenkort iets verschijnen ;D Foutopsporing Automatisch gegenereerd @@ -325,7 +321,6 @@ Minder exact spoelen laat de speler sneller posities zoeken met verminderde precisie Volgende stream automatisch in wachtrij plaatsen Automatisch een gerelateerde stream toekennen bij het afspelen van de laatste stream in een niet-herhalende afspeelwachtlijst - SYNCHRONISEREN Bestand Deze map bestaat niet Bestand/Inhoudsbron bestaat niet @@ -367,7 +362,6 @@ Tempo Toon Ontlinken (kan ruis veroorzaken) - Nightcore Standaard Voorkeursactie voor openen Standaardactie bij openen van inhoud — %s @@ -482,6 +476,5 @@ Geen reacties Kan reacties niet laden - Direct spelen in achtergrond Sluiten \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2830ce17f..11ecf9d96 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -479,6 +479,5 @@ Brak komentarzy Nie można załadować komentarzy - Odtwarzaj bezpośrednio w tle Zamknij \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a7f287957..83eca913a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -476,6 +476,5 @@ abrir em modo popup Não há comentários Não foi possível carregar comentários - Reproduzir diretamente em segundo plano Fechar \ No newline at end of file diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 73cbc5430..821b9d086 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -475,6 +475,5 @@ Sem comentários Não foi possível carregar comentários - Reproduzir diretamente no fundo Fechar \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index da88f63be..fb2abaec1 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -331,7 +331,6 @@ Заполнить Приблизить Созданы автоматически - Синхронизировать Включить LeakCanary Мониторинг утечки памяти может привести к зависанию приложения Сообщать об ошибках жизненного цикла @@ -487,5 +486,4 @@ Нет комментариев Не удалось загрузить комментарии - Играть сейчас в фоне \ No newline at end of file diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 67b0628f0..1760e8ade 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -314,10 +314,6 @@ Prispôsobiť Vyplniť Zväčšiť - Veľkosť písma titulkov - Menšie Písmo - Normálne Písmo - Väčšie Písmo Používať rýchly posun Rýchly posun umožňuje prejsť na novú pozíciu rýchlejšie, ale s menšou presnosťou Načítanie miniatúr @@ -380,7 +376,6 @@ Rýchlosť Výška "Spomalenie (môže spôsobovať skreslenie)" - Nightcore režim Predvolené Vymazať históriu pozretí Odstráni históriu prehrávaných streamov diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 9f777391b..6f71a8b97 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -121,7 +121,6 @@ தேடப்பட்ட வாக்கியத்தை அமைவிடத்தில் சேமிக்கவும் ஆதரிக்கப்படாத URL இயல்புநிலை தகவல்களின் நாடு - தகவல்களின் இயல்பு மொழி பிழைதிருத்து உள்ளடக்கம் வயது வரம்புக்கு உட்பட்டது diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index a42aaac6d..a64dc320f 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -310,10 +310,6 @@ Sığdır Doldur Yakınlaştır - Alt yazı boyutu - Daha küçük yazı tipi - Normal yazı tipi - Daha büyük yazı tipi Hata ayıklama Yakında bir şeyler burada görünecek ;D Kendiliğinden Oluşturulan @@ -325,7 +321,6 @@ İsabetsiz konumlama, oynatıcının daha düşük hassasiyetle daha hızlı pozisyon aramasını sağlar Sonraki akışı otomatik kuyruğa ekle Yinelenmeyen bir kuyruktaki son akışı oynatırken, ilgili bir akışı kendiliğinden ekle - EŞZAMANLA Dosya Böyle bir dizin yok Dosya/içerik kaynağı değil @@ -368,7 +363,6 @@ Öntanımlı Ses titreşimi Bağlantısız (bozulmaya neden olabilir) - Nightcore İndirilebilecek akış yok Tercih edilen \'aç\' eylemi İçerik açılırken öntanımlı eylem — %s @@ -481,6 +475,5 @@ Yorum yok Yorumlar yüklenemedi - Arka planda direkt başlat Kapat \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c2ab26e1e..75a60d264 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -484,6 +484,5 @@ Коментарі відсутні Не вдалося підвантажити коментарів - Програвати у фоні Закрити \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d3f39b1ec..9aa4b9245 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -383,10 +383,6 @@ 放大填充 自动生成 - 字幕字体大小 - 小字体 - 中等字体 - 大字体 启用 LeakCanary 内存泄露监测可能会在heap dumping时导致应用失去响应 @@ -426,7 +422,6 @@ 速度 音调 Unhook(可能导致失真) - Nightcore 默认 未安装能播放此文件的应用 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 854a191a6..50e16464e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -306,10 +306,6 @@ 合適的 填滿 縮放 - 標題字體大小 - 縮小字體 - 正常字體 - 加大字體 某些東西即將在此出現 ;D 除錯 自動產生 @@ -321,7 +317,6 @@ 粗略的尋找能讓播放器以降低的精確度更快找到影片的進度位置 自動將下一部影片新增至佇列 在非重複播放佇列中最後一個串流開始播放時,自動新增相關串流 - 同步 檔案 無效的資料夾 無效的檔案/內容來源 @@ -363,7 +358,6 @@ 節奏 音高 解除連結(可能導致失真) - Nightcore 預設 偏好的「開啟」動作 開啟內容時的預設動作 — %s @@ -477,6 +471,5 @@ 沒有留言 無法載入留言 - 直接在背景播放 關閉 \ No newline at end of file From 8de5c5348582d94498b85f6b0e02630f45083775 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Tue, 13 Aug 2019 14:25:47 +0200 Subject: [PATCH 075/122] Fix typo in HistorySettinsFragment Rename viewsHistroyClearKey to viewsHistoryClearKey --- .../schabi/newpipe/settings/HistorySettingsFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/HistorySettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/HistorySettingsFragment.java index dc0a5fbf0..cf5425a50 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/HistorySettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/HistorySettingsFragment.java @@ -18,7 +18,7 @@ import io.reactivex.disposables.Disposable; public class HistorySettingsFragment extends BasePreferenceFragment { private String cacheWipeKey; - private String viewsHistroyClearKey; + private String viewsHistoryClearKey; private String searchHistoryClearKey; private HistoryRecordManager recordManager; private CompositeDisposable disposables; @@ -27,7 +27,7 @@ public class HistorySettingsFragment extends BasePreferenceFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); cacheWipeKey = getString(R.string.metadata_cache_wipe_key); - viewsHistroyClearKey = getString(R.string.clear_views_history_key); + viewsHistoryClearKey = getString(R.string.clear_views_history_key); searchHistoryClearKey = getString(R.string.clear_search_history_key); recordManager = new HistoryRecordManager(getActivity()); disposables = new CompositeDisposable(); @@ -46,7 +46,7 @@ public class HistorySettingsFragment extends BasePreferenceFragment { Toast.LENGTH_SHORT).show(); } - if (preference.getKey().equals(viewsHistroyClearKey)) { + if (preference.getKey().equals(viewsHistoryClearKey)) { new AlertDialog.Builder(getActivity()) .setTitle(R.string.delete_view_history_alert) .setNegativeButton(R.string.cancel, ((dialog, which) -> dialog.dismiss())) From 5053d470f61163d54f2d0cb6ccf8eed5dc5a7f2d Mon Sep 17 00:00:00 2001 From: TobiGr Date: Tue, 13 Aug 2019 14:39:46 +0200 Subject: [PATCH 076/122] Do not save playback position when watch history is disabled --- .../org/schabi/newpipe/player/BasePlayer.java | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 62be71995..e256070ca 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -1049,27 +1049,33 @@ public abstract class BasePlayer implements private void savePlaybackState(final StreamInfo info, final long progress) { if (info == null) return; if (DEBUG) Log.d(TAG, "savePlaybackState() called"); - final Disposable stateSaver = recordManager.saveStreamState(info, progress) - .observeOn(AndroidSchedulers.mainThread()) - .doOnError((e) -> { - if (DEBUG) e.printStackTrace(); - }) - .onErrorComplete() - .subscribe(); - databaseUpdateReactor.add(stateSaver); + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + if (prefs.getBoolean(context.getString(R.string.enable_watch_history_key), true)) { + final Disposable stateSaver = recordManager.saveStreamState(info, progress) + .observeOn(AndroidSchedulers.mainThread()) + .doOnError((e) -> { + if (DEBUG) e.printStackTrace(); + }) + .onErrorComplete() + .subscribe(); + databaseUpdateReactor.add(stateSaver); + } } private void resetPlaybackState(final PlayQueueItem queueItem) { if (queueItem == null) return; - final Disposable stateSaver = queueItem.getStream() - .flatMapCompletable(info -> recordManager.saveStreamState(info, 0)) - .observeOn(AndroidSchedulers.mainThread()) - .doOnError((e) -> { - if (DEBUG) e.printStackTrace(); - }) - .onErrorComplete() - .subscribe(); - databaseUpdateReactor.add(stateSaver); + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + if (prefs.getBoolean(context.getString(R.string.enable_watch_history_key), true)) { + final Disposable stateSaver = queueItem.getStream() + .flatMapCompletable(info -> recordManager.saveStreamState(info, 0)) + .observeOn(AndroidSchedulers.mainThread()) + .doOnError((e) -> { + if (DEBUG) e.printStackTrace(); + }) + .onErrorComplete() + .subscribe(); + databaseUpdateReactor.add(stateSaver); + } } public void resetPlaybackState(final StreamInfo info) { From 1b0a958436f2ec9f103ecc3e7da0c8463239ad9a Mon Sep 17 00:00:00 2001 From: Roger Date: Tue, 13 Aug 2019 22:10:04 -0400 Subject: [PATCH 077/122] Create FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..2c79d62cd --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +liberapay: TeamNewPipe From e6617ff8e80a9977425aa165eb4e77e47d8a57d4 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 14 Aug 2019 11:42:39 +0200 Subject: [PATCH 078/122] Fix slowdowns in stream list views Now the playback state of a stream is loaded only when needed (i.e. when the stream is visible), just as it is done with thumbnails. Removed `StateObjectsListAdapter.java`, which used to load the state of every stream at list instantiation, generating slowdowns and freezes. --- .../fragments/list/BaseListFragment.java | 3 - .../newpipe/info_list/InfoItemBuilder.java | 9 +- .../newpipe/info_list/InfoListAdapter.java | 35 ++-- .../info_list/StateObjectsListAdapter.java | 180 ------------------ .../holder/ChannelInfoItemHolder.java | 5 +- .../holder/ChannelMiniInfoItemHolder.java | 3 +- .../holder/CommentsInfoItemHolder.java | 5 +- .../holder/CommentsMiniInfoItemHolder.java | 28 ++- .../info_list/holder/InfoItemHolder.java | 5 +- .../holder/PlaylistMiniInfoItemHolder.java | 3 +- .../holder/StreamInfoItemHolder.java | 5 +- .../holder/StreamMiniInfoItemHolder.java | 15 +- .../newpipe/local/BaseLocalListFragment.java | 3 - .../newpipe/local/LocalItemListAdapter.java | 38 ++-- .../local/dialog/PlaylistAppendDialog.java | 1 - .../newpipe/local/holder/LocalItemHolder.java | 5 +- .../local/holder/LocalPlaylistItemHolder.java | 5 +- .../holder/LocalPlaylistStreamItemHolder.java | 10 +- .../LocalStatisticStreamItemHolder.java | 11 +- .../local/holder/PlaylistItemHolder.java | 3 +- .../holder/RemotePlaylistItemHolder.java | 5 +- .../subscription/SubscriptionFragment.java | 3 - 22 files changed, 96 insertions(+), 284 deletions(-) delete mode 100644 app/src/main/java/org/schabi/newpipe/info_list/StateObjectsListAdapter.java diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java index 279b396df..38a322285 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java @@ -64,7 +64,6 @@ public abstract class BaseListFragment extends BaseStateFragment implem @Override public void onDetach() { - infoListAdapter.dispose(); super.onDetach(); } @@ -97,8 +96,6 @@ public abstract class BaseListFragment extends BaseStateFragment implem } updateFlags = 0; } - - itemsList.post(infoListAdapter::updateStates); } /*////////////////////////////////////////////////////////////////////////// diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java index 39f7971dd..46b9bf709 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java @@ -24,6 +24,7 @@ import org.schabi.newpipe.info_list.holder.PlaylistInfoItemHolder; import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.OnClickGesture; /* @@ -61,14 +62,14 @@ public class InfoItemBuilder { this.context = context; } - public View buildView(@NonNull ViewGroup parent, @NonNull final InfoItem infoItem, @Nullable StreamStateEntity state) { - return buildView(parent, infoItem, state, false); + public View buildView(@NonNull ViewGroup parent, @NonNull final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { + return buildView(parent, infoItem, historyRecordManager, false); } public View buildView(@NonNull ViewGroup parent, @NonNull final InfoItem infoItem, - @Nullable StreamStateEntity state, boolean useMiniVariant) { + final HistoryRecordManager historyRecordManager, boolean useMiniVariant) { InfoItemHolder holder = holderFromInfoType(parent, infoItem.getInfoType(), useMiniVariant); - holder.updateFromItem(infoItem, state); + holder.updateFromItem(infoItem, historyRecordManager); return holder.itemView; } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index 7f5b07dbe..b57a3d2fd 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -1,6 +1,7 @@ package org.schabi.newpipe.info_list; import android.app.Activity; +import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.GridLayoutManager; @@ -27,6 +28,7 @@ import org.schabi.newpipe.info_list.holder.PlaylistMiniInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamGridInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamInfoItemHolder; import org.schabi.newpipe.info_list.holder.StreamMiniInfoItemHolder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.FallbackViewHolder; import org.schabi.newpipe.util.OnClickGesture; @@ -53,7 +55,7 @@ import java.util.List; * along with NewPipe. If not, see . */ -public class InfoListAdapter extends StateObjectsListAdapter { +public class InfoListAdapter extends RecyclerView.Adapter { private static final String TAG = InfoListAdapter.class.getSimpleName(); private static final boolean DEBUG = false; @@ -74,6 +76,7 @@ public class InfoListAdapter extends StateObjectsListAdapter { private final InfoItemBuilder infoItemBuilder; private final ArrayList infoItemList; + private final HistoryRecordManager recordManager; private boolean useMiniVariant = false; private boolean useGridVariant = false; private boolean showFooter = false; @@ -89,9 +92,9 @@ public class InfoListAdapter extends StateObjectsListAdapter { } } - public InfoListAdapter(Activity a) { - super(a.getApplicationContext()); - infoItemBuilder = new InfoItemBuilder(a); + public InfoListAdapter(Context context) { + this.recordManager = new HistoryRecordManager(context); + infoItemBuilder = new InfoItemBuilder(context); infoItemList = new ArrayList<>(); } @@ -121,7 +124,7 @@ public class InfoListAdapter extends StateObjectsListAdapter { public void addInfoItemList(@Nullable final List data) { if (data != null) { - loadStates(data, infoItemList.size(), () -> addInfoItemListImpl(data)); + addInfoItemListImpl(data); } } @@ -149,7 +152,7 @@ public class InfoListAdapter extends StateObjectsListAdapter { public void addInfoItem(@Nullable InfoItem data) { if (data != null) { - loadState(data, infoItemList.size(), () -> addInfoItemImpl(data)); + addInfoItemImpl(data); } } @@ -174,18 +177,11 @@ public class InfoListAdapter extends StateObjectsListAdapter { } } - public void updateStates() { - if (!infoItemList.isEmpty()) { - updateAllStates(infoItemList); - } - } - public void clearStreamItemList() { if (infoItemList.isEmpty()) { return; } infoItemList.clear(); - clearStates(); notifyDataSetChanged(); } @@ -304,7 +300,7 @@ public class InfoListAdapter extends StateObjectsListAdapter { // If header isn't null, offset the items by -1 if (header != null) position--; - ((InfoItemHolder) holder).updateFromItem(infoItemList.get(position), getState(position)); + ((InfoItemHolder) holder).updateFromItem(infoItemList.get(position), recordManager); } else if (holder instanceof HFHolder && position == 0 && header != null) { ((HFHolder) holder).view = header; } else if (holder instanceof HFHolder && position == sizeConsideringHeaderOffset() && footer != null && showFooter) { @@ -317,11 +313,9 @@ public class InfoListAdapter extends StateObjectsListAdapter { if (!payloads.isEmpty() && holder instanceof InfoItemHolder) { for (Object payload : payloads) { if (payload instanceof StreamStateEntity) { - ((InfoItemHolder) holder).updateState(infoItemList.get(header == null ? position : position - 1), - (StreamStateEntity) payload); + ((InfoItemHolder) holder).updateState(infoItemList.get(header == null ? position : position - 1), recordManager); } else if (payload instanceof Boolean) { - ((InfoItemHolder) holder).updateState(infoItemList.get(header == null ? position : position - 1), - null); + ((InfoItemHolder) holder).updateState(infoItemList.get(header == null ? position : position - 1), recordManager); } } } else { @@ -329,11 +323,6 @@ public class InfoListAdapter extends StateObjectsListAdapter { } } - @Override - protected void onItemStateChanged(int position, @Nullable StreamStateEntity state) { - notifyItemChanged(header == null ? position : position + 1, state != null ? state : false); - } - public GridLayoutManager.SpanSizeLookup getSpanSizeLookup(final int spanCount) { return new GridLayoutManager.SpanSizeLookup() { @Override diff --git a/app/src/main/java/org/schabi/newpipe/info_list/StateObjectsListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/StateObjectsListAdapter.java deleted file mode 100644 index 17ac919d9..000000000 --- a/app/src/main/java/org/schabi/newpipe/info_list/StateObjectsListAdapter.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.schabi.newpipe.info_list; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.support.annotation.Nullable; -import android.support.v7.widget.RecyclerView; -import android.util.SparseArray; - -import org.schabi.newpipe.BuildConfig; -import org.schabi.newpipe.R; -import org.schabi.newpipe.database.LocalItem; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; -import org.schabi.newpipe.extractor.InfoItem; -import org.schabi.newpipe.local.history.HistoryRecordManager; -import org.schabi.newpipe.util.SparseArrayUtils; - -import java.util.List; -import java.util.Objects; - -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; - -public abstract class StateObjectsListAdapter extends RecyclerView.Adapter { - - private final SparseArray states; - private final HistoryRecordManager recordManager; - private final CompositeDisposable stateLoaders; - private final Context context; - - public StateObjectsListAdapter(Context context) { - this.states = new SparseArray<>(); - this.recordManager = new HistoryRecordManager(context); - this.context = context; - this.stateLoaders = new CompositeDisposable(); - } - - @Nullable - public StreamStateEntity getState(int position) { - return states.get(position); - } - - protected void clearStates() { - states.clear(); - } - - private void appendStates(List statesEntities, int offset) { - for (int i = 0; i < statesEntities.size(); i++) { - final StreamStateEntity state = statesEntities.get(i); - if (state != null) { - states.append(offset + i, state); - } - } - } - - private void appendState(StreamStateEntity statesEntity, int offset) { - if (statesEntity != null) { - states.append(offset, statesEntity); - } - } - - protected void removeState(int index) { - states.remove(index); - } - - protected void moveState(int from, int to) { - final StreamStateEntity item = states.get(from); - if (from < to) { - SparseArrayUtils.shiftItemsDown(states, from, to); - } else { - SparseArrayUtils.shiftItemsUp(states, to, from); - } - states.put(to, item); - } - - protected void loadStates(List list, int offset, Runnable callback) { - if (isPlaybackStatesVisible()) { - List streamStateEntities = null; - try { - streamStateEntities = recordManager.loadStreamStateBatch(list).blockingGet(); - } catch (Exception e) { - if (BuildConfig.DEBUG) e.printStackTrace(); - } - if(streamStateEntities != null) appendStates(streamStateEntities, offset); - callback.run(); - } else { - callback.run(); - } - } - - protected void loadState(InfoItem item, int offset, Runnable callback) { - if (isPlaybackStatesVisible()) { - StreamStateEntity[] streamStateEntities = null; - try { - streamStateEntities = recordManager.loadStreamState(item).blockingGet(); - } catch (Exception e) { - if (BuildConfig.DEBUG) e.printStackTrace(); - } - if(streamStateEntities != null && streamStateEntities.length > 0) appendState(streamStateEntities[0], offset); - callback.run(); - } else { - callback.run(); - } - } - - protected void loadStatesForLocal(List list, int offset, Runnable callback) { - if (isPlaybackStatesVisible()) { - List streamStateEntities = null; - try { - streamStateEntities = recordManager.loadLocalStreamStateBatch(list).blockingGet(); - } catch (Exception e) { - if (BuildConfig.DEBUG) e.printStackTrace(); - } - if(streamStateEntities != null) appendStates(streamStateEntities, offset); - callback.run(); - } else { - callback.run(); - } - } - - private void processStatesUpdates(List streamStateEntities) { - for (int i = 0; i < streamStateEntities.size(); i++) { - final StreamStateEntity newState = streamStateEntities.get(i); - if (!Objects.equals(states.get(i), newState)) { - if (newState == null) { - states.remove(i); - } else { - states.put(i, newState); - } - onItemStateChanged(i, newState); - } - } - } - - protected void updateAllStates(List list) { - if (isPlaybackStatesVisible()) { - stateLoaders.add( - recordManager.loadStreamStateBatch(list) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::processStatesUpdates, throwable -> { - if (BuildConfig.DEBUG) throwable.printStackTrace(); - }) - ); - } else { - final int[] positions = SparseArrayUtils.getKeys(states); - states.clear(); - for (int pos : positions) onItemStateChanged(pos, null); - } - } - - protected void updateAllLocalStates(List list) { - if (isPlaybackStatesVisible()) { - stateLoaders.add( - recordManager.loadLocalStreamStateBatch(list) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::processStatesUpdates, throwable -> { - if (BuildConfig.DEBUG) throwable.printStackTrace(); - }) - ); - } else { - final int[] positions = SparseArrayUtils.getKeys(states); - states.clear(); - for (int pos : positions) onItemStateChanged(pos, null); - } - } - - public void dispose() { - stateLoaders.dispose(); - } - - protected boolean isPlaybackStatesVisible() { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - return prefs.getBoolean(context.getString(R.string.enable_watch_history_key), true) - && prefs.getBoolean(context.getString(R.string.enable_playback_resume_key), true) - && prefs.getBoolean(context.getString(R.string.enable_playback_state_lists_key), true); - } - - protected abstract void onItemStateChanged(int position, @Nullable StreamStateEntity state); - -} diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java index 317934455..13adadc7b 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java @@ -9,6 +9,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.Localization; /* @@ -40,8 +41,8 @@ public class ChannelInfoItemHolder extends ChannelMiniInfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { - super.updateFromItem(infoItem, state); + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { + super.updateFromItem(infoItem, historyRecordManager); if (!(infoItem instanceof ChannelInfoItem)) return; final ChannelInfoItem item = (ChannelInfoItem) infoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java index a191707c0..c5ec1b187 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java @@ -9,6 +9,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; @@ -32,7 +33,7 @@ public class ChannelMiniInfoItemHolder extends InfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { if (!(infoItem instanceof ChannelInfoItem)) return; final ChannelInfoItem item = (ChannelInfoItem) infoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 4ecf86961..27338a730 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -9,6 +9,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; /* * Created by Christian Schabesberger on 12.02.17. @@ -41,8 +42,8 @@ public class CommentsInfoItemHolder extends CommentsMiniInfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { - super.updateFromItem(infoItem, state); + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { + super.updateFromItem(infoItem, historyRecordManager); if (!(infoItem instanceof CommentsInfoItem)) return; final CommentsInfoItem item = (CommentsInfoItem) infoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java index 3d3a9bb09..baf5e9a6e 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java @@ -13,6 +13,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.util.CommentTextOnTouchListener; import org.schabi.newpipe.util.ImageDisplayConstants; @@ -67,7 +68,7 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { if (!(infoItem instanceof CommentsInfoItem)) return; final CommentsInfoItem item = (CommentsInfoItem) infoItem; @@ -76,20 +77,17 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder { itemThumbnailView, ImageDisplayConstants.DISPLAY_THUMBNAIL_OPTIONS); - itemThumbnailView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if(StringUtil.isBlank(item.getAuthorEndpoint())) return; - try { - final AppCompatActivity activity = (AppCompatActivity) itemBuilder.getContext(); - NavigationHelper.openChannelFragment( - activity.getSupportFragmentManager(), - item.getServiceId(), - item.getAuthorEndpoint(), - item.getAuthorName()); - } catch (Exception e) { - ErrorActivity.reportUiError((AppCompatActivity) itemBuilder.getContext(), e); - } + itemThumbnailView.setOnClickListener(view -> { + if(StringUtil.isBlank(item.getAuthorEndpoint())) return; + try { + final AppCompatActivity activity = (AppCompatActivity) itemBuilder.getContext(); + NavigationHelper.openChannelFragment( + activity.getSupportFragmentManager(), + item.getServiceId(), + item.getAuthorEndpoint(), + item.getAuthorName()); + } catch (Exception e) { + ErrorActivity.reportUiError((AppCompatActivity) itemBuilder.getContext(), e); } }); diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java index 3bc0d9e54..666604993 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; /* * Created by Christian Schabesberger on 12.02.17. @@ -37,8 +38,8 @@ public abstract class InfoItemHolder extends RecyclerView.ViewHolder { this.itemBuilder = infoItemBuilder; } - public abstract void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state); + public abstract void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager); - public void updateState(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateState(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { } } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java index f9d617e66..d2cd1440c 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java @@ -10,6 +10,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.playlist.PlaylistInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; public class PlaylistMiniInfoItemHolder extends InfoItemHolder { @@ -32,7 +33,7 @@ public class PlaylistMiniInfoItemHolder extends InfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { if (!(infoItem instanceof PlaylistInfoItem)) return; final PlaylistInfoItem item = (PlaylistInfoItem) infoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java index 25502bc81..cbe026606 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java @@ -10,6 +10,7 @@ import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.Localization; /* @@ -42,8 +43,8 @@ public class StreamInfoItemHolder extends StreamMiniInfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { - super.updateFromItem(infoItem, state); + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { + super.updateFromItem(infoItem, historyRecordManager); if (!(infoItem instanceof StreamInfoItem)) return; final StreamInfoItem item = (StreamInfoItem) infoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java index aa2a3f878..ba18b1e94 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java @@ -13,6 +13,7 @@ import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.info_list.InfoItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.AnimationUtils; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; @@ -43,7 +44,7 @@ public class StreamMiniInfoItemHolder extends InfoItemHolder { } @Override - public void updateFromItem(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateFromItem(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { if (!(infoItem instanceof StreamInfoItem)) return; final StreamInfoItem item = (StreamInfoItem) infoItem; @@ -55,10 +56,12 @@ public class StreamMiniInfoItemHolder extends InfoItemHolder { itemDurationView.setBackgroundColor(ContextCompat.getColor(itemBuilder.getContext(), R.color.duration_background_color)); itemDurationView.setVisibility(View.VISIBLE); - if (state != null) { + + StreamStateEntity state2 = historyRecordManager.loadStreamState(infoItem).blockingGet()[0]; + if (state2 != null) { itemProgressView.setVisibility(View.VISIBLE); itemProgressView.setMax((int) item.getDuration()); - itemProgressView.setProgress((int) TimeUnit.MILLISECONDS.toSeconds(state.getProgressTime())); + itemProgressView.setProgress((int) TimeUnit.MILLISECONDS.toSeconds(state2.getProgressTime())); } else { itemProgressView.setVisibility(View.GONE); } @@ -101,8 +104,10 @@ public class StreamMiniInfoItemHolder extends InfoItemHolder { } @Override - public void updateState(final InfoItem infoItem, @Nullable final StreamStateEntity state) { + public void updateState(final InfoItem infoItem, final HistoryRecordManager historyRecordManager) { final StreamInfoItem item = (StreamInfoItem) infoItem; + + StreamStateEntity state = historyRecordManager.loadStreamState(infoItem).blockingGet()[0]; if (state != null && item.getDuration() > 0 && item.getStreamType() != StreamType.LIVE_STREAM) { itemProgressView.setMax((int) item.getDuration()); if (itemProgressView.getVisibility() == View.VISIBLE) { @@ -130,4 +135,4 @@ public class StreamMiniInfoItemHolder extends InfoItemHolder { itemView.setLongClickable(false); itemView.setOnLongClickListener(null); } -} +} \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/local/BaseLocalListFragment.java b/app/src/main/java/org/schabi/newpipe/local/BaseLocalListFragment.java index 94672bd49..abdf82353 100644 --- a/app/src/main/java/org/schabi/newpipe/local/BaseLocalListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/BaseLocalListFragment.java @@ -76,8 +76,6 @@ public abstract class BaseLocalListFragment extends BaseStateFragment } updateFlags = 0; } - - itemsList.post(itemListAdapter::updateStates); } /*////////////////////////////////////////////////////////////////////////// @@ -152,7 +150,6 @@ public abstract class BaseLocalListFragment extends BaseStateFragment public void onDestroyView() { super.onDestroyView(); itemsList = null; - itemListAdapter.dispose(); itemListAdapter = null; } diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index d29e85ee3..29079b1d0 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -1,6 +1,7 @@ package org.schabi.newpipe.local; import android.app.Activity; +import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.GridLayoutManager; @@ -11,7 +12,7 @@ import android.view.ViewGroup; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.stream.model.StreamStateEntity; -import org.schabi.newpipe.info_list.StateObjectsListAdapter; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.local.holder.LocalItemHolder; import org.schabi.newpipe.local.holder.LocalPlaylistGridItemHolder; import org.schabi.newpipe.local.holder.LocalPlaylistItemHolder; @@ -49,7 +50,7 @@ import java.util.List; * along with NewPipe. If not, see . */ -public class LocalItemListAdapter extends StateObjectsListAdapter { +public class LocalItemListAdapter extends RecyclerView.Adapter { private static final String TAG = LocalItemListAdapter.class.getSimpleName(); private static final boolean DEBUG = false; @@ -68,6 +69,7 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { private final LocalItemBuilder localItemBuilder; private final ArrayList localItems; + private final HistoryRecordManager recordManager; private final DateFormat dateFormat; private boolean showFooter = false; @@ -75,12 +77,12 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { private View header = null; private View footer = null; - public LocalItemListAdapter(Activity activity) { - super(activity.getApplicationContext()); - localItemBuilder = new LocalItemBuilder(activity); + public LocalItemListAdapter(Context context) { + recordManager = new HistoryRecordManager(context); + localItemBuilder = new LocalItemBuilder(context); localItems = new ArrayList<>(); dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, - Localization.getPreferredLocale(activity)); + Localization.getPreferredLocale(context)); } public void setSelectedListener(OnClickGesture listener) { @@ -93,7 +95,7 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { public void addItems(@Nullable List data) { if (data != null) { - loadStatesForLocal(data, localItems.size(), () -> addItemsImpl(data)); + addItemsImpl(data); } } @@ -124,16 +126,9 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { } } - public void updateStates() { - if (!localItems.isEmpty()) { - updateAllLocalStates(localItems); - } - } - public void removeItem(final LocalItem data) { final int index = localItems.indexOf(data); localItems.remove(index); - removeState(index); notifyItemRemoved(index + (header != null ? 1 : 0)); } @@ -145,7 +140,6 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { if (actualFrom >= localItems.size() || actualTo >= localItems.size()) return false; localItems.add(actualTo, localItems.remove(actualFrom)); - moveState(actualFrom, actualTo); notifyItemMoved(fromAdapterPosition, toAdapterPosition); return true; } @@ -155,7 +149,6 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { return; } localItems.clear(); - clearStates(); notifyDataSetChanged(); } @@ -276,7 +269,7 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { // If header isn't null, offset the items by -1 if (header != null) position--; - ((LocalItemHolder) holder).updateFromItem(localItems.get(position), getState(position), dateFormat); + ((LocalItemHolder) holder).updateFromItem(localItems.get(position), recordManager, dateFormat); } else if (holder instanceof HeaderFooterHolder && position == 0 && header != null) { ((HeaderFooterHolder) holder).view = header; } else if (holder instanceof HeaderFooterHolder && position == sizeConsideringHeader() @@ -290,11 +283,9 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { if (!payloads.isEmpty() && holder instanceof LocalItemHolder) { for (Object payload : payloads) { if (payload instanceof StreamStateEntity) { - ((LocalItemHolder) holder).updateState(localItems.get(header == null ? position : position - 1), - (StreamStateEntity) payload); + ((LocalItemHolder) holder).updateState(localItems.get(header == null ? position : position - 1), recordManager); } else if (payload instanceof Boolean) { - ((LocalItemHolder) holder).updateState(localItems.get(header == null ? position : position - 1), - null); + ((LocalItemHolder) holder).updateState(localItems.get(header == null ? position : position - 1), recordManager); } } } else { @@ -302,11 +293,6 @@ public class LocalItemListAdapter extends StateObjectsListAdapter { } } - @Override - protected void onItemStateChanged(int position, @Nullable StreamStateEntity state) { - notifyItemChanged(header == null ? position : position + 1, state != null ? state : false); - } - public GridLayoutManager.SpanSizeLookup getSpanSizeLookup(final int spanCount) { return new GridLayoutManager.SpanSizeLookup() { @Override diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java index 5973ad920..204d52e69 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java @@ -113,7 +113,6 @@ public final class PlaylistAppendDialog extends PlaylistDialog { super.onDestroyView(); if (playlistReactor != null) playlistReactor.dispose(); if (playlistAdapter != null) { - playlistAdapter.dispose(); playlistAdapter.unsetSelectedListener(); } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java index c00fa1fb4..605af95b8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import java.text.DateFormat; @@ -40,8 +41,8 @@ public abstract class LocalItemHolder extends RecyclerView.ViewHolder { this.itemBuilder = itemBuilder; } - public abstract void updateFromItem(final LocalItem item, @Nullable final StreamStateEntity state, final DateFormat dateFormat); + public abstract void updateFromItem(final LocalItem item, HistoryRecordManager historyRecordManager, final DateFormat dateFormat); - public void updateState(final LocalItem localItem, @Nullable final StreamStateEntity state) { + public void updateState(final LocalItem localItem, HistoryRecordManager historyRecordManager) { } } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java index 0e6eca9ba..3b41dd461 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java @@ -8,6 +8,7 @@ import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import java.text.DateFormat; @@ -23,7 +24,7 @@ public class LocalPlaylistItemHolder extends PlaylistItemHolder { } @Override - public void updateFromItem(final LocalItem localItem, @Nullable final StreamStateEntity state, final DateFormat dateFormat) { + public void updateFromItem(final LocalItem localItem, HistoryRecordManager historyRecordManager, final DateFormat dateFormat) { if (!(localItem instanceof PlaylistMetadataEntry)) return; final PlaylistMetadataEntry item = (PlaylistMetadataEntry) localItem; @@ -34,6 +35,6 @@ public class LocalPlaylistItemHolder extends PlaylistItemHolder { itemBuilder.displayImage(item.thumbnailUrl, itemThumbnailView, ImageDisplayConstants.DISPLAY_PLAYLIST_OPTIONS); - super.updateFromItem(localItem, state, dateFormat); + super.updateFromItem(localItem, historyRecordManager, dateFormat); } } diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java index 0c4e66c9d..8f0b5cdb9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java @@ -14,12 +14,14 @@ import org.schabi.newpipe.database.playlist.PlaylistStreamEntry; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.AnimationUtils; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.views.AnimatedProgressBar; import java.text.DateFormat; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; public class LocalPlaylistStreamItemHolder extends LocalItemHolder { @@ -47,7 +49,7 @@ public class LocalPlaylistStreamItemHolder extends LocalItemHolder { } @Override - public void updateFromItem(final LocalItem localItem, @Nullable final StreamStateEntity state, final DateFormat dateFormat) { + public void updateFromItem(final LocalItem localItem, HistoryRecordManager historyRecordManager, final DateFormat dateFormat) { if (!(localItem instanceof PlaylistStreamEntry)) return; final PlaylistStreamEntry item = (PlaylistStreamEntry) localItem; @@ -60,6 +62,8 @@ public class LocalPlaylistStreamItemHolder extends LocalItemHolder { itemDurationView.setBackgroundColor(ContextCompat.getColor(itemBuilder.getContext(), R.color.duration_background_color)); itemDurationView.setVisibility(View.VISIBLE); + + StreamStateEntity state = historyRecordManager.loadLocalStreamStateBatch(new ArrayList() {{ add(localItem); }}).blockingGet().get(0); if (state != null) { itemProgressView.setVisibility(View.VISIBLE); itemProgressView.setMax((int) item.duration); @@ -94,9 +98,11 @@ public class LocalPlaylistStreamItemHolder extends LocalItemHolder { } @Override - public void updateState(LocalItem localItem, @Nullable StreamStateEntity state) { + public void updateState(LocalItem localItem, HistoryRecordManager historyRecordManager) { if (!(localItem instanceof PlaylistStreamEntry)) return; final PlaylistStreamEntry item = (PlaylistStreamEntry) localItem; + + StreamStateEntity state = historyRecordManager.loadLocalStreamStateBatch(new ArrayList() {{ add(localItem); }}).blockingGet().get(0); if (state != null && item.duration > 0) { itemProgressView.setMax((int) item.duration); if (itemProgressView.getVisibility() == View.VISIBLE) { diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java index b24051a4f..387e98549 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.local.holder; import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; +import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -13,12 +14,14 @@ import org.schabi.newpipe.database.stream.StreamStatisticsEntry; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.AnimationUtils; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.views.AnimatedProgressBar; import java.text.DateFormat; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; /* @@ -76,7 +79,7 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { } @Override - public void updateFromItem(final LocalItem localItem, @Nullable final StreamStateEntity state, final DateFormat dateFormat) { + public void updateFromItem(final LocalItem localItem, HistoryRecordManager historyRecordManager, final DateFormat dateFormat) { if (!(localItem instanceof StreamStatisticsEntry)) return; final StreamStatisticsEntry item = (StreamStatisticsEntry) localItem; @@ -88,6 +91,8 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { itemDurationView.setBackgroundColor(ContextCompat.getColor(itemBuilder.getContext(), R.color.duration_background_color)); itemDurationView.setVisibility(View.VISIBLE); + + StreamStateEntity state = historyRecordManager.loadLocalStreamStateBatch(new ArrayList() {{ add(localItem); }}).blockingGet().get(0); if (state != null) { itemProgressView.setVisibility(View.VISIBLE); itemProgressView.setMax((int) item.duration); @@ -124,9 +129,11 @@ public class LocalStatisticStreamItemHolder extends LocalItemHolder { } @Override - public void updateState(LocalItem localItem, @Nullable StreamStateEntity state) { + public void updateState(LocalItem localItem, HistoryRecordManager historyRecordManager) { if (!(localItem instanceof StreamStatisticsEntry)) return; final StreamStatisticsEntry item = (StreamStatisticsEntry) localItem; + + StreamStateEntity state = historyRecordManager.loadLocalStreamStateBatch(new ArrayList() {{ add(localItem); }}).blockingGet().get(0); if (state != null && item.duration > 0) { itemProgressView.setMax((int) item.duration); if (itemProgressView.getVisibility() == View.VISIBLE) { diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java index 2a81f9571..f8c625a92 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java @@ -9,6 +9,7 @@ import org.schabi.newpipe.R; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import java.text.DateFormat; @@ -33,7 +34,7 @@ public abstract class PlaylistItemHolder extends LocalItemHolder { } @Override - public void updateFromItem(final LocalItem localItem, @Nullable final StreamStateEntity state, final DateFormat dateFormat) { + public void updateFromItem(final LocalItem localItem, HistoryRecordManager historyRecordManager, final DateFormat dateFormat) { itemView.setOnClickListener(view -> { if (itemBuilder.getOnItemSelectedListener() != null) { itemBuilder.getOnItemSelectedListener().selected(localItem); diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java index bdcd42f67..da7df7456 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java @@ -8,6 +8,7 @@ import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity; import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.local.LocalItemBuilder; +import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.Localization; @@ -23,7 +24,7 @@ public class RemotePlaylistItemHolder extends PlaylistItemHolder { } @Override - public void updateFromItem(final LocalItem localItem, @Nullable final StreamStateEntity state, final DateFormat dateFormat) { + public void updateFromItem(final LocalItem localItem, HistoryRecordManager historyRecordManager, final DateFormat dateFormat) { if (!(localItem instanceof PlaylistRemoteEntity)) return; final PlaylistRemoteEntity item = (PlaylistRemoteEntity) localItem; @@ -35,6 +36,6 @@ public class RemotePlaylistItemHolder extends PlaylistItemHolder { itemBuilder.displayImage(item.getThumbnailUrl(), itemThumbnailView, ImageDisplayConstants.DISPLAY_PLAYLIST_OPTIONS); - super.updateFromItem(localItem, state, dateFormat); + super.updateFromItem(localItem, historyRecordManager, dateFormat); } } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index 9a53e7e94..c194e664a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -130,7 +130,6 @@ public class SubscriptionFragment extends BaseStateFragment Date: Wed, 14 Aug 2019 11:49:37 +0200 Subject: [PATCH 079/122] Fix some inspection warnings in modified files --- .../org/schabi/newpipe/info_list/InfoItemBuilder.java | 2 -- .../org/schabi/newpipe/info_list/InfoListAdapter.java | 1 - .../newpipe/info_list/holder/ChannelInfoItemHolder.java | 2 -- .../info_list/holder/ChannelMiniInfoItemHolder.java | 2 -- .../newpipe/info_list/holder/CommentsInfoItemHolder.java | 2 -- .../info_list/holder/CommentsMiniInfoItemHolder.java | 5 +---- .../schabi/newpipe/info_list/holder/InfoItemHolder.java | 2 -- .../info_list/holder/PlaylistMiniInfoItemHolder.java | 2 -- .../newpipe/info_list/holder/StreamInfoItemHolder.java | 2 -- .../info_list/holder/StreamMiniInfoItemHolder.java | 1 - .../org/schabi/newpipe/local/LocalItemListAdapter.java | 1 - .../org/schabi/newpipe/local/holder/LocalItemHolder.java | 2 -- .../newpipe/local/holder/LocalPlaylistItemHolder.java | 2 -- .../local/holder/LocalPlaylistStreamItemHolder.java | 1 - .../local/holder/LocalStatisticStreamItemHolder.java | 1 - .../schabi/newpipe/local/holder/PlaylistItemHolder.java | 2 -- .../newpipe/local/holder/RemotePlaylistItemHolder.java | 2 -- .../newpipe/local/subscription/SubscriptionFragment.java | 8 ++++---- 18 files changed, 5 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java index 46b9bf709..970c824cc 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java @@ -2,14 +2,12 @@ package org.schabi.newpipe.info_list; import android.content.Context; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.Log; import android.view.View; import android.view.ViewGroup; import com.nostra13.universalimageloader.core.ImageLoader; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index b57a3d2fd..a5af93957 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.info_list; -import android.app.Activity; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java index 13adadc7b..956bc47a6 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelInfoItemHolder.java @@ -1,11 +1,9 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.TextView; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java index c5ec1b187..3f4e4e398 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/ChannelMiniInfoItemHolder.java @@ -1,11 +1,9 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.TextView; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java index 27338a730..90212ea31 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsInfoItemHolder.java @@ -1,11 +1,9 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.TextView; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java index baf5e9a6e..951076263 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java @@ -1,15 +1,12 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.text.util.Linkify; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import org.jsoup.helper.StringUtil; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; @@ -99,7 +96,7 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder { itemContentView.setOnTouchListener(CommentTextOnTouchListener.INSTANCE); if (itemContentView.getLineCount() == 0) { - itemContentView.post(() -> ellipsize()); + itemContentView.post(this::ellipsize); } else { ellipsize(); } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java index 666604993..e06419126 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/InfoItemHolder.java @@ -1,11 +1,9 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java index d2cd1440c..b73f22d93 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/PlaylistMiniInfoItemHolder.java @@ -1,12 +1,10 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.playlist.PlaylistInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java index cbe026606..ea058bc0e 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamInfoItemHolder.java @@ -1,12 +1,10 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.text.TextUtils; import android.view.ViewGroup; import android.widget.TextView; import org.schabi.newpipe.R; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.InfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.info_list.InfoItemBuilder; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java index ba18b1e94..6c685c6cf 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/StreamMiniInfoItemHolder.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.info_list.holder; -import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index 29079b1d0..ae43c051d 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.local; -import android.app.Activity; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java index 605af95b8..ed6a9b4cd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalItemHolder.java @@ -1,12 +1,10 @@ package org.schabi.newpipe.local.holder; -import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; import org.schabi.newpipe.database.LocalItem; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java index 3b41dd461..1366bd02e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistItemHolder.java @@ -1,12 +1,10 @@ package org.schabi.newpipe.local.holder; -import android.support.annotation.Nullable; import android.view.View; import android.view.ViewGroup; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; import org.schabi.newpipe.util.ImageDisplayConstants; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java index 8f0b5cdb9..c5d9a6428 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalPlaylistStreamItemHolder.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.local.holder; -import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; import android.view.MotionEvent; import android.view.View; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java index 387e98549..05717392c 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/LocalStatisticStreamItemHolder.java @@ -2,7 +2,6 @@ package org.schabi.newpipe.local.holder; import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; -import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java index f8c625a92..c5f1813c7 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/PlaylistItemHolder.java @@ -1,13 +1,11 @@ package org.schabi.newpipe.local.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import org.schabi.newpipe.R; import org.schabi.newpipe.database.LocalItem; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; diff --git a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java index da7df7456..f9542850e 100644 --- a/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/local/holder/RemotePlaylistItemHolder.java @@ -1,11 +1,9 @@ package org.schabi.newpipe.local.holder; -import android.support.annotation.Nullable; import android.view.ViewGroup; import org.schabi.newpipe.database.LocalItem; import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity; -import org.schabi.newpipe.database.stream.model.StreamStateEntity; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.local.LocalItemBuilder; import org.schabi.newpipe.local.history.HistoryRecordManager; diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index c194e664a..fc9a5c68c 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -427,12 +427,12 @@ public class SubscriptionFragment extends BaseStateFragment> getDeleteObserver(){ + private Observer> getDeleteObserver() { return new Observer>() { @Override public void onSubscribe(Disposable d) { From 00fc5217f549bfd3d13f09fb8ddfc1afacbae0fe Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 14 Aug 2019 12:54:17 +0200 Subject: [PATCH 080/122] Fix potential disposable leak in PlaylistAppendDialog --- .../local/dialog/PlaylistAppendDialog.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java index 204d52e69..a72254df1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java @@ -28,6 +28,7 @@ import java.util.Collections; import java.util.List; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; public final class PlaylistAppendDialog extends PlaylistDialog { @@ -36,7 +37,7 @@ public final class PlaylistAppendDialog extends PlaylistDialog { private RecyclerView playlistRecyclerView; private LocalItemListAdapter playlistAdapter; - private Disposable playlistReactor; + private CompositeDisposable playlistDisposables = new CompositeDisposable(); public static PlaylistAppendDialog fromStreamInfo(final StreamInfo info) { PlaylistAppendDialog dialog = new PlaylistAppendDialog(); @@ -99,9 +100,9 @@ public final class PlaylistAppendDialog extends PlaylistDialog { final View newPlaylistButton = view.findViewById(R.id.newPlaylist); newPlaylistButton.setOnClickListener(ignored -> openCreatePlaylistDialog()); - playlistReactor = playlistManager.getPlaylists() + playlistDisposables.add(playlistManager.getPlaylists() .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::onPlaylistsReceived); + .subscribe(this::onPlaylistsReceived)); } /*////////////////////////////////////////////////////////////////////////// @@ -111,12 +112,12 @@ public final class PlaylistAppendDialog extends PlaylistDialog { @Override public void onDestroyView() { super.onDestroyView(); - if (playlistReactor != null) playlistReactor.dispose(); + playlistDisposables.dispose(); if (playlistAdapter != null) { playlistAdapter.unsetSelectedListener(); } - playlistReactor = null; + playlistDisposables.clear(); playlistRecyclerView = null; playlistAdapter = null; } @@ -150,13 +151,12 @@ public final class PlaylistAppendDialog extends PlaylistDialog { @NonNull List streams) { if (getStreams() == null) return; - @SuppressLint("ShowToast") final Toast successToast = Toast.makeText(getContext(), R.string.playlist_add_stream_success, Toast.LENGTH_SHORT); - manager.appendToPlaylist(playlist.uid, streams) + playlistDisposables.add(manager.appendToPlaylist(playlist.uid, streams) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(ignored -> successToast.show()); + .subscribe(ignored -> successToast.show())); getDialog().dismiss(); } From 7da827a06ab6cae6beab8c91d4cefbc231df2cd9 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 14 Aug 2019 12:55:17 +0200 Subject: [PATCH 081/122] Fix annotation warnings --- .../java/org/schabi/newpipe/local/LocalItemListAdapter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index ae43c051d..286eb25d6 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -228,8 +228,9 @@ public class LocalItemListAdapter extends RecyclerView.Adapter Date: Wed, 14 Aug 2019 12:57:04 +0200 Subject: [PATCH 082/122] Remove "Trollolo" logs They were probably left behind by accident after a debugging session. --- .../main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java | 1 - .../main/java/org/schabi/newpipe/info_list/InfoListAdapter.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java index 970c824cc..da62efcb9 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java @@ -82,7 +82,6 @@ public class InfoItemBuilder { case COMMENT: return useMiniVariant ? new CommentsMiniInfoItemHolder(this, parent) : new CommentsInfoItemHolder(this, parent); default: - Log.e(TAG, "Trollolo"); throw new RuntimeException("InfoType not expected = " + infoType.name()); } } diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index a5af93957..40164a6be 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -249,7 +249,6 @@ public class InfoListAdapter extends RecyclerView.Adapter Date: Wed, 14 Aug 2019 13:11:16 +0200 Subject: [PATCH 083/122] Clean up code for addItems() on ItemListAdapters. --- .../newpipe/info_list/InfoListAdapter.java | 46 +++++++++---------- .../newpipe/local/LocalItemListAdapter.java | 24 ++++------ 2 files changed, 29 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java index 40164a6be..d8515e4ba 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoListAdapter.java @@ -76,6 +76,7 @@ public class InfoListAdapter extends RecyclerView.Adapter infoItemList; private final HistoryRecordManager recordManager; + private boolean useMiniVariant = false; private boolean useGridVariant = false; private boolean showFooter = false; @@ -122,57 +123,52 @@ public class InfoListAdapter extends RecyclerView.Adapter data) { - if (data != null) { - addInfoItemListImpl(data); - } - } - - private void addInfoItemListImpl(@NonNull List data) { - if (DEBUG) { - Log.d(TAG, "addInfoItemList() before > infoItemList.size() = " + infoItemList.size() + ", data.size() = " + data.size()); + if (data == null) { + return; } + if (DEBUG) Log.d(TAG, "addInfoItemList() before > infoItemList.size() = " + + infoItemList.size() + ", data.size() = " + data.size()); int offsetStart = sizeConsideringHeaderOffset(); infoItemList.addAll(data); - if (DEBUG) { - Log.d(TAG, "addInfoItemList() after > offsetStart = " + offsetStart + ", infoItemList.size() = " + infoItemList.size() + ", header = " + header + ", footer = " + footer + ", showFooter = " + showFooter); - } - + if (DEBUG) Log.d(TAG, "addInfoItemList() after > offsetStart = " + offsetStart + + ", infoItemList.size() = " + infoItemList.size() + + ", header = " + header + ", footer = " + footer + + ", showFooter = " + showFooter); notifyItemRangeInserted(offsetStart, data.size()); if (footer != null && showFooter) { int footerNow = sizeConsideringHeaderOffset(); notifyItemMoved(offsetStart, footerNow); - if (DEBUG) Log.d(TAG, "addInfoItemList() footer from " + offsetStart + " to " + footerNow); + if (DEBUG) Log.d(TAG, "addInfoItemList() footer from " + offsetStart + + " to " + footerNow); } } public void addInfoItem(@Nullable InfoItem data) { - if (data != null) { - addInfoItemImpl(data); - } - } - - private void addInfoItemImpl(@NonNull InfoItem data) { - if (DEBUG) { - Log.d(TAG, "addInfoItem() before > infoItemList.size() = " + infoItemList.size() + ", thread = " + Thread.currentThread()); + if (data == null) { + return; } + if (DEBUG) Log.d(TAG, "addInfoItem() before > infoItemList.size() = " + + infoItemList.size() + ", thread = " + Thread.currentThread()); int positionInserted = sizeConsideringHeaderOffset(); infoItemList.add(data); - if (DEBUG) { - Log.d(TAG, "addInfoItem() after > position = " + positionInserted + ", infoItemList.size() = " + infoItemList.size() + ", header = " + header + ", footer = " + footer + ", showFooter = " + showFooter); - } + if (DEBUG) Log.d(TAG, "addInfoItem() after > position = " + positionInserted + + ", infoItemList.size() = " + infoItemList.size() + + ", header = " + header + ", footer = " + footer + + ", showFooter = " + showFooter); notifyItemInserted(positionInserted); if (footer != null && showFooter) { int footerNow = sizeConsideringHeaderOffset(); notifyItemMoved(positionInserted, footerNow); - if (DEBUG) Log.d(TAG, "addInfoItem() footer from " + positionInserted + " to " + footerNow); + if (DEBUG) Log.d(TAG, "addInfoItem() footer from " + positionInserted + + " to " + footerNow); } } diff --git a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java index 286eb25d6..4b1a1f363 100644 --- a/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/local/LocalItemListAdapter.java @@ -93,27 +93,19 @@ public class LocalItemListAdapter extends RecyclerView.Adapter data) { - if (data != null) { - addItemsImpl(data); - } - } - - private void addItemsImpl(@NonNull List data) { - if (DEBUG) { - Log.d(TAG, "addItems() before > localItems.size() = " + - localItems.size() + ", data.size() = " + data.size()); + if (data == null) { + return; } + if (DEBUG) Log.d(TAG, "addItems() before > localItems.size() = " + + localItems.size() + ", data.size() = " + data.size()); int offsetStart = sizeConsideringHeader(); localItems.addAll(data); - if (DEBUG) { - Log.d(TAG, "addItems() after > offsetStart = " + offsetStart + - ", localItems.size() = " + localItems.size() + - ", header = " + header + ", footer = " + footer + - ", showFooter = " + showFooter); - } - + if (DEBUG) Log.d(TAG, "addItems() after > offsetStart = " + offsetStart + + ", localItems.size() = " + localItems.size() + + ", header = " + header + ", footer = " + footer + + ", showFooter = " + showFooter); notifyItemRangeInserted(offsetStart, data.size()); if (footer != null && showFooter) { From c190dc4792f5bb007f346681aaf3bced7176e253 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 14 Aug 2019 13:11:44 +0200 Subject: [PATCH 084/122] Fix annotation warnings in modified files --- .../main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java | 1 - .../newpipe/info_list/holder/CommentsMiniInfoItemHolder.java | 2 +- .../org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java | 2 -- .../schabi/newpipe/local/subscription/SubscriptionFragment.java | 1 - 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java index da62efcb9..e279ee21b 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/InfoItemBuilder.java @@ -2,7 +2,6 @@ package org.schabi.newpipe.info_list; import android.content.Context; import android.support.annotation.NonNull; -import android.util.Log; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java index 951076263..4794ce3fd 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java +++ b/app/src/main/java/org/schabi/newpipe/info_list/holder/CommentsMiniInfoItemHolder.java @@ -46,7 +46,7 @@ public class CommentsMiniInfoItemHolder extends InfoItemHolder { if(hours != null) timestamp += (Integer.parseInt(hours.replace(":", ""))*3600); if(minutes != null) timestamp += (Integer.parseInt(minutes.replace(":", ""))*60); if(seconds != null) timestamp += (Integer.parseInt(seconds)); - return streamUrl + url.replace(match.group(0), "#timestamp=" + String.valueOf(timestamp)); + return streamUrl + url.replace(match.group(0), "#timestamp=" + timestamp); } }; diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java index a72254df1..656570943 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.local.dialog; -import android.annotation.SuppressLint; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -29,7 +28,6 @@ import java.util.List; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; public final class PlaylistAppendDialog extends PlaylistDialog { private static final String TAG = PlaylistAppendDialog.class.getCanonicalName(); diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java index fc9a5c68c..a2727c29b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.java @@ -379,7 +379,6 @@ public class SubscriptionFragment extends BaseStateFragment { FragmentManager fragmentManager = getFM(); NavigationHelper.openWhatsNewFragment(fragmentManager); From c96a05a8f9e807d90b838f86af6a0faa5ace152e Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 14 Aug 2019 14:17:05 +0200 Subject: [PATCH 085/122] Customize "start here" actions in playlist item views Now those actions start playing the whole playlist from the chosen stream, instead of playing only the chosen stream. --- .../list/playlist/PlaylistFragment.java | 42 +++++++++++++++++++ .../history/StatisticsPlaylistFragment.java | 10 +++++ .../local/playlist/LocalPlaylistFragment.java | 9 ++++ 3 files changed, 61 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index 1bac54df8..b469be3b8 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -1,8 +1,11 @@ package org.schabi.newpipe.fragments.list.playlist; +import android.app.Activity; +import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.util.Log; @@ -26,7 +29,9 @@ import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.playlist.PlaylistInfo; import org.schabi.newpipe.extractor.stream.StreamInfoItem; +import org.schabi.newpipe.extractor.stream.StreamType; import org.schabi.newpipe.fragments.list.BaseListInfoFragment; +import org.schabi.newpipe.info_list.InfoItemDialog; import org.schabi.newpipe.local.playlist.RemotePlaylistManager; import org.schabi.newpipe.player.playqueue.PlayQueue; import org.schabi.newpipe.player.playqueue.PlaylistPlayQueue; @@ -36,6 +41,7 @@ import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.ImageDisplayConstants; import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.ShareUtils; +import org.schabi.newpipe.util.StreamDialogEntry; import org.schabi.newpipe.util.ThemeHelper; import java.util.ArrayList; @@ -130,6 +136,42 @@ public class PlaylistFragment extends BaseListInfoFragment { infoListAdapter.useMiniItemVariants(true); } + private PlayQueue getPlayQueueStartingAt(StreamInfoItem infoItem) { + return getPlayQueue(Math.max(infoListAdapter.getItemsList().indexOf(infoItem), 0)); + } + + @Override + protected void showStreamDialog(StreamInfoItem item) { + final Context context = getContext(); + final Activity activity = getActivity(); + if (context == null || context.getResources() == null || activity == null) return; + + if (item.getStreamType() == StreamType.AUDIO_STREAM) { + StreamDialogEntry.setEnabledEntries( + StreamDialogEntry.enqueue_on_background, + StreamDialogEntry.start_here_on_background, + StreamDialogEntry.append_playlist, + StreamDialogEntry.share); + } else { + StreamDialogEntry.setEnabledEntries( + StreamDialogEntry.enqueue_on_background, + StreamDialogEntry.enqueue_on_popup, + StreamDialogEntry.start_here_on_background, + StreamDialogEntry.start_here_on_popup, + StreamDialogEntry.append_playlist, + StreamDialogEntry.share); + + StreamDialogEntry.start_here_on_popup.setCustomAction( + (fragment, infoItem) -> NavigationHelper.playOnPopupPlayer(context, getPlayQueueStartingAt(infoItem), true)); + } + + StreamDialogEntry.start_here_on_background.setCustomAction( + (fragment, infoItem) -> NavigationHelper.playOnBackgroundPlayer(context, getPlayQueueStartingAt(infoItem), true)); + + new InfoItemDialog(activity, item, StreamDialogEntry.getCommands(context), (dialog, which) -> + StreamDialogEntry.clickOn(which, this, item)).show(); + } + @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { if (DEBUG) Log.d(TAG, "onCreateOptionsMenu() called with: menu = [" + menu + diff --git a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java index f70da31d9..149dcfbdf 100644 --- a/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java @@ -22,6 +22,7 @@ import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; import org.schabi.newpipe.R; import org.schabi.newpipe.database.LocalItem; +import org.schabi.newpipe.database.playlist.PlaylistStreamEntry; import org.schabi.newpipe.database.stream.StreamStatisticsEntry; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamType; @@ -357,6 +358,10 @@ public class StatisticsPlaylistFragment startLoading(true); } + private PlayQueue getPlayQueueStartingAt(StreamStatisticsEntry infoItem) { + return getPlayQueue(Math.max(itemListAdapter.getItemsList().indexOf(infoItem), 0)); + } + private void showStreamDialog(final StreamStatisticsEntry item) { final Context context = getContext(); final Activity activity = getActivity(); @@ -379,8 +384,13 @@ public class StatisticsPlaylistFragment StreamDialogEntry.delete, StreamDialogEntry.append_playlist, StreamDialogEntry.share); + + StreamDialogEntry.start_here_on_popup.setCustomAction( + (fragment, infoItemDuplicate) -> NavigationHelper.playOnPopupPlayer(context, getPlayQueueStartingAt(item), true)); } + StreamDialogEntry.start_here_on_background.setCustomAction( + (fragment, infoItemDuplicate) -> NavigationHelper.playOnBackgroundPlayer(context, getPlayQueueStartingAt(item), true)); StreamDialogEntry.delete.setCustomAction((fragment, infoItemDuplicate) -> deleteEntry(Math.max(itemListAdapter.getItemsList().indexOf(item), 0))); diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java index 640174ab7..a8750ed47 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java @@ -511,6 +511,10 @@ public class LocalPlaylistFragment extends BaseLocalListFragment NavigationHelper.playOnPopupPlayer(context, getPlayQueueStartingAt(item), true)); } + StreamDialogEntry.start_here_on_background.setCustomAction( + (fragment, infoItemDuplicate) -> NavigationHelper.playOnBackgroundPlayer(context, getPlayQueueStartingAt(item), true)); StreamDialogEntry.set_as_playlist_thumbnail.setCustomAction( (fragment, infoItemDuplicate) -> changeThumbnailUrl(item.thumbnailUrl)); StreamDialogEntry.delete.setCustomAction( From 652184506b238704f0841d873e25ded9e98552d8 Mon Sep 17 00:00:00 2001 From: kapodamy Date: Wed, 14 Aug 2019 15:30:34 -0300 Subject: [PATCH 086/122] check for Storage Access Framework features * creating files though saf * picking folder though saf --- .../newpipe/download/DownloadDialog.java | 4 +- .../settings/DownloadSettingsFragment.java | 27 ++++++------ .../newpipe/settings/NewPipeSettings.java | 42 ++++++++++++++++++- 3 files changed, 56 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index ea212e1e8..175aaca92 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -569,7 +569,7 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck // This part is called if with SAF preferred: // * older android version running // * save path not defined (via download settings) - // * the user as checked the "ask where to download" option + // * the user checked the "ask where to download" option if (!askForSavePath) Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show(); @@ -728,7 +728,7 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck try { if (storage.length() > 0) storage.truncate(); } catch (IOException e) { - Log.e(TAG, "failed to overwrite the file: " + storage.getUri().toString(), e); + Log.e(TAG, "failed to truncate the file: " + storage.getUri().toString(), e); showFailedDialog(R.string.overwrite_failed); return; } diff --git a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java index 4212f4cb8..db7754caf 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java @@ -35,8 +35,6 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { private String DOWNLOAD_PATH_VIDEO_PREFERENCE; private String DOWNLOAD_PATH_AUDIO_PREFERENCE; - private String DOWNLOAD_STORAGE_ASK; - private Preference prefPathVideo; private Preference prefPathAudio; private Preference prefStorageAsk; @@ -49,14 +47,14 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { DOWNLOAD_PATH_VIDEO_PREFERENCE = getString(R.string.download_path_video_key); DOWNLOAD_PATH_AUDIO_PREFERENCE = getString(R.string.download_path_audio_key); - DOWNLOAD_STORAGE_ASK = getString(R.string.downloads_storage_ask); + final String downloadStorageAsk = getString(R.string.downloads_storage_ask); prefPathVideo = findPreference(DOWNLOAD_PATH_VIDEO_PREFERENCE); prefPathAudio = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE); - prefStorageAsk = findPreference(DOWNLOAD_STORAGE_ASK); + prefStorageAsk = findPreference(downloadStorageAsk); updatePreferencesSummary(); - updatePathPickers(!defaultPreferences.getBoolean(DOWNLOAD_STORAGE_ASK, false)); + updatePathPickers(!defaultPreferences.getBoolean(downloadStorageAsk, false)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { prefStorageAsk.setSummary(R.string.downloads_storage_ask_summary); @@ -180,7 +178,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { } Intent i; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.hasOpenDocumentTreeSupport) { i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) .putExtra("android.content.extra.SHOW_ADVANCED", true) .addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | StoredDirectoryHelper.PERMISSION_FLAGS); @@ -221,16 +219,17 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { return; } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - // steps: - // 1. revoke permissions on the old save path - // 2. acquire permissions on the new save path - // 3. save the new path, if step(2) was successful - final Context ctx = getContext(); - if (ctx == null) throw new NullPointerException("getContext()"); - forgetSAFTree(ctx, defaultPreferences.getString(key, "")); + // revoke permissions on the old save path (required for SAF only) + final Context ctx = getContext(); + if (ctx == null) throw new NullPointerException("getContext()"); + forgetSAFTree(ctx, defaultPreferences.getString(key, "")); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.hasOpenDocumentTreeSupport) { + // steps to acquire the selected path: + // 1. acquire permissions on the new save path + // 2. save the new path, if step(2) was successful try { ctx.grantUriPermission(ctx.getPackageName(), uri, StoredDirectoryHelper.PERMISSION_FLAGS); diff --git a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java index a0f3b6063..64f0db489 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java +++ b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java @@ -21,7 +21,10 @@ package org.schabi.newpipe.settings; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Environment; import android.preference.PreferenceManager; @@ -30,6 +33,7 @@ import android.support.annotation.NonNull; import org.schabi.newpipe.R; import java.io.File; +import java.util.List; /** * Helper for global settings @@ -58,6 +62,20 @@ public class NewPipeSettings { private NewPipeSettings() { } + /** + * Indicates if is possible pick a directory though the Storage Access Framework. + * {@code true} if at least one provider can handle {@link Intent#ACTION_OPEN_DOCUMENT_TREE} + * otherwise {@code false} + */ + public static boolean hasOpenDocumentTreeSupport = false; + + /** + * Indicates if is possible create a file though the Storage Access Framework. + * {@code true} if at least one provider can handle {@link Intent#ACTION_CREATE_DOCUMENT} + * otherwise {@code false} + */ + public static boolean hasCreateDocumentSupport = false; + public static void initSettings(Context context) { PreferenceManager.setDefaultValues(context, R.xml.appearance_settings, true); PreferenceManager.setDefaultValues(context, R.xml.content_settings, true); @@ -67,7 +85,14 @@ public class NewPipeSettings { PreferenceManager.setDefaultValues(context, R.xml.video_audio_settings, true); PreferenceManager.setDefaultValues(context, R.xml.debug_settings, true); - if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + hasOpenDocumentTreeSupport = testFor(context, Intent.ACTION_OPEN_DOCUMENT_TREE); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + hasCreateDocumentSupport = testFor(context, Intent.ACTION_CREATE_DOCUMENT); + } + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || !hasOpenDocumentTreeSupport) { getVideoDownloadFolder(context); getAudioDownloadFolder(context); } @@ -100,4 +125,19 @@ public class NewPipeSettings { private static String getNewPipeChildFolderPathForDir(File dir) { return new File(dir, "NewPipe").toURI().toString(); } + + private static boolean testFor(@NonNull Context ctx, @NonNull String intentAction) { + Intent queryIntent = new Intent(intentAction); + queryIntent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + + List infoList = ctx.getPackageManager() + .queryIntentActivities(queryIntent, PackageManager.MATCH_DEFAULT_ONLY); + + int availableProviders = 0; + for (ResolveInfo info : infoList) { + if (info.activityInfo.exported) availableProviders++; + } + + return availableProviders > 0; + } } From 950cf714d9e71f286f153027e3cb5b0b1c964d59 Mon Sep 17 00:00:00 2001 From: kapodamy Date: Wed, 14 Aug 2019 22:15:42 -0300 Subject: [PATCH 087/122] use legacy file picker in those cases where saf is not available --- .../newpipe/download/DownloadDialog.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 175aaca92..6814a018c 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.download; import android.app.Activity; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; @@ -45,6 +46,8 @@ import org.schabi.newpipe.extractor.stream.VideoStream; import org.schabi.newpipe.extractor.utils.Localization; import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.report.UserAction; +import org.schabi.newpipe.settings.NewPipeSettings; +import org.schabi.newpipe.util.FilePickerActivityHelper; import org.schabi.newpipe.util.FilenameUtils; import org.schabi.newpipe.util.ListHelper; import org.schabi.newpipe.util.SecondaryStreamHelper; @@ -52,7 +55,9 @@ import org.schabi.newpipe.util.StreamItemAdapter; import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper; import org.schabi.newpipe.util.ThemeHelper; +import java.io.File; import java.io.IOException; +import java.net.URI; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -72,7 +77,7 @@ import us.shandian.giga.service.MissionState; public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheckedChangeListener, AdapterView.OnItemSelectedListener { private static final String TAG = "DialogFragment"; private static final boolean DEBUG = MainActivity.DEBUG; - private static final int REQUEST_DOWNLOAD_PATH_SAF = 0x1230; + private static final int REQUEST_DOWNLOAD_SAVE_AS = 0x1230; @State protected StreamInfo currentInfo; @@ -311,12 +316,18 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode == REQUEST_DOWNLOAD_PATH_SAF && resultCode == Activity.RESULT_OK) { + if (requestCode == REQUEST_DOWNLOAD_SAVE_AS && resultCode == Activity.RESULT_OK) { if (data.getData() == null) { showFailedDialog(R.string.general_error); return; } + if (ContentResolver.SCHEME_FILE.equals(data.getData().getScheme())) { + File file = new File(URI.create(data.getData().toString())); + checkSelectedDownload(null, data.getData(), file.getName(), StoredFileHelper.DEFAULT_MIME); + return; + } + DocumentFile docFile = DocumentFile.fromSingleUri(context, data.getData()); if (docFile == null) { showFailedDialog(R.string.general_error); @@ -574,7 +585,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck if (!askForSavePath) Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show(); - StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_PATH_SAF, filename, mime); + if (NewPipeSettings.hasCreateDocumentSupport) + StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_SAVE_AS, filename, mime); + else + startActivityForResult(FilePickerActivityHelper.chooseFileToSave(context, filename), REQUEST_DOWNLOAD_SAVE_AS); + return; } From dee3a18ea804384f48724e4388d8d9820a56dcee Mon Sep 17 00:00:00 2001 From: kapodamy Date: Wed, 14 Aug 2019 23:00:11 -0300 Subject: [PATCH 088/122] misc changes * restore permission request popup previously removed in #2486 * use legacy file picker in cases where saf file picker is not available * fix missing file check logic in prepareSelectedDownload method (DownloadDialog.java) --- .../java/org/schabi/newpipe/MainActivity.java | 12 ++++++ .../org/schabi/newpipe/RouterActivity.java | 36 ++++++++++------- .../newpipe/download/DownloadDialog.java | 39 +++++++++++++++---- .../fragments/detail/VideoDetailFragment.java | 5 ++- .../newpipe/settings/NewPipeSettings.java | 17 +++++--- .../schabi/newpipe/util/NavigationHelper.java | 3 ++ .../schabi/newpipe/util/PermissionHelper.java | 6 ++- 7 files changed, 88 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index bf538cc65..a9f2e9622 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -60,6 +60,7 @@ import org.schabi.newpipe.report.ErrorActivity; import org.schabi.newpipe.util.Constants; import org.schabi.newpipe.util.KioskTranslator; import org.schabi.newpipe.util.NavigationHelper; +import org.schabi.newpipe.util.PermissionHelper; import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.StateSaver; import org.schabi.newpipe.util.ThemeHelper; @@ -421,6 +422,17 @@ public class MainActivity extends AppCompatActivity { return; } } + switch (requestCode) { + case PermissionHelper.DOWNLOADS_REQUEST_CODE: + NavigationHelper.openDownloads(this); + break; + case PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE: + Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_holder); + if (fragment instanceof VideoDetailFragment) { + ((VideoDetailFragment) fragment).openDownloadDialog(); + } + break; + } } /** diff --git a/app/src/main/java/org/schabi/newpipe/RouterActivity.java b/app/src/main/java/org/schabi/newpipe/RouterActivity.java index 88f6bdb2b..89de0d0ef 100644 --- a/app/src/main/java/org/schabi/newpipe/RouterActivity.java +++ b/app/src/main/java/org/schabi/newpipe/RouterActivity.java @@ -74,10 +74,13 @@ import static org.schabi.newpipe.util.ThemeHelper.resolveResourceIdFromAttr; */ public class RouterActivity extends AppCompatActivity { - @State protected int currentServiceId = -1; + @State + protected int currentServiceId = -1; private StreamingService currentService; - @State protected LinkType currentLinkType; - @State protected int selectedRadioPosition = -1; + @State + protected LinkType currentLinkType; + @State + protected int selectedRadioPosition = -1; protected int selectedPreviously = -1; protected String currentUrl; @@ -257,7 +260,7 @@ public class RouterActivity extends AppCompatActivity { .setNegativeButton(R.string.just_once, dialogButtonsClickListener) .setPositiveButton(R.string.always, dialogButtonsClickListener) .setOnDismissListener((dialog) -> { - if(!selectionIsDownload) finish(); + if (!selectionIsDownload) finish(); }) .create(); @@ -358,13 +361,13 @@ public class RouterActivity extends AppCompatActivity { positiveButton.setEnabled(state); } - private void handleText(){ + private void handleText() { String searchString = getIntent().getStringExtra(Intent.EXTRA_TEXT); int serviceId = getIntent().getIntExtra(Constants.KEY_SERVICE_ID, 0); Intent intent = new Intent(getThemeWrapperContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); - NavigationHelper.openSearch(getThemeWrapperContext(),serviceId,searchString); + NavigationHelper.openSearch(getThemeWrapperContext(), serviceId, searchString); } private void handleChoice(final String selectedChoiceKey) { @@ -382,8 +385,10 @@ public class RouterActivity extends AppCompatActivity { } if (selectedChoiceKey.equals(getString(R.string.download_key))) { - selectionIsDownload = true; - openDownloadDialog(); + if (PermissionHelper.checkStoragePermissions(this, PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) { + selectionIsDownload = true; + openDownloadDialog(); + } return; } @@ -395,7 +400,7 @@ public class RouterActivity extends AppCompatActivity { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(intent -> { - if(!internalRoute){ + if (!internalRoute) { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); } @@ -445,17 +450,21 @@ public class RouterActivity extends AppCompatActivity { @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - for (int i: grantResults){ - if (i == PackageManager.PERMISSION_DENIED){ + for (int i : grantResults) { + if (i == PackageManager.PERMISSION_DENIED) { finish(); return; } } + if (requestCode == PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE) { + openDownloadDialog(); + } } private static class AdapterChoiceItem { final String description, key; - @DrawableRes final int icon; + @DrawableRes + final int icon; AdapterChoiceItem(String key, String description, int icon) { this.description = description; @@ -553,7 +562,8 @@ public class RouterActivity extends AppCompatActivity { final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); boolean isExtVideoEnabled = preferences.getBoolean(getString(R.string.use_external_video_player_key), false); - boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false);; + boolean isExtAudioEnabled = preferences.getBoolean(getString(R.string.use_external_audio_player_key), false); + ; PlayQueue playQueue; String playerChoice = choice.playerChoice; diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 6814a018c..a9afc93d5 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -2,13 +2,13 @@ package org.schabi.newpipe.download; import android.app.Activity; import android.content.ComponentName; -import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; +import android.os.Environment; import android.os.IBinder; import android.preference.PreferenceManager; import android.support.annotation.IdRes; @@ -34,6 +34,8 @@ import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; +import com.nononsenseapps.filepicker.Utils; + import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.MediaFormat; @@ -50,6 +52,7 @@ import org.schabi.newpipe.settings.NewPipeSettings; import org.schabi.newpipe.util.FilePickerActivityHelper; import org.schabi.newpipe.util.FilenameUtils; import org.schabi.newpipe.util.ListHelper; +import org.schabi.newpipe.util.PermissionHelper; import org.schabi.newpipe.util.SecondaryStreamHelper; import org.schabi.newpipe.util.StreamItemAdapter; import org.schabi.newpipe.util.StreamItemAdapter.StreamSizeWrapper; @@ -57,7 +60,6 @@ import org.schabi.newpipe.util.ThemeHelper; import java.io.File; import java.io.IOException; -import java.net.URI; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -178,6 +180,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]"); + if (!PermissionHelper.checkStoragePermissions(getActivity(), PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) { + getDialog().dismiss(); + return; + } + context = getContext(); setStyle(STYLE_NO_TITLE, ThemeHelper.getDialogTheme(context)); @@ -322,9 +329,9 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck return; } - if (ContentResolver.SCHEME_FILE.equals(data.getData().getScheme())) { - File file = new File(URI.create(data.getData().toString())); - checkSelectedDownload(null, data.getData(), file.getName(), StoredFileHelper.DEFAULT_MIME); + if (data.getData().getAuthority() != null && data.getData().getAuthority().startsWith(context.getPackageName())) { + File file = Utils.getFileForUri(data.getData()); + checkSelectedDownload(null, Uri.fromFile(file), file.getName(), StoredFileHelper.DEFAULT_MIME); return; } @@ -585,10 +592,21 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck if (!askForSavePath) Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show(); - if (NewPipeSettings.hasCreateDocumentSupport) + if (NewPipeSettings.hasCreateDocumentSupport) { StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_SAVE_AS, filename, mime); - else - startActivityForResult(FilePickerActivityHelper.chooseFileToSave(context, filename), REQUEST_DOWNLOAD_SAVE_AS); + } else { + File initialSavePath; + if (radioStreamsGroup.getCheckedRadioButtonId() == R.id.audio_button) + initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MUSIC); + else + initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MOVIES); + + initialSavePath = new File(initialSavePath, filename); + startActivityForResult( + FilePickerActivityHelper.chooseFileToSave(context, initialSavePath.getAbsolutePath()), + REQUEST_DOWNLOAD_SAVE_AS + ); + } return; } @@ -639,6 +657,11 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck // This part is called if: // * using SAF on older android version // * save path not defined + // * if the file exists overwrite it, is not necessary ask + if (!storage.existsAsFile() && !storage.create()) { + showFailedDialog(R.string.error_file_creation); + return; + } continueSelectedDownload(storage); return; } else if (targetFile == null) { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 9d8481251..d0ed04279 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -384,7 +384,10 @@ public class VideoDetailFragment } break; case R.id.detail_controls_download: - this.openDownloadDialog(); + if (PermissionHelper.checkStoragePermissions(activity, + PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) { + this.openDownloadDialog(); + } break; case R.id.detail_uploader_root_layout: if (TextUtils.isEmpty(currentInfo.getUploaderUrl())) { diff --git a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java index 64f0db489..cda3cad10 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java +++ b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java @@ -86,10 +86,10 @@ public class NewPipeSettings { PreferenceManager.setDefaultValues(context, R.xml.debug_settings, true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - hasOpenDocumentTreeSupport = testFor(context, Intent.ACTION_OPEN_DOCUMENT_TREE); + hasOpenDocumentTreeSupport = testFor(context, Intent.ACTION_OPEN_DOCUMENT_TREE, false); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - hasCreateDocumentSupport = testFor(context, Intent.ACTION_CREATE_DOCUMENT); + hasCreateDocumentSupport = testFor(context, Intent.ACTION_CREATE_DOCUMENT, true); } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || !hasOpenDocumentTreeSupport) { @@ -118,7 +118,7 @@ public class NewPipeSettings { } @NonNull - private static File getDir(String defaultDirectoryName) { + public static File getDir(String defaultDirectoryName) { return new File(Environment.getExternalStorageDirectory(), defaultDirectoryName); } @@ -126,9 +126,14 @@ public class NewPipeSettings { return new File(dir, "NewPipe").toURI().toString(); } - private static boolean testFor(@NonNull Context ctx, @NonNull String intentAction) { - Intent queryIntent = new Intent(intentAction); - queryIntent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + private static boolean testFor(@NonNull Context ctx, @NonNull String intentAction, boolean isFile) { + Intent queryIntent = new Intent(intentAction) + .addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + + if (isFile) { + queryIntent.setType("*/*"); + queryIntent.addCategory(Intent.CATEGORY_OPENABLE); + } List infoList = ctx.getPackageManager() .queryIntentActivities(queryIntent, PackageManager.MATCH_DEFAULT_ONLY); diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index bb176166b..89c4b33fe 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -446,6 +446,9 @@ public class NavigationHelper { } public static boolean openDownloads(Activity activity) { + if (!PermissionHelper.checkStoragePermissions(activity, PermissionHelper.DOWNLOADS_REQUEST_CODE)) { + return false; + } Intent intent = new Intent(activity, DownloadActivity.class); activity.startActivity(intent); return true; diff --git a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java index 1367b895c..2fe5f95e4 100644 --- a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java @@ -18,10 +18,12 @@ import android.widget.Toast; import org.schabi.newpipe.R; public class PermissionHelper { + public static final int DOWNLOAD_DIALOG_REQUEST_CODE = 778; + public static final int DOWNLOADS_REQUEST_CODE = 777; public static boolean checkStoragePermissions(Activity activity, int requestCode) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - if(!checkReadStoragePermissions(activity, requestCode)) return false; + if (!checkReadStoragePermissions(activity, requestCode)) return false; } return checkWriteStoragePermissions(activity, requestCode); } @@ -89,7 +91,7 @@ public class PermissionHelper { i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); return false; - }else return true; + } else return true; } public static boolean isPopupEnabled(Context context) { From 45ad8621cf8f7703dfc00c2bc6c4d962ed22566a Mon Sep 17 00:00:00 2001 From: Kowith Singkornkeeree Date: Mon, 12 Aug 2019 13:13:55 +0000 Subject: [PATCH 089/122] Translated using Weblate (Thai) Currently translated at 59.4% (268 of 451 strings) --- app/src/main/res/values-th/strings.xml | 447 ++++++++++++++++++++++++- 1 file changed, 446 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index a6b3daec9..d0778709b 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -1,2 +1,447 @@ - \ No newline at end of file + + แตะที่ปุ่มค้นหาเพื่อเริ่มต้น + %1$s วิว + เผยแพร่เมื่อ %1$s + ไม่พบแอปที่สามารถสตรีมสื่อวีดีโอได้ คุณต้องการติดตั้ง VLC หรือไม่\? + ไม่พบแอปที่สามารถสตรีมสื่อวีดีโอได้ (คุณสามารถติดตั้ง VLC เพื่อดูวีดีโอ) + ติดตั้ง + ยกเลิก + เปิดด้วยเว็บบราวเซอร์ + เปิดในโหมดป๊อปอัพ + แชร์ + ดาวน์โหลด + ดาวน์โหลดไฟล์สตรีม + ค้นหา + ตั้งค่า + หรือคุณหมายถึง: %1$s\? + แชร์ด้วย + เลือกบราวเซอร์ + หมุน + ใช้แอปเล่นวีดีโอภายนอก + ใช้แอปเล่นเสียงภายนอก + NewPipe โหมดป๊อปอัพ + บอกรับ + บอกรับแล้ว + ยกเลิกการบอกรับ + ยกเลิกการบอกรับช่องแล้ว + ไม่สามารถเปลี่ยนสถานะการบอกรับได้ + ไม่สามารถอัปเดตการบอกรับข้อมูล + แสดงข้อมูล + หน้าหลัก + การสมัครรับข้อมูล + เพลย์ลิสต์ที่เก็บไว้ + แท็บใหม่ + เลือกแท็บ + มีอะไรใหม่ + พื้นหลัง + ป๊อปอัพ + เพิ่มไปยัง + เส้นทางการดาวน์โหลดวิดีโอ + เส้นทางในการจัดเก็บวิดีโอที่ดาวน์โหลดมา + ป้อนเส้นทางการดาวน์โหลดสำหรับวิดีโอ + โฟลเดอร์ที่ดาวน์โหลดเสียง + เสียงที่ดาวน์โหลดถูกเก็บไว้ที่นี่ + ป้อนเส้นทางการดาวน์โหลดสำหรับไฟล์เสียง + เล่นอัตโนมัติ + เล่นวิดีโอเมื่อ NewPipe ถูกเรียกจากแอปอื่น + ความละเอียดเริ่มต้น + ความละเอียดเริ่มต้นในโหมดป๊อปอัพ + แสดงความละเอียดที่สูงขึ้น + เฉพาะบางอุปกรณ์ที่รองรับการเล่นวิดีโอ 2K/4K + เปิดด้วย Kodi + ไม่พบแอป Kore จะติดตั้งหรือไม่\? + แสดงตัวเลือก \"เปิดด้วย Kodi\" + แสดงตัวเลือกในการเล่นวิดีโอผ่าน Kodi media center + เสียง + ฟอร์แมตเสียงเริ่มต้น + ฟอร์แมตวีดีโอเริ่มต้น + ธีม + สว่าง + มืด + สีดำ + จำขนาดและตำแหน่งของป๊อปอัพ + จำขนาดและตำแหน่งสุดท้ายของป๊อปอัพ + ใช้การข้ามที่ไม่แม่นยำ + การข้ามช่วงที่ไม่แม่นยำจะทำให้เลื่อนไปยังตำแหน่งเวลาที่ต้องการได้เร็วขึ้น แต่จะลดความแม่นยำในการลากตำแหน่งลง + โหลดภาพขนาดย่อ + แสดงความคิดเห็น + ปิดใช้งานเพื่อซ่อนความคิดเห็น + ปิดเพื่อป้องกันการโหลดรูปขนาดย่อ ลดการใช้ข้อมูลและหน่วยความจำ การเปลี่ยนแปลงล้างแคชภาพในหน่วยความจำและบนดิสก์ + ล้างแคชของรูปภาพแล้ว + ลบข้อมูลเว็บเพจที่แคชไว้ทั้งหมด + คิววีดีโอถัดไปโดยอัตโนมัติ + ต่อท้ายวีดีโอที่เกี่ยวข้องโดยอัตโนมัติเมื่อเล่นถึงรายการสุดท้ายในกรณีที่ไม่ได้ตั้งให้เล่นซ้ำ + การควบคุมระดับเสียงด้วยท่าทาง + ใช้ท่าทางสัมผัสเพื่อควบคุมระดับเสียงของเครื่องเล่น + การควบคุมความสว่างด้วยท่าทาง + ใช้ท่าทางสัมผัสเพื่อควบคุมความสว่างของเครื่องเล่น + ตัวควบคุมท่าทางของโปรแกรมเล่น + ใช้ท่าทางสัมผัสเพื่อควบคุมความสว่างและระดับเสียงของเครื่องเล่น + คำแนะนำการค้นหา + แสดงคำแนะนำเมื่อทำการค้นหา + ประวัติการค้นหา + จัดเก็บคำที่เคยค้นหาไว้ในเครื่อง + ประวัติและแคช + ติดตามวิดีโอที่ดคยดู + เล่นต่อหลังการขัดจังหวะ (เช่น การรับโทรศัพท์) + ดาวน์โหลด + วีดีโอถัดไป + เล่นอัตโนมัติ + แสดงวิดีโอ \'ถัดไป\' และ \'ที่คล้ายกัน\' + แสดงเคล็ดลับ \"แตะค้างเพื่อเพิ่ม\" + แสดงเคล็ดลับเมื่อกดปุ่มพื้นหลังหรือป๊อปอัพในหน้ารายละเอียดวิดีโอ + URL ที่ไม่สนับสนุน + ประเทศเริ่มต้นของเนื้อหา + บริการ + ภาษาของเนื้อหาเริ่มต้น + เครื่องเล่น + พฤติกรรม + วิดีโอและเสียง + ประวัติและแคช + ป๊อปอัพ + ลักษณะ + อื่นๆ + แก้จุดบกพร่อง + อัพเดท + กำลังเล่นในโหมดพื้นหลัง + กำลังเล่นในโหมดป๊อปอัพ + จัดคิวลงในการเล่นโหมดพื้นหลังแล้ว + จัดคิวลงในการเล่นโหมดป๊อปอัพแล้ว + เล่น + เนื้อหา + เนื้อหาที่จำกัดอายุ + แสดงวิดีโอที่จำกัดอายุ การอนุญาตดังกล่าวเป็นไปได้จากการตั้งค่า + สด + ดาวน์โหลด + ดาวน์โหลด + รายงานข้อผิดพลาด + ทั้ง หมด + ช่อง + ช่อง + เพลย์ลิสต์ + เพลย์ลิสต์ + + วิดีโอ + + + ความคิดเห็น + + แทร็ค + ผู้ใช้ + เหตุการณ์ + ใช่ + ในภายหลัง + ปิดการใช้งาน + ตัวกรอง + เรียกใหม่ + ล้าง + กำลังปรับขนาด + ความละเอียดที่ดีที่สุด + เลิกทำ + ลบไฟล์แล้ว + เล่นทั้งหมด + เสมอ + เพียงครั้งเดียว + ไฟล์ + การแจ้งเตือน NewPipe + การแจ้งเตือนของแอป NewPipe เมื่อเล่นสื่อในโหมดพื้นหลังและป๊อปอัพ + การแจ้งเตือนการอัปเดตแอป + การแจ้งเตือนสำหรับ NewPipe เวอร์ชั่นใหม่ + [ไม่ทราบ] + เปลี่ยนการวางแนว + สลับไปยังโหมดพื้นหลัง + สลับไปยังโหมดป๊อปอัพ + สลับไปยังโหมดหลัก + นำเข้าฐานข้อมูล + ส่งออกฐานข้อมูล + แทนที่ประวัติการดูและการสมัครรับข้อมูลของคุณ + ส่งออกประวัติการดู ช่องที่ได้บอกรับและเพลย์ลิสต์ + ล้างประวัติการดู + ลบประวัติของวีดีโอที่เคยเล่น + ลบประวัติการดูทั้งหมดหรือไม่\? + ลบประวัติการดูแล้ว + ล้างประวัติการค้นหา + ลบประวัติของคำที่เคยค้นหา + ลบประวัติการค้นหาทั้งหมดหรือไม่\? + ลบประวัติการค้นหาแล้ว + เกิดข้อผิดพลาด + พื้นที่เก็บข้อมูลภายนอกไม่พร้อมใช้งาน + การดาวน์โหลดไปยังการ์ดความจำภายนอกยังไม่สามารถทำได้ รีเซ็ตตำแหน่งโฟลเดอร์ดาวน์โหลดหรือไม่\? + ข้อผิดพลาดของเครือข่าย + ไม่สามารถโหลดรูปขนาดย่อทั้งหมด + ไม่สามารถถอดรหัสลายเซ็น URL ของวิดีโอ + ไม่สามารถแยกวิเคราะห์เว็บไซต์ + ไม่สามารถแยกวิเคราะห์เว็บไซต์ได้อย่างสมบูรณ์ + เนื้อหาไม่พร้อมใช้งาน + ถูกบล็อกโดย GEMA + ไม่สามารถตั้งค่าเมนูดาวน์โหลด + ยังไม่รองรับสตรีมแบบสดในขณะนี้ + ไม่สามารถรับสตรีมใด ๆ + ไม่สามารถโหลดรูปภาพ + แอป / UI ขัดข้อง + ไม่สามารถเล่นสตรีมนี้ + เกิดข้อผิดพลาดของตัวเล่นที่ไม่สามารถกู้คืนได้ + กำลังกู้คืนจากข้อผิดพลาดของตัวเล่น + ตัวเล่นภายนอกไม่สนับสนุนลิงก์ประเภทนี้ + URL ไม่ถูกต้อง + ไม่พบสตรีมวิดีโอ + ไม่พบสตรีมเสียง + ไม่มีโฟลเดอร์ตามที่ระบุ + ไม่มีแหล่งแฟ้ม/เนื้อหาดังกล่าว + ไฟล์นี้ไม่มีอยู่หรือไม่ได้รับอนุญาตให้อ่านหรือเขียนไฟล์ + ชื่อไฟล์ต้องไม่ว่างเปล่า + เกิดข้อผิดพลาด: %1$s + ไม่มีสตรีมให้ดาวน์โหลด + เรียกคืนการวางตำแหน่งแท็บเป็นค่าเดิม เนื่องจากพบข้อผิดพลาดในการอ่านการวางตำแหน่งแท็บที่บันทึกไว้ + คืนค่าเริ่มต้น + คุณต้องการคืนค่าเริ่มต้นหรือไม่\? + รายงานข้อผิดพลาดผ่านทาง e-mail + ข้อมูล: + เกิดอะไรขึ้น: + ความคิดเห็นของคุณ (เป็นภาษาอังกฤษ): + รายละเอียด: + ภาพขนาดย่อของตัวอย่างวิดีโอ + ภาพของตัวอย่างวิดีโอขนาดย่อ + รูปขนาดย่อของผู้อัปโหลด + ชอบ + ไม่ชอบ + ใช้ Tor + (ทดลอง) บังคับให้ใช้การเชื่อมต่อผ่าน Tor เพื่อเพิ่มความเป็นส่วนตัว (ยังไม่รองรับวิดีโอสตรีมมิ่ง) + รายงานข้อผิดพลาด + ไม่มีผลลัพธ์ + ไม่มีอะไรที่นี่นอกจากจิ้งหรีด + ลากเพื่อจัดลำดับใหม่ + ไม่สามารถสร้างไดเรกทอรีดาวน์โหลด \'%1$s\' + สร้างไดเรกทอรีดาวน์โหลด \'%1$s\' + วิดีโอ + เสียง + ลองอีกครั้ง + สิทธิ์การเข้าถึงการจัดเก็บข้อมูลถูกปฏิเสธ + พัน + ล้าน + พันล้าน + ไม่มีสมาชิกที่สมัครรับ + + %s บอกรับ + + ไม่สามารถนับจำนวนสมาชิกได้ + ไม่มียอดวิว + + %s วิว + + ไม่มีวิดีโอ + ไม่มีความคิดเห็น + เริ่ม + หยุดพัก + เล่น + สร้าง + ลบ + ลบหนึ่ง + ลบทั้งหมด + ไม่สนใจ + เปลี่ยนชื่อ + ภารกิจใหม่ + ชื่อไฟล์ + เซิร์ฟเวอร์ที่ไม่รองรับ + ไฟล์มีอยู่แล้ว + NewPipe กำลังดาวน์โหลด + แตะเพื่อดูรายละเอียด + โปรดรอ… + คัดลอกไปที่คลิปบอร์ดแล้ว + โปรดเลือกโฟลเดอร์ดาวน์โหลดที่พร้อมใช้งาน + การอนุญาตนี้เป็นสิ่งจำเป็นเพื่อ +\nเปิดในโหมดป๊อปอัป + ลบ 1 รายการแล้ว + ดาวน์โหลด + อักขระที่อนุญาตในชื่อไฟล์ + อักขระที่ไม่ถูกต้องจะถูกแทนที่ด้วยค่านี้ + อักขระทดแทน + ตัวอักษรและตัวเลข + อักขระพิเศษส่วนใหญ่ + ไม่มีแอพที่ติดตั้งเพื่อให้เล่นไฟล์นี้ได้ + เกี่ยวกับ NewPipe + การตั้งค่า + เกี่ยวกับ + สัญญาอนุญาตของบุคคลที่สาม + © %1$s โดย %2$s ภายใต้ %3$s + ไม่สามารถโหลดสัญญาอนุญาต + เปิดเว็บไซต์ + เกี่ยวกับ + ผู้มีส่วนร่วม + สัญญาอนุญาต + แอปสตรีมมิ่งที่เล็กและเสรีบน Android + สนับสนุน + ไม่ว่าคุณจะมีความคิดที่จะช่วยแปลภาษา เปลี่ยนดีไซน์ แก้ไขโค้ดของโปรแกรมให้ดีขึ้นทั้งในระดับเล็กน้อยหรือจะเปลี่ยนแปลงกันแบบขนานใหญ่ เรายินดีให้คุณได้ร่วมช่วยเหลือเสมอ… ยิ่งทำมาก ยิ่งช่วยให้ดีขึ้นมาก! + ดูบน GitHub + บริจาค + คืนให้ + เว็บไซต์ + เยี่ยมชมเว็บไซต์ NewPipe สำหรับข้อมูลเพิ่มเติมและข่าวสาร + นโยบายความเป็นส่วนตัวของ NewPipe + โครงการ NewPipe คำนึงถึงความเป็นส่วนตัวของคุณอย่างจริงจัง ดังนั้นแอปจะไม่เก็บรวบรวมข้อมูลใดๆ โดยไม่ได้รับความยินยอมจากคุณ +\nนโยบายความเป็นส่วนตัวของ NewPipe มีการอธิบายในรายละเอียดเกี่ยวกับข้อมูลที่จะถูกส่งออกไปและเก็บไว้เมื่อคุณรายงานความผิดพลาดของแอป + อ่านนโยบายความเป็นส่วนตัว + สัญญาอนุญาตของ NewPipe + อ่านสัญญาอนุญาต + ประวัติ + สืบค้นแล้ว + ดูแล้ว + ประวัติการดูได้ปิดใช้งานอยู่ + ประวัติ + ประวัติว่างเปล่า + ล้างประวัติแล้ว + ลบรายการแล้ว + คุณต้องการลบรายการนี้ออกจากประวัติการค้นหาหรือไม่\? + คุณต้องการลบรายการนี้ออกจากประวัติการดูหรือไม่\? + คุณแน่ใจหรือไม่ว่าต้องการลบรายการประวัติทั้งหมด\? + เล่นครั้งล่าสุด + เล่นมากที่สุด + เนื้อหาของหน้าหลัก + แท็บใดบ้างที่ต้องการให้แสดงบนหน้าหลัก + การเลือก + หน้าว่าง + หน้า Kiosk + หน้าการสมัครสมาชิก + หน้าฟีด + หน้าของช่อง + เลือกช่อง + ยังไม่มีการสมัครรับข้อมูลช่องในตอนนี้ + เลือกหน้า Kiosk + ส่งออกแล้ว + นำเข้าแล้ว + ไม่มีไฟล์ ZIP ที่ถูกต้อง + คำเตือน: ไม่สามารถนำเข้าไฟล์ทั้งหมดได้ + สิ่งนี้จะแทนที่การตั้งค่าปัจจุบันของคุณ + คุณยังต้องการนำเข้าการตั้งค่าด้วยหรือไม่\? + ไม่สามารถโหลดความคิดเห็นได้ + ได้รับความนิยม + 50 อันดับแรก + ใหม่และมาแรง + การประชุม + เครื่องเล่นพื้นหลัง + เครื่องเล่นป๊อปอัพ + เอาออก + รายละเอียด + การตั้งค่าเสียง + กดค้างไว้เพื่อเพิ่มลงในคิว + เล่นโดยตรงในโหมดพื้นหลัง + เพิ่มคิวในโหมดพื้นหลัง + เพิ่มคิวในโหมดป๊อปอัพ + เริ่มเล่นจากตรงนี้ + เล่นจากจุดนี้ในโหมดพื้นหลัง + เล่นจากจุดนี้ในโหมดป๊อปอัพ + บางสิ่งบางอย่างจะปรากฏที่นี่เร็วๆ นี้ ;D + การดำเนินการ \'เปิด\' ที่ต้องการ + การดำเนินการเริ่มต้นเมื่อเปิดเนื้อหา — %s + เครื่องเล่นวิดีโอ + เครื่องเล่นพื้นหลัง + เครื่องเล่นป๊อปอัพ + ถามเสมอ + กำลังรับข้อมูล… + กำลังโหลดเนื้อหาที่ร้องขอ + เพลย์ลิสต์ใหม่ + ลบ + เปลี่ยนชื่อ + ชื่อ + เพิ่มในเพลย์ลิสต์ + ตั้งเป็นรูปขนาดย่อของเพลย์ลิสต์ + เก็บเพลย์ลิสต์ + เอาที่คั่นหน้าออก + ลบเพลย์ลิสต์นี้หรือไม่\? + สร้างเพลย์ลิสต์แล้ว + เพิ่มลงในเพลย์ลิสต์แล้ว + เปลี่ยนภาพย่อของเพลย์ลิสต์แล้ว + ไม่สามารถลบเพลย์ลิสต์ได้ + ไม่มีคำอธิบายภาพ + พอดี + เติม + ขยาย + สร้างขึ้นโดยอัตโนมัติ + คำบรรยายภาพ + ปรับเปลี่ยนขนาดตัวอักษร สีของข้อความหรือพื้นหลังของคำอธิบายภาพ (จำเป็นตองปิดและเปิดแอปใหม่เพื่อให้การเปลี่ยนแปลงมีผล) + เปิดใช้งาน LeakCanary + การตรวจสอบการรั่วไหลของหน่วยความจำอาจทำให้แอปจะไม่ตอบสนองเมื่อมีการดึงข้อมูลจากหน่วยความจำ + นำเข้า/ส่งออก + นำเข้า + นำเข้าจาก + ส่งออกไปยัง + กำลังนำเข้า… + กำลังส่งออก… + นำเข้าไฟล์ + การส่งออกก่อนหน้านี้ + ไม่สามารถนำเข้าการสมัครรับข้อมูล + ไม่สามารถส่งออกการสมัครรับข้อมูล + นำเข้ารายการช่องที่บอกรับใน YouTube โดยการดาวน์โหลดไฟล์การส่งออก: +\n +\n1ไปที่ URL นี้: %1$s +\n2. เข้าสู่ระบบเมื่อระบบถาม +\n3. การดาวน์โหลดควรเริ่มต้น (นั่นคือไฟล์ที่ส่งออก) + นำเข้าโปรไฟล์ SoundCloud โดยการพิมพ์ URL หรือรหัสไอดีผู้ใช้ของคุณ: +\n +\n1. เปิดใช้งาน \"โหมดเดสก์ท็อป\" ในเว็บเบราว์เซอร์ (เว็บไซต์ไม่สามารถใช้ได้สำหรับอุปกรณ์มือถือ) +\n2ไปที่ URL นี้:%1$s +\n3. เข้าสู่ระบบเมื่อระบบถาม +\n4. คัดลอก URL ของโปรไฟล์ที่คุณถูกเปลี่ยนเส้นทางไป + โปรดทราบว่าการดำเนินการนี้อาจใช้งานข้อมูลมือถือที่มีค่าใช้จ่าย +\n +\nคุณต้องการที่จะทำต่อไปหรือไม่\? + การควบคุมความเร็วในการเล่น + จังหวะ + เสียงสูงต่ำ + ยกเลิกการเชื่อมโยง (อาจทำให้เสียงมีการบิดเบือน) + กรอไปข้างหน้าระหว่างความเงียบ + ทีละ + รี เซ็ต + เพื่อให้สอดคล้องกับระเบียบข้อบังคับว่าด้วยการป้องกันข้อมูลทั่วไปของยุโรป (GDPR) เราขอแนะนำให้คุณอ่านนโยบายความเป็นส่วนตัวของ NewPipe อย่างระมัดระวังและถี่ถ้วน +\nคุณต้องยอมรับข้อตกลงเพื่ออนุญาตให้ส่งรายงานข้อผิดพลาดถึงเรา + ยอมรับ + ปฏิเสธ + ไม่จำกัด + จำกัด ความละเอียดเมื่อใช้ข้อมูลมือถือ + อัพเดท + แสดงการแจ้งเตือนการปรับปรุงให้ทราบก่อนอัพเดทแอพ เมื่อมีเวอร์ชั่นใหม่ให้พร้อมใช้งาน + ย่อเล็กสุดเมื่อสลับแอป + การดำเนินการเมื่อสลับไปยังแอปอื่นๆ จากโปรแกรมเล่นวิดีโอหลัก — %s + ไม่มี + ย่อเล็กสุดไปยังการเล่นพื้นหลัง + ย่อเล็กสุดไปยังการเล่นป๊อปอัพ + โหมดมุมมองรายการ + รายการ + ตาราง + อัตโนมัติ + สลับมุมมอง + NewPipe พร้อมให้อัพเดทแล้ว! + แตะเพื่อดาวน์โหลด + เสร็จแล้ว + อยู่ในคิว + หยุดชั่วคราว + อยู่ในคิวแล้ว + คิว + การดำเนินการถูกปฏิเสธโดยระบบ + การดาวน์โหลดล้มเหลว + การดาวน์โหลดเสร็จสิ้น + %s การดาวน์โหลดเสร็จสิ้น + สร้างชื่อเฉพาะ + เขียนทับ + ไฟล์ที่ดาวน์โหลดด้วยชื่อนี้มีอยู่แล้ว + มีการดาวน์โหลดอยู่ในความคืบหน้าด้วยไฟล์ชื่อนี้อยู่แล้ว + แสดงข้อผิดพลาด + โค้ด + ไม่สามารถสร้างไฟล์ได้ + ไม่สามารถสร้างโฟลเดอร์ปลายทางได้ + การอนุญาตถูกปฏิเสธโดยระบบ + การเชื่อมต่อที่ปลอดภัยล้มเหลว + ไม่พบเซิร์ฟเวอร์ + ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ + เซิร์ฟเวอร์ไม่ส่งข้อมูล + เซิร์ฟเวอร์ไม่รองรับการดาวน์โหลดแบบมัลติเธรด โปรดลองอีกครั้งด้วย @string/msg_threads = 1 + ไม่พบ + ล้างการดาวน์โหลดที่เสร็จสิ้นแล้ว + หยุด + จำนวนครั้งสูงสุดที่จะลองใหม่ + จำนวนครั้งสูงสุดที่จะลองใหม่ก่อนจะยกเลิกการดาวน์โหลด + หยุดชั่วคราวเมื่อเปลี่ยนเป็นข้อมูลมือถือ + การดาวน์โหลดที่ไม่สามารถหยุดพักได้จะเริ่มต้นใหม่ + ปิด + \ No newline at end of file From 14db8b128325702b20387ee082f5d286358b0d00 Mon Sep 17 00:00:00 2001 From: thami simo Date: Wed, 14 Aug 2019 03:56:49 +0000 Subject: [PATCH 090/122] Translated using Weblate (Arabic) Currently translated at 100.0% (451 of 451 strings) --- app/src/main/res/values-ar/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e80416a46..84c62fe04 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -71,7 +71,7 @@ التاريخ و ذاكرة التخزين المؤقت محتوى التنزيلات - التحميل + عنوان التنزيلات الكل القناة الفيديو @@ -114,11 +114,11 @@ محتوى مقيد بحسب العمر "إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"." بث مباشر - تقرير الخطأ + عنوان تقرير الخطأ قائمة التشغيل نعم لاحقاً - مُعطل + تعطيل فلتر تحديث تنظيف From fffeadd8eac96c7baf22e11d913cc0ba626b898b Mon Sep 17 00:00:00 2001 From: nautilusx Date: Thu, 15 Aug 2019 07:00:45 +0000 Subject: [PATCH 091/122] Translated using Weblate (German) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-de/strings.xml | 41 +++++++++++++++++++------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ff75b74c6..1f695715e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -58,7 +58,6 @@ Konnte Video-URL-Signatur nicht entschlüsseln Konnte Webseite nicht analysieren Inhalt nicht verfügbar - Inhalt Altersbeschränkte Inhalte Altersbeschränktes Video anzeigen. Das Zulassen dieses Materials ist von den Einstellungen aus möglich. @@ -98,7 +97,7 @@ Datei existiert bereits Bitte warten… In Zwischenablage kopiert - Bitte wähle ein verfügbares Downloadverzeichnis + Bitte gib später in den Einstellungen einen Downloadverzeichnis an Starten Pause Abspielen @@ -166,12 +165,12 @@ Buchstaben und Zahlen Abonnieren Abonniert - Abonnement beendet + Kanal abbestellt Abos Neuigkeiten Suchverlauf Suchanfragen lokal speichern - Verlauf & Cache + Verlauf ansehen Speichere den Wiedergabeverlauf Verlauf Gesucht @@ -403,7 +402,7 @@ Wiedergabelisten Titel Benutzer - Deabonnieren + Abmelden Neuer Tab Tab wählen Gestensteuerung für Lautstärke @@ -415,7 +414,7 @@ Aktualisierungsbenachrichtigung Benachrichtigung bei neuer NewPipe-Version Kein externer Speicher verfügbar - Herunterladen auf externe SD-Karte ist noch nicht möglich. Zielverzeichnis zurücksetzen\? + Herunterladen auf externe SD-Karte ist nicht möglich. Downloadverzeichnis zurücksetzen\? Fehler beim Lesen der gespeicherten Tabs – es werden die Voreinstellungen benutzt Voreinstellungen wiederherstellen Möchtest du die Voreinstellungen wiederherstellen\? @@ -448,7 +447,7 @@ Fehler anzeigen Code Die Datei kann nicht erstellt werden - Der Zielordner kann nicht erstellt werden + Das Zielverzeichnis kann nicht erstellt werden System verweigert den Zugriff Sichere Verbindung fehlgeschlagen Der Server konnte nicht gefunden werden @@ -463,8 +462,8 @@ Anhalten Maximale Wiederholungen Maximalanzahl der Versuche, bevor der Download abgebrochen wird - Beim Umschalten auf mobile Daten pausieren - Downloads, die nicht pausiert werden können, werden wiederholt + Unterbrechen bei kostenpflichtigen Netzwerken + Nützlich beim Wechsel zu mobilen Daten, obwohl einige Downloads nicht unterbrochen werden können Konferenzen Ereignisse Verbindungszeitüberschreitung @@ -473,9 +472,31 @@ Autoplay Kommentare - + Keine Kommentare Kommentare konnten nicht geladen werden Schließen + Wiedergabe fortsetzen + Wiederherstellen der letzten Wiedergabeposition + Positionen in Listen + Wiedergabepositionsanzeigen in Listen anzeigen + Daten löschen + Wiedergabeposition gelöscht. + Datei verschoben oder gelöscht + Eine heruntergeladene Datei mit diesem Namen existiert bereits + kann die Datei nicht überschreiben + Es gibt einen ausstehenden Download mit diesem Namen + NewPipe wurde während der Verarbeitung der Datei geschlossen + Kein Speicherplatz mehr auf dem Gerät + Vorgang abgebrochen, da die Datei gelöscht wurde + Bist du sicher\? + Downloadwarteschlange begrenzen + Ein Download wird zur gleichen Zeit ausgeführt + Downloads starten + Downloads anhalten + Frage, wohin heruntergeladen werden soll + Du wirst gefragt, wohin du jeden Download speichern willst + Du wirst gefragt, wohin du jeden Download speichern willst. +\nAktiviere diese Option, wenn du auf die externe SD-Karte herunterladen möchtest \ No newline at end of file From 8f13a7ec973c7f5180b03ef7867dc608f726cc8a Mon Sep 17 00:00:00 2001 From: kapodamy Date: Thu, 15 Aug 2019 21:48:07 -0300 Subject: [PATCH 092/122] check if the if the content provider is disabled (the app itself) --- .../java/org/schabi/newpipe/settings/NewPipeSettings.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java index cda3cad10..6f26534fb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java +++ b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java @@ -140,7 +140,9 @@ public class NewPipeSettings { int availableProviders = 0; for (ResolveInfo info : infoList) { - if (info.activityInfo.exported) availableProviders++; + if (info.activityInfo != null && info.activityInfo.enabled && info.activityInfo.exported) { + availableProviders++; + } } return availableProviders > 0; From 63def07a0e48287c7e5338f98d822cf38acde38f Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 17 Aug 2019 09:25:49 +0200 Subject: [PATCH 093/122] Add url to recaptcha exceptions, after update in extractor --- app/build.gradle | 2 +- app/src/main/java/org/schabi/newpipe/Downloader.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2ddfecabe..804c09c00 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ dependencies { exclude module: 'support-annotations' }) - implementation 'com.github.TeamNewPipe:NewPipeExtractor:5f65788a2f89e' + implementation 'com.github.Stypox:NewPipeExtractor:06689a2f27edfe83bd4605a1cceed86c06a5ebf8' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.23.0' diff --git a/app/src/main/java/org/schabi/newpipe/Downloader.java b/app/src/main/java/org/schabi/newpipe/Downloader.java index ff274a91a..11209a01e 100644 --- a/app/src/main/java/org/schabi/newpipe/Downloader.java +++ b/app/src/main/java/org/schabi/newpipe/Downloader.java @@ -164,7 +164,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader { final ResponseBody body = response.body(); if (response.code() == 429) { - throw new ReCaptchaException("reCaptcha Challenge requested"); + throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl); } if (body == null) { @@ -214,7 +214,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader { final ResponseBody body = response.body(); if (response.code() == 429) { - throw new ReCaptchaException("reCaptcha Challenge requested"); + throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl); } if (body == null) { @@ -268,7 +268,7 @@ public class Downloader implements org.schabi.newpipe.extractor.Downloader { final ResponseBody body = response.body(); if (response.code() == 429) { - throw new ReCaptchaException("reCaptcha Challenge requested"); + throw new ReCaptchaException("reCaptcha Challenge requested", siteUrl); } if (body == null) { From e66f2ab36b3b826b1ccb5e1b54812af2e417ff66 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 17 Aug 2019 09:27:18 +0200 Subject: [PATCH 094/122] Fix ReCaptchaActivity layout crash due to hidden EditText Closes #2484 --- .../main/res/layout/activity_recaptcha.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/activity_recaptcha.xml b/app/src/main/res/layout/activity_recaptcha.xml index 7a4971cd9..1016210ec 100644 --- a/app/src/main/res/layout/activity_recaptcha.xml +++ b/app/src/main/res/layout/activity_recaptcha.xml @@ -1,16 +1,27 @@ - + + + + - - \ No newline at end of file From 43446d56c5a4bd13af9a6b19b80d7f827d35f0e7 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 17 Aug 2019 09:30:42 +0200 Subject: [PATCH 095/122] Load the url from the exception in the ReCaptchaActivity Sometimes YouTube introduces recaptchas only on some pages. By loading the url inside the ReCaptchaException into ReCaptchaActivity's webview, the page that originally caused the problem is shown. The user can then solve the page-specific recaptcha. --- .../org/schabi/newpipe/ReCaptchaActivity.java | 16 +++++++++++----- .../newpipe/fragments/BaseStateFragment.java | 8 +++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java index 74c818bf9..55deeec5f 100644 --- a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java +++ b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java @@ -37,15 +37,24 @@ import android.webkit.WebViewClient; */ public class ReCaptchaActivity extends AppCompatActivity { public static final int RECAPTCHA_REQUEST = 10; + public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra"; public static final String TAG = ReCaptchaActivity.class.toString(); public static final String YT_URL = "https://www.youtube.com"; + private String url; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recaptcha); + url = getIntent().getStringExtra(RECAPTCHA_URL_EXTRA); + if (url == null || url.isEmpty()) { + url = YT_URL; + } + + // Set return to Cancel by default setResult(RESULT_CANCELED); @@ -73,15 +82,12 @@ public class ReCaptchaActivity extends AppCompatActivity { myWebView.clearHistory(); android.webkit.CookieManager cookieManager = CookieManager.getInstance(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - cookieManager.removeAllCookies(new ValueCallback() { - @Override - public void onReceiveValue(Boolean aBoolean) {} - }); + cookieManager.removeAllCookies(aBoolean -> {}); } else { cookieManager.removeAllCookie(); } - myWebView.loadUrl(YT_URL); + myWebView.loadUrl(url); } private class ReCaptchaWebViewClient extends WebViewClient { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java index 4546483d2..e2bf9fb73 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/BaseStateFragment.java @@ -180,7 +180,7 @@ public abstract class BaseStateFragment extends BaseFragment implements ViewC } if (exception instanceof ReCaptchaException) { - onReCaptchaException(); + onReCaptchaException((ReCaptchaException) exception); return true; } else if (exception instanceof IOException) { showError(getString(R.string.network_error), true); @@ -190,11 +190,13 @@ public abstract class BaseStateFragment extends BaseFragment implements ViewC return false; } - public void onReCaptchaException() { + public void onReCaptchaException(ReCaptchaException exception) { if (DEBUG) Log.d(TAG, "onReCaptchaException() called"); Toast.makeText(activity, R.string.recaptcha_request_toast, Toast.LENGTH_LONG).show(); // Starting ReCaptcha Challenge Activity - startActivityForResult(new Intent(activity, ReCaptchaActivity.class), ReCaptchaActivity.RECAPTCHA_REQUEST); + Intent intent = new Intent(activity, ReCaptchaActivity.class); + intent.putExtra(ReCaptchaActivity.RECAPTCHA_URL_EXTRA, exception.getUrl()); + startActivityForResult(intent, ReCaptchaActivity.RECAPTCHA_REQUEST); showError(getString(R.string.recaptcha_request_toast), false); } From 10dfcbf0b9063bc7572f44cedaac5e48784484d4 Mon Sep 17 00:00:00 2001 From: kapodamy Date: Sat, 17 Aug 2019 13:38:33 -0300 Subject: [PATCH 096/122] add manual switch in download setting fragment switch for: * Java I/O Api * Storage Access Framework --- .../newpipe/download/DownloadDialog.java | 4 +- .../settings/DownloadSettingsFragment.java | 6 +- .../newpipe/settings/NewPipeSettings.java | 56 +++---------------- .../util/FilePickerActivityHelper.java | 8 ++- .../giga/service/DownloadManager.java | 4 +- .../giga/ui/fragment/MissionsFragment.java | 48 ++++++++++++---- app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values/settings_keys.xml | 1 + app/src/main/res/values/strings.xml | 4 +- app/src/main/res/xml/download_settings.xml | 7 +++ 10 files changed, 73 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index a9afc93d5..f77daa092 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -329,7 +329,7 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck return; } - if (data.getData().getAuthority() != null && data.getData().getAuthority().startsWith(context.getPackageName())) { + if (FilePickerActivityHelper.isOwnFileUri(context, data.getData())) { File file = Utils.getFileForUri(data.getData()); checkSelectedDownload(null, Uri.fromFile(file), file.getName(), StoredFileHelper.DEFAULT_MIME); return; @@ -592,7 +592,7 @@ public class DownloadDialog extends DialogFragment implements RadioGroup.OnCheck if (!askForSavePath) Toast.makeText(context, getString(R.string.no_available_dir), Toast.LENGTH_LONG).show(); - if (NewPipeSettings.hasCreateDocumentSupport) { + if (NewPipeSettings.useStorageAccessFramework(context)) { StoredFileHelper.requestSafWithFileCreation(this, REQUEST_DOWNLOAD_SAVE_AS, filename, mime); } else { File initialSavePath; diff --git a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java index db7754caf..7c2cb46e9 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java @@ -178,7 +178,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { } Intent i; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.hasOpenDocumentTreeSupport) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.useStorageAccessFramework(ctx)) { i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) .putExtra("android.content.extra.SHOW_ADVANCED", true) .addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | StoredDirectoryHelper.PERMISSION_FLAGS); @@ -226,7 +226,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { forgetSAFTree(ctx, defaultPreferences.getString(key, "")); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && NewPipeSettings.hasOpenDocumentTreeSupport) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !FilePickerActivityHelper.isOwnFileUri(ctx, uri)) { // steps to acquire the selected path: // 1. acquire permissions on the new save path // 2. save the new path, if step(2) was successful @@ -244,7 +244,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment { return; } } else { - File target = Utils.getFileForUri(data.getData()); + File target = Utils.getFileForUri(uri); if (!target.canWrite()) { showMessageDialog(R.string.download_to_sdcard_error_title, R.string.download_to_sdcard_error_message); return; diff --git a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java index 6f26534fb..44da38c35 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java +++ b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java @@ -21,11 +21,7 @@ package org.schabi.newpipe.settings; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.os.Build; import android.os.Environment; import android.preference.PreferenceManager; import android.support.annotation.NonNull; @@ -33,7 +29,6 @@ import android.support.annotation.NonNull; import org.schabi.newpipe.R; import java.io.File; -import java.util.List; /** * Helper for global settings @@ -62,20 +57,6 @@ public class NewPipeSettings { private NewPipeSettings() { } - /** - * Indicates if is possible pick a directory though the Storage Access Framework. - * {@code true} if at least one provider can handle {@link Intent#ACTION_OPEN_DOCUMENT_TREE} - * otherwise {@code false} - */ - public static boolean hasOpenDocumentTreeSupport = false; - - /** - * Indicates if is possible create a file though the Storage Access Framework. - * {@code true} if at least one provider can handle {@link Intent#ACTION_CREATE_DOCUMENT} - * otherwise {@code false} - */ - public static boolean hasCreateDocumentSupport = false; - public static void initSettings(Context context) { PreferenceManager.setDefaultValues(context, R.xml.appearance_settings, true); PreferenceManager.setDefaultValues(context, R.xml.content_settings, true); @@ -85,17 +66,8 @@ public class NewPipeSettings { PreferenceManager.setDefaultValues(context, R.xml.video_audio_settings, true); PreferenceManager.setDefaultValues(context, R.xml.debug_settings, true); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - hasOpenDocumentTreeSupport = testFor(context, Intent.ACTION_OPEN_DOCUMENT_TREE, false); - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - hasCreateDocumentSupport = testFor(context, Intent.ACTION_CREATE_DOCUMENT, true); - } - - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || !hasOpenDocumentTreeSupport) { - getVideoDownloadFolder(context); - getAudioDownloadFolder(context); - } + getVideoDownloadFolder(context); + getAudioDownloadFolder(context); } private static void getVideoDownloadFolder(Context context) { @@ -126,25 +98,11 @@ public class NewPipeSettings { return new File(dir, "NewPipe").toURI().toString(); } - private static boolean testFor(@NonNull Context ctx, @NonNull String intentAction, boolean isFile) { - Intent queryIntent = new Intent(intentAction) - .addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + public static boolean useStorageAccessFramework(Context context) { + final String key = context.getString(R.string.storage_use_saf); + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - if (isFile) { - queryIntent.setType("*/*"); - queryIntent.addCategory(Intent.CATEGORY_OPENABLE); - } - - List infoList = ctx.getPackageManager() - .queryIntentActivities(queryIntent, PackageManager.MATCH_DEFAULT_ONLY); - - int availableProviders = 0; - for (ResolveInfo info : infoList) { - if (info.activityInfo != null && info.activityInfo.enabled && info.activityInfo.exported) { - availableProviders++; - } - } - - return availableProviders > 0; + return prefs.getBoolean(key, false); } + } diff --git a/app/src/main/java/org/schabi/newpipe/util/FilePickerActivityHelper.java b/app/src/main/java/org/schabi/newpipe/util/FilePickerActivityHelper.java index 20554ce59..8e70e4f8d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/FilePickerActivityHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/FilePickerActivityHelper.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.util; import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.annotation.NonNull; @@ -29,7 +30,7 @@ public class FilePickerActivityHelper extends com.nononsenseapps.filepicker.File @Override public void onCreate(Bundle savedInstanceState) { - if(ThemeHelper.isLightThemeSelected(this)) { + if (ThemeHelper.isLightThemeSelected(this)) { this.setTheme(R.style.FilePickerThemeLight); } else { this.setTheme(R.style.FilePickerThemeDark); @@ -73,6 +74,11 @@ public class FilePickerActivityHelper extends com.nononsenseapps.filepicker.File .putExtra(FilePickerActivityHelper.EXTRA_MODE, FilePickerActivityHelper.MODE_NEW_FILE); } + public static boolean isOwnFileUri(@NonNull Context context, @NonNull Uri uri) { + if (uri.getAuthority() == null) return false; + return uri.getAuthority().startsWith(context.getPackageName()); + } + /*////////////////////////////////////////////////////////////////////////// // Internal //////////////////////////////////////////////////////////////////////////*/ diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManager.java b/app/src/main/java/us/shandian/giga/service/DownloadManager.java index b168ef474..beb5e6dc9 100644 --- a/app/src/main/java/us/shandian/giga/service/DownloadManager.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManager.java @@ -35,8 +35,8 @@ public class DownloadManager { public final static int SPECIAL_PENDING = 1; public final static int SPECIAL_FINISHED = 2; - static final String TAG_AUDIO = "audio"; - static final String TAG_VIDEO = "video"; + public static final String TAG_AUDIO = "audio"; + public static final String TAG_VIDEO = "video"; private final FinishedMissionStore mFinishedMissionStore; diff --git a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java index 69c8e8f50..2b2c09750 100644 --- a/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java +++ b/app/src/main/java/us/shandian/giga/ui/fragment/MissionsFragment.java @@ -7,7 +7,9 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; +import android.net.Uri; import android.os.Bundle; +import android.os.Environment; import android.os.IBinder; import android.preference.PreferenceManager; import android.support.annotation.NonNull; @@ -22,9 +24,14 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.nononsenseapps.filepicker.Utils; + import org.schabi.newpipe.R; +import org.schabi.newpipe.settings.NewPipeSettings; +import org.schabi.newpipe.util.FilePickerActivityHelper; import org.schabi.newpipe.util.ThemeHelper; +import java.io.File; import java.io.IOException; import us.shandian.giga.get.DownloadMission; @@ -37,7 +44,7 @@ import us.shandian.giga.ui.adapter.MissionAdapter; public class MissionsFragment extends Fragment { private static final int SPAN_SIZE = 2; - private static final int REQUEST_DOWNLOAD_PATH_SAF = 0x1230; + private static final int REQUEST_DOWNLOAD_SAVE_AS = 0x1230; private SharedPreferences mPrefs; private boolean mLinear; @@ -242,12 +249,28 @@ public class MissionsFragment extends Fragment { private void recoverMission(@NonNull DownloadMission mission) { unsafeMissionTarget = mission; - StoredFileHelper.requestSafWithFileCreation( - MissionsFragment.this, - REQUEST_DOWNLOAD_PATH_SAF, - mission.storage.getName(), - mission.storage.getType() - ); + + if (NewPipeSettings.useStorageAccessFramework(mContext)) { + StoredFileHelper.requestSafWithFileCreation( + MissionsFragment.this, + REQUEST_DOWNLOAD_SAVE_AS, + mission.storage.getName(), + mission.storage.getType() + ); + + } else { + File initialSavePath; + if (DownloadManager.TAG_VIDEO.equals(mission.storage.getType())) + initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MOVIES); + else + initialSavePath = NewPipeSettings.getDir(Environment.DIRECTORY_MUSIC); + + initialSavePath = new File(initialSavePath, mission.storage.getName()); + startActivityForResult( + FilePickerActivityHelper.chooseFileToSave(mContext, initialSavePath.getAbsolutePath()), + REQUEST_DOWNLOAD_SAVE_AS + ); + } } @Override @@ -290,15 +313,20 @@ public class MissionsFragment extends Fragment { public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode != REQUEST_DOWNLOAD_PATH_SAF || resultCode != Activity.RESULT_OK) return; + if (requestCode != REQUEST_DOWNLOAD_SAVE_AS || resultCode != Activity.RESULT_OK) return; if (unsafeMissionTarget == null || data.getData() == null) { - return;// unsafeMissionTarget cannot be null + return; } try { + Uri fileUri = data.getData(); + if (fileUri.getAuthority() != null && FilePickerActivityHelper.isOwnFileUri(mContext, fileUri)) { + fileUri = Uri.fromFile(Utils.getFileForUri(fileUri)); + } + String tag = unsafeMissionTarget.storage.getTag(); - unsafeMissionTarget.storage = new StoredFileHelper(mContext, null, data.getData(), tag); + unsafeMissionTarget.storage = new StoredFileHelper(mContext, null, fileUri, tag); mAdapter.recoverMission(unsafeMissionTarget); } catch (IOException e) { Toast.makeText(mContext, R.string.general_error, Toast.LENGTH_LONG).show(); diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index fcc5afda9..028f146fc 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -458,7 +458,9 @@ abrir en modo popup Preguntar dónde descargar Se preguntará dónde guardar cada descarga - Se preguntará dónde guardar cada descarga.\nHabilita esta opción si quieres descargar en la tarjeta SD externa + Se preguntará dónde guardar cada descarga.\nHabilita esta opción junto con SAF si quieres descargar en la tarjeta SD externa + Usar SAF + El Framework de Acceso al Almacenamiento permite descargar en la tarjeta SD externa.\nNota: Algunos los dispositivos no son compatibles Desuscribirse Nueva pestaña diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 49f38b667..6c51fbb1c 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -163,6 +163,7 @@ clear_search_history downloads_storage_ask + storage_use_saf file_rename_charset diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 91b0953cc..721fbcac4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -556,6 +556,8 @@ Ask where to download You will be asked where to save each download - You will be asked where to save each download.\nEnable this option if you want download to the external SD Card + You will be asked where to save each download.\nEnable this option with SAF if you want download to the external SD Card + Use SAF + The Storage Access Framework allow download to the external SD Card.\nNote: some devices are not compatible diff --git a/app/src/main/res/xml/download_settings.xml b/app/src/main/res/xml/download_settings.xml index 7a6fab841..0df021842 100644 --- a/app/src/main/res/xml/download_settings.xml +++ b/app/src/main/res/xml/download_settings.xml @@ -12,6 +12,13 @@ android:summary="@string/downloads_storage_ask_summary_kitkat" android:title="@string/downloads_storage_ask_title" /> + + Date: Sun, 18 Aug 2019 01:00:54 +0200 Subject: [PATCH 097/122] move on to version 0.17.1 --- app/build.gradle | 6 +++--- app/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 804c09c00..c70d583b2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 19 targetSdkVersion 28 - versionCode 750 - versionName "0.17.0" + versionCode 760 + versionName "0.17.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -57,7 +57,7 @@ dependencies { exclude module: 'support-annotations' }) - implementation 'com.github.Stypox:NewPipeExtractor:06689a2f27edfe83bd4605a1cceed86c06a5ebf8' + implementation 'com.github.teamnewpipe:NewPipeExtractor:430da57350c587828' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.23.0' diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 721fbcac4..3a56a56c0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -556,8 +556,8 @@ Ask where to download You will be asked where to save each download - You will be asked where to save each download.\nEnable this option with SAF if you want download to the external SD Card + You will be asked where to save each download.\nChoose SAF if you want to download to an external SD card Use SAF - The Storage Access Framework allow download to the external SD Card.\nNote: some devices are not compatible + The Storage Access Framework allows downloads to an external SD card.\nNote: some devices are not compatible From ac797196f57f3e9717c2f06c9a47cd1b204e30eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 17 Aug 2019 02:47:28 +0000 Subject: [PATCH 098/122] Translated using Weblate (English) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values/strings.xml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 91b0953cc..659871042 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -260,16 +260,14 @@ No videos - Video - Videos - - + Video + Videos + No comments %s comment %s comments - Start Pause @@ -310,7 +308,6 @@ Allowed characters in filenames Invalid characters are replaced with this value Replacement character - Letters and digits Most special characters No app installed to play this file @@ -377,7 +374,6 @@ This will override your current setup. Do you want to also import settings? Could not load comments - Kiosk Trending @@ -397,7 +393,6 @@ Start playing here Start playing in the background Start playing in a new popup - Open Drawer Close Drawer @@ -520,7 +515,6 @@ cannot overwrite the file There is a download in progress with this name There is a pending download with this name - Show error Code @@ -539,7 +533,6 @@ No space left on device Progress lost, because the file was deleted Connection timeout - Clear finished downloads Are you sure? Continue your %s pending transfers from Downloads @@ -553,9 +546,8 @@ One download will run at the same time Start downloads Pause downloads - Ask where to download You will be asked where to save each download - You will be asked where to save each download.\nEnable this option if you want download to the external SD Card - - + You will be asked where to save each download. +\nTurn this on if you want download to an external SD card. + \ No newline at end of file From ae0ee61e7dde4a89eb69f2bf9e124dd992908b65 Mon Sep 17 00:00:00 2001 From: Westminboy Date: Sun, 18 Aug 2019 04:41:59 +0000 Subject: [PATCH 099/122] Translated using Weblate (English) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 659871042..aa95025f9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -99,7 +99,7 @@ Resume on focus gain Continue playing after interruptions (e.g. phone calls) Download - Up next + Next Autoplay Show \'Next\' and \'Similar\' videos Show \"Hold to append\" tip From 9074733aab27a70c9651019360eec58726ee005c Mon Sep 17 00:00:00 2001 From: Kowith Singkornkeeree Date: Thu, 15 Aug 2019 16:07:12 +0000 Subject: [PATCH 100/122] Translated using Weblate (Thai) Currently translated at 54.8% (258 of 471 strings) --- app/src/main/res/values-th/strings.xml | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index d0778709b..494125237 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -41,7 +41,7 @@ เส้นทางในการจัดเก็บวิดีโอที่ดาวน์โหลดมา ป้อนเส้นทางการดาวน์โหลดสำหรับวิดีโอ โฟลเดอร์ที่ดาวน์โหลดเสียง - เสียงที่ดาวน์โหลดถูกเก็บไว้ที่นี่ + เสียงที่ดาวน์โหลดจะถูกเก็บไว้ที่นี่ ป้อนเส้นทางการดาวน์โหลดสำหรับไฟล์เสียง เล่นอัตโนมัติ เล่นวิดีโอเมื่อ NewPipe ถูกเรียกจากแอปอื่น @@ -116,7 +116,7 @@ ดาวน์โหลด ดาวน์โหลด รายงานข้อผิดพลาด - ทั้ง หมด + ทั้งหมด ช่อง ช่อง เพลย์ลิสต์ @@ -141,7 +141,7 @@ เลิกทำ ลบไฟล์แล้ว เล่นทั้งหมด - เสมอ + ตลอดเวลา เพียงครั้งเดียว ไฟล์ การแจ้งเตือน NewPipe @@ -177,7 +177,7 @@ ถูกบล็อกโดย GEMA ไม่สามารถตั้งค่าเมนูดาวน์โหลด ยังไม่รองรับสตรีมแบบสดในขณะนี้ - ไม่สามารถรับสตรีมใด ๆ + ไม่สามารถรับสตรีมใดๆ ไม่สามารถโหลดรูปภาพ แอป / UI ขัดข้อง ไม่สามารถเล่นสตรีมนี้ @@ -237,7 +237,7 @@ เล่น สร้าง ลบ - ลบหนึ่ง + ลบหนึ่งรายการ ลบทั้งหมด ไม่สนใจ เปลี่ยนชื่อ @@ -372,16 +372,16 @@ การส่งออกก่อนหน้านี้ ไม่สามารถนำเข้าการสมัครรับข้อมูล ไม่สามารถส่งออกการสมัครรับข้อมูล - นำเข้ารายการช่องที่บอกรับใน YouTube โดยการดาวน์โหลดไฟล์การส่งออก: -\n -\n1ไปที่ URL นี้: %1$s -\n2. เข้าสู่ระบบเมื่อระบบถาม + นำเข้ารายการช่องที่บอกรับใน YouTube โดยการดาวน์โหลดไฟล์การส่งออก: +\n +\n1. ไปที่ URL นี้: %1$s +\n2. เข้าสู่ระบบเมื่อระบบถาม \n3. การดาวน์โหลดควรเริ่มต้น (นั่นคือไฟล์ที่ส่งออก) - นำเข้าโปรไฟล์ SoundCloud โดยการพิมพ์ URL หรือรหัสไอดีผู้ใช้ของคุณ: -\n -\n1. เปิดใช้งาน \"โหมดเดสก์ท็อป\" ในเว็บเบราว์เซอร์ (เว็บไซต์ไม่สามารถใช้ได้สำหรับอุปกรณ์มือถือ) -\n2ไปที่ URL นี้:%1$s -\n3. เข้าสู่ระบบเมื่อระบบถาม + นำเข้าโปรไฟล์ SoundCloud โดยการพิมพ์ URL หรือรหัสไอดีผู้ใช้ของคุณ: +\n +\n1. เปิดใช้งาน \"โหมดเดสก์ท็อป\" ในเว็บเบราว์เซอร์ (เว็บไซต์ไม่สามารถใช้ได้สำหรับอุปกรณ์มือถือ) +\n2. ไปที่ URL นี้: %1$s +\n3. เข้าสู่ระบบเมื่อระบบถาม \n4. คัดลอก URL ของโปรไฟล์ที่คุณถูกเปลี่ยนเส้นทางไป โปรดทราบว่าการดำเนินการนี้อาจใช้งานข้อมูลมือถือที่มีค่าใช้จ่าย \n @@ -392,13 +392,13 @@ ยกเลิกการเชื่อมโยง (อาจทำให้เสียงมีการบิดเบือน) กรอไปข้างหน้าระหว่างความเงียบ ทีละ - รี เซ็ต + รีเซ็ต เพื่อให้สอดคล้องกับระเบียบข้อบังคับว่าด้วยการป้องกันข้อมูลทั่วไปของยุโรป (GDPR) เราขอแนะนำให้คุณอ่านนโยบายความเป็นส่วนตัวของ NewPipe อย่างระมัดระวังและถี่ถ้วน \nคุณต้องยอมรับข้อตกลงเพื่ออนุญาตให้ส่งรายงานข้อผิดพลาดถึงเรา ยอมรับ ปฏิเสธ ไม่จำกัด - จำกัด ความละเอียดเมื่อใช้ข้อมูลมือถือ + จำกัดความละเอียดเมื่อใช้ข้อมูลมือถือ อัพเดท แสดงการแจ้งเตือนการปรับปรุงให้ทราบก่อนอัพเดทแอพ เมื่อมีเวอร์ชั่นใหม่ให้พร้อมใช้งาน ย่อเล็กสุดเมื่อสลับแอป @@ -425,17 +425,17 @@ สร้างชื่อเฉพาะ เขียนทับ ไฟล์ที่ดาวน์โหลดด้วยชื่อนี้มีอยู่แล้ว - มีการดาวน์โหลดอยู่ในความคืบหน้าด้วยไฟล์ชื่อนี้อยู่แล้ว + มีการดาวน์โหลดที่กำลังดำเนินการอยู่ด้วยไฟล์ชื่อนี้อยู่แล้ว แสดงข้อผิดพลาด โค้ด ไม่สามารถสร้างไฟล์ได้ ไม่สามารถสร้างโฟลเดอร์ปลายทางได้ การอนุญาตถูกปฏิเสธโดยระบบ - การเชื่อมต่อที่ปลอดภัยล้มเหลว + ล้มเหลวในการสร้างการเชื่อมต่อที่ปลอดภัย ไม่พบเซิร์ฟเวอร์ ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ เซิร์ฟเวอร์ไม่ส่งข้อมูล - เซิร์ฟเวอร์ไม่รองรับการดาวน์โหลดแบบมัลติเธรด โปรดลองอีกครั้งด้วย @string/msg_threads = 1 + เซิร์ฟเวอร์ไม่รองรับการดาวน์โหลดแบบพร้อมกันหลายส่วน โปรดลองอีกครั้งด้วย @string/msg_threads = 1 ไม่พบ ล้างการดาวน์โหลดที่เสร็จสิ้นแล้ว หยุด From 20208be556a981885941f974def69ef6d2e5330e Mon Sep 17 00:00:00 2001 From: Tobias Groza Date: Thu, 15 Aug 2019 07:51:19 +0000 Subject: [PATCH 101/122] Translated using Weblate (German) Currently translated at 99.4% (468 of 471 strings) --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 1f695715e..7cbfdca92 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -276,7 +276,7 @@ Keine gültige ZIP-Datei Warnung: Nicht alle Dateien konnten importiert werden. Dies wird deine aktuellen Einstellungen überschreiben. - Info anzeigen + Infos anzeigen Lesezeichen für Wiedergabelisten Hinzufügen zu Zum Neuordnen ziehen @@ -402,7 +402,7 @@ Wiedergabelisten Titel Benutzer - Abmelden + Abbestellen Neuer Tab Tab wählen Gestensteuerung für Lautstärke From e621dd3b2813811bcb8342cd053a8649092013af Mon Sep 17 00:00:00 2001 From: Westminboy Date: Sun, 18 Aug 2019 05:09:03 +0000 Subject: [PATCH 102/122] Translated using Weblate (English) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa95025f9..2ddfd1d20 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -260,7 +260,7 @@ No videos - Video + Videos Videos No comments From bc10717f61e83a9e276bbbc60819fcd6635a075c Mon Sep 17 00:00:00 2001 From: Osoitz Date: Fri, 16 Aug 2019 10:15:22 +0000 Subject: [PATCH 103/122] Translated using Weblate (Basque) Currently translated at 99.4% (468 of 471 strings) --- app/src/main/res/values-eu/strings.xml | 34 +++++++++++++++++++++----- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 5379b6104..1db244c22 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -136,7 +136,7 @@ Ukitu xehetasunetarako Itxaron mesedez… Arbelera kopiatuta - Aukeratu eskuragarri dagoen karpeta bat deskargetarako + Ezarri deskargetarako karpeta bat ezarpenetan geroago Baimen hau beharrezkoa da \nlaster-leiho moduan irekitzeko reCAPTCHA @@ -176,7 +176,7 @@ Karaktere berezi gehienak Bilaketa historiala Gorde bilaketak lokalki - Historiala eta katxea + Ikustaldien historiala Gorde ikusitako bideoen historiala NewPipe jakinarazpena Erreproduzigailua @@ -415,7 +415,7 @@ Aplikazioaren eguneraketaren jakinarazpena NewPipe aplikazioaren bertsio berrien jakinarazpena Kanpo biltegiratzea ez dago eskuragarri - Oraindik ezin da SD txartel batera deskargatu. Deskargen karpeta berrezarri\? + Ezin da SD txartel batera deskargatu. Deskargen karpeta berrezarri nahi duzu\? Lehenetsitako fitxak erabiltzen, errorea gordetako fitxak irakurtzean Berrezarri lehenetsitakoak Lehenetsitakoak berrezarri nahi dituzu\? @@ -464,17 +464,39 @@ Gelditu Gehienezko saiakerak Deskarga ezeztatu aurretik saiatu beharreko aldi kopurua - Pausatu datu mugikorretara aldatzean - Pausatu ezin daitezkeen deskargak berrekingo dira + Eten sare neurtuetan + Erabilgarria datu mugikorretara aldatzean, hala ere deskarga batzuk ezin dira pausatu Konexioaren denbora muga Erakutsi iruzkinak Desgaitu iruzkinak erakusteari erakusteko Erreprodukzio automatikoa Iruzkinak - + Iruzkinik ez Ezin izan dira iruzkinak kargatu Itxi + Berrekin erreprodukzioa + Berrezarri azken erreprodukzio-posizioa + Posizioak zerrendetan + Erakutsi erreprodukzio-posizioen adierazleak zerrendetan + Garbitu datuak + Erreprodukzio-posizioak ezabatuta. + Fitxategia lekuz aldatu edo ezabatu da + Badago izen bereko fitxategi bat + ezin da fitxategia gainidatzi + Badago izen bereko deskarga bat burutzeke + NewPipe itxi egin da fitxategian lanean zegoela + Ez dago lekurik gailuan + Progresioa galdu da, fitxategia ezabatu delako + Ziur al zaude\? + Mugatu deskargen ilara + Deskarga bakarra aldi berean + Hasi deskargak + Pausatu deskargak + Galdetu non deskargatu + Non gorde galdetuko zaizu deskarga bakoitzean + Non gorde galdetuko zaizu deskarga bakoitzean. +\nGaitu aukera hau kanpo SD txartelean gorde nahi baduzu \ No newline at end of file From c8e23fb6ceef2008f5d2c4072448bf128dc62ca4 Mon Sep 17 00:00:00 2001 From: uievawkejf Date: Fri, 16 Aug 2019 18:49:17 +0000 Subject: [PATCH 104/122] Translated using Weblate (Ukrainian) Currently translated at 99.4% (468 of 471 strings) --- app/src/main/res/values-uk/strings.xml | 35 +++++++++++++++++++------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 75a60d264..7312003c6 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -107,7 +107,7 @@ Подробиці Зачекайте… Скопійовано до буферу обміну - Оберіть доступну теку для завантажень + Вкажіть теку для завантажень пізніше у налаштуваннях Програвач потокового відео не знайдений (ви можете встановити VLC для програвання). Відкрити у віконному режимі Прибирає звук при ПЕВНИХ роздільних здатностях @@ -436,7 +436,7 @@ Доступна нова версія NewPipe! Натисніть для завантаження Завершено - У черзі + Очікує призупинено додано в чергу пост-обробка @@ -452,8 +452,8 @@ Файл з такою назвою вже завантажується Показати помилку Код - Файл не може бути створений - Цільова тека не може бути створена + Цільова тека не може бути створена + Файл не може бути створений Доступ заборонено системою Захищене з\'єднання не встановлено Сервер не знайдено @@ -466,23 +466,40 @@ Зупинити Максимум спроб Максимальна кількість спроб перед скасуванням завантаження - Призупиняти завантаження при переході на стільникові дані - Завантаження до зовнішньої SD-карти поки що неможливе. Скинути розташування теки для завантажень\? + Переривати завантаження на небезлімітних з\'єднаннях + Завантаження до зовнішньої SD-карти неможливе. Скинути розташування теки для завантажень\? Помилка зчитування збережених вкладок. Використовую типові вкладки. Вкладки, що відображаються на головній сторінці Показувати сповіщення з пропозицією оновити застосунок за наявності нової версії Запитуваний діапазон неприпустимий Продовжити ваші %s відкладених переміщень із Завантажень - Завантаження, що не можуть бути призупинені, будуть перезапущені + Корисно під час переходу на мобільні дані, хоча деякі завантаження не можуть бути призупинені Показувати коментарі Вимнути відображення дописів Автопрогравання Коментарі - - + + Коментарі відсутні Не вдалося підвантажити коментарів Закрити + Позиції відтворення видалено. + Файл переміщено або видалено + не можу перезаписати файл + Завантаження з таким ім\'ям вже є в черзі + NewPipe був закритий під час роботи над файлом + На пристрої не залишилося вільного місця + Прогрес втрачено через видалення файлу + Час очікування з\'єднання вичерпано + Ви впевнені\? + Обмежити чергу завантажень + В кожен момент часу виконуватиметься одне завантаження + Почати завантаження + Призупинити завантаження + Запитувати, куди завантажувати + Вас питатимуть, куди зберігати кожне завантаження + Вас питатимуть, куди зберігати кожне завантаження. +\nУвімкніть цю опцію, якщо бажаєте завантажувати на зовнішню SD-картку \ No newline at end of file From 0b0f7919a250ee890f33405dc58202b1b4c03e0c Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Fri, 16 Aug 2019 07:16:46 +0000 Subject: [PATCH 105/122] Translated using Weblate (Catalan) Currently translated at 95.8% (451 of 471 strings) --- app/src/main/res/values-ca/strings.xml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 5ad960c75..223e604d6 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -305,7 +305,7 @@ Nova missió L\'URL té un format incorrecte o no hi ha connexió a internet Toqueu aquí per a més detalls - Trieu una carpeta de baixades disponible + Definiu una carpeta de baixades més endavant a la configuració Es necessita aquest permís per a obrir el mode emergent Camp reCAPTCHA S\'ha sol·licitat l\'emplenament d\'un camp reCAPTCHA @@ -451,7 +451,7 @@ Intents màxims Nombre màxim d\'intents abans de cancel·lar la baixada Pausa en canviar a dades mòbils - Les baixades que no es puguin pausar es tornaran a iniciar + Útil en canviar a les dades mòbils, tot i que algunes baixades no es poden aturar Elimina la subscripció Sobreescriu No s\'ha trobat @@ -467,6 +467,18 @@ El servidor no està enviant dades Comentaris - + + Notificació d\'actualització de l\'aplicació + Reprèn la reproducció + No es pot sobreescriure el fitxer + Hi ha una baixada pendent amb aquest nom + No hi ha espai disponible al dispositiu + S\'ha perdut el progrés perquè s\'ha eliminat el fitxer + S\'ha excedit el temps d\'espera de la connexió + Segur\? + Limita la cua de baixades + Inicia les baixades + Pausa les baixades + Se us demanarà la ubicació de cada baixada \ No newline at end of file From 118788436e9d3e9b0e76482ff77dd770c4286169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=9C=C5=9C=CE=B2?= Date: Sat, 17 Aug 2019 04:21:33 +0000 Subject: [PATCH 106/122] Translated using Weblate (Punjabi) Currently translated at 99.6% (469 of 471 strings) --- app/src/main/res/values-pa/strings.xml | 521 +++++++++++++++++++++++-- 1 file changed, 495 insertions(+), 26 deletions(-) diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index c307caead..ccaae00b3 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -1,31 +1,500 @@ - -ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਰਚ ਦਬਾਓ - %1$s ਦੇਖੇ - %1$s ਤੇ ਪਬਲਿਸ਼ ਕੀਤਾ - ਸਟਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ . ਤੁਸੀ VLC ਭਰਨਾ ਚਾਹੋਗੇ? - ਸਟਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ (ਤੁਸੀਂ vlc ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ) - ਭਰੋ - ਨਹੀਂ - Browser ਚ ਖੋਲੋ - Popup ਚ ਖੋਲੋ - ਭੇਜੋ + + + ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਰਚ ਦਬਾਓ + %1$s VIEWS + %1$s ਨੂੰ ਪਬਲਿਸ਼ ਕੀਤੀ ਗਈ + "ਸਟ੍ਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ। ਤੁਸੀਂ VLC ਭਰਨਾ ਚਾਹੋਗੇ \?" + ਸਟ੍ਰੀਮ ਪਲੇਅਰ ਨਹੀਂ ਮਿਲਿਆ ਤੁਸੀਂ VLC ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ. + ਇੰਸਟਾਲ + ਰੱਦ ਕਰੋ + ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲੋ + ਪੌਪ-ਅਪ ਵਿਚ ਖੋਲੋ + ਸਾਂਝਾ ਕਰੋ ਡਾਊਨਲੋਡ - ਡਾਊਨਲੋਡ ਸਟਰੀਮ ਫਾਈਲ. + ਡਾਊਨਲੋਡ ਸਟ੍ਰੀਮ ਫਾਈਲ ਖੋਜੋ - ਸੇਟਿੰਗਾਂ + ਸੈਟਿੰਗਾਂ ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ: %1$s\? - ਭੇਜੋ - Browser ਚੁਣੋ - ਉਲਟਾਨਾ - ਹੋਰ ਪਲੇਅਰ ਵਰਤਤੋ - ਕੁਝ ਵੀਡੀਓ ਰੈਸੋਲੂਸ਼ਨ ਚੁਣਨ ਨਾਲ ਆਡੀਓ ਮੌਜੂਦ ਨਹੀਂ ਹੋਵੇਗੀ + ਸਾਂਝਾ ਕਰੋ + ਬ੍ਰਾਊਜ਼ਰ ਚੁਣੋ + ਰੋਟੇਸ਼ਨ + ਹੋਰ ਵੀਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ + ਕੁਝ ਰੇਸੋਲਿਯੁਸ਼ਨ ਤੇ ਆਵਾਜ਼ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ ਬਾਹਰੀ ਆਡੀਓ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰੋ - NewPipe ਪੋਪਉਪ ਮੋਡ - ਸਅਬਸਕਰਾਇਬ - ਮੈਂਬਰ ਬਣਏ - ਚੈਨਲ ਸਦੱਸਤਾ ਰੱਦ ਕੀਤੀ ਗਈ - ਸਦੱਸਤਾ ਨੂੰ ਬਦਲਣ ਵਿਚ ਅਸਮਰੱਥ ਹੈ - ਜਾਣਕਾਰੀ - + NewPipe ਪੌਪ-ਅਪ ਮੋਡ + ਸਬਸਕ੍ਰਾਈਬ + ਸਬਸਕ੍ਰਾਈਬ ਕੀਤਾ ਹੈ + ਚੈਨਲ ਅਨ-ਸਬਸਕ੍ਰਾਈਬ + ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਨੂੰ ਬਦਲਣ ਵਿਚ ਅਸਮਰੱਥ + ਜਾਣਕਾਰੀ ਵੇਖੋ ਮੁੱਖ - + ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਅੱਪਡੇਟ ਕਰਨ ਵਿਚ ਅਸਮਰੱਥ + ਸਬਸਕ੍ਰਿਪਸ਼ਨ + ਬੁੱਕਮਾਰਕ ਪਲੇਲਿਸਟਾਂ + ਨਵਾਂ ਕੀ ਹੈ + ਬੈਕਗਰਾਊਂਡ + ਪੋਪ-ਅਪ + ਸ਼ਾਮਿਲ ਕਰੋ + ਵੀਡੀਓ ਦਾ ਡਾਊਨਲੋਡ ਮਾਰਗ + ਡਾਉਨਲੋਡ ਕੀਤੇ ਵੀਡੀਓ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦਾ ਮਾਰਗ + ਵੀਡੀਓ ਲਈ ਡਾਊਨਲੋਡ ਮਾਰਗ ਭਰੋ + ਆਡੀਓ ਦਾ ਡਾਊਨਲੋਡ ਫੋਲਡਰ + ਡਾਊਨਲੋਡ ਕੀਤੇ ਆਡੀਓ ਇੱਥੇ ਸਟੋਰ ਹਨ + ਆਡੀਓ ਫਾਈਲਾਂ ਲਈ ਡਾਊਨਲੋਡ ਮਾਰਗ ਭਰੋ + ਆਟੋ ਪਲੇ + ਜਦੋਂ ਕਿਸੇ ਹੋਰ ਐਪ ਜਰੀਏ NewPipe ਨੂੰ ਖੋਲਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇਹ ਵੀਡੀਓ ਚਲਾਉਂਦਾ ਹੈ + Default Resolution + Default ਪੌਪ-ਅਪ Resolution + ਉੱਚ ਰੇਸੋਲਿਯੁਸ਼ਨਾਂ ਵੀ ਦਿਖਾਓ + ਸਿਰਫ ਕੁੱਝ ਉਪਕਰਣ ਹੀ 2K/4K ਵੀਡੀਓ ਵਿਖਾਉਣ ਵਿਚ ਸਮਰਥਨ ਹੁੰਦੇ ਹਨ + Kodi ਨਾਲ ਚਲਾਓ + Kore ਐਪ ਮੌਜੂਦ ਨਹੀਂ ਹੈ। ਕੀ ਤੁਸੀਂ ਇਸਨੂੰ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ \? + \"Kodi ਨਾਲ ਚਲਾਓ\" ਵਿਕਲਪ ਦਿਖਾਓ + Kodi ਮੀਡੀਆ ਸੈਂਟਰ ਰਾਹੀਂ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਇੱਕ ਵਿਕਲਪ ਵਿਖਾਓ + ਆਡੀਓ + Default ਆਡੀਓ ਫਾਰਮੈਟ + "Default ਵੀਡੀਓ ਫਾਰਮੈਟ" + ਥੀਮ + ਸਫੈਦ + ਗੂੜਾ + ਕਾਲਾ + ਪੌਪ-ਅਪ ਦਾ ਆਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ + ਪੌਪ-ਅਪ ਦਾ ਆਖਰੀ ਅਕਾਰ ਅਤੇ ਸਥਿਤੀ ਯਾਦ ਰੱਖੋ + ਤੇਜ਼ ਪਰ inexact seek ਵਰਤੋ + Inexact seek ਵੀਡੀਓ ਨੂੰ ਤੇਜ਼ ਪਰ ਅਣ-ਸਟੀਕ ਢੰਗ ਨਾਲ ਅੱਗੇ-ਪਿੱਛੇ ਲਿਜਾਂਦਾ ਹੈ + ਥੰਬਨੇਲ ਲੋਡ ਕਰੋ + ਥੰਬਨੇਲ ਲੋਡ, ਡਾਟਾ ਦੀ ਬਚਤ ਅਤੇ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਨੂੰ ਰੋਕਣ ਲਈ ਇਸਨੂੰ ਬੰਦ ਕਰੋ। ਇਸ ਵਿਚ ਤਬਦੀਲੀ ਕਰਨ ਨਾਲ ਇਨ-ਮੈਮੋਰੀ ਅਤੇ ਆਨ-ਡਿਸਕ ਚਿੱਤਰ cache ਦੋਵੇਂ ਮਿਟ ਜਾਣਗੇ। + ਚਿੱਤਰ cache ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ + Cached metadata ਮਿਟਾਓ + ਸਾਰੇ cached ਵੈੱਬ-ਪੇਜਾਂ ਦਾ ਡਾਟਾ ਮਿਟਾਓ + Metadata cache ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ + ਅਗਲੀ ਸਟ੍ਰੀਮ ਨੂੰ ਆਟੋ-ਕਤਾਰਬੱਧ ਕਰੋ + "ਇੱਕ ਨਾ-ਦੁਹਰਾਉਣ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਆਖਰੀ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਉਣ ਵੇਲੇ ਆਪਣੇ-ਆਪ ਸ਼ਾਮਿਲ ਕਰੋ" + ਵੀਡੀਓ ਪਲੇਯਰ gesture ਕੰਟਰੋਲ + ਸਕ੍ਰੀਨ ਲਾਈਟ ਅਤੇ ਆਵਾਜ਼ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ + ਖੋਜ ਸੁਝਾਅ + ਖੋਜ ਕਰਨ ਵੇਲੇ ਸੁਝਾਅ ਦਿਖਾਓ + ਖੋਜ ਸੂਚੀ + ਖੋਜ ਸੂਚੀ ਨੂੰ locally ਸਟੋਰ ਕਰੋ + ਪਹਿਲਾਂ ਤੋਂ ਵੇਖੀਆਂ ਹੋਈਆਂ ਚੀਜ਼ਾਂ ਦੀ ਸੂਚੀ + ਦੇਖੇ ਗਏ ਵਿਡੀਓਜ਼ ਦੀ ਸੂਚੀ ਰੱਖੋ + Focus gain ਹੋਣ ਤੇ ਦੋਬਾਰਾ ਚਲਾਓ + ਰੁਕਾਵਟਾਂ (ਜਿਵੇਂ ਕਿ ਫੋਨ ਕਾਲਾਂ,ਮੈਸੇਜ) ਤੋਂ ਬਾਅਦ ਪਲੇਅ-ਬੈਕ ਜਾਰੀ ਰੱਖੋ + ਡਾਊਨਲੋਡ + ਅੱਗੇ + \'ਅੱਗੇ\' ਅਤੇ \'ਸਮਾਨਅੰਤਰ\' ਵੀਡੀਓ ਦਿਖਾਓ + \"Hold to append\" ਸੁਝਾਅ ਦਿਖਾਓ + ਵੀਡੀਓ ਵੇਰਵੇ ਪੰਨੇ ਤੇ ਬੈਕਗ੍ਰਾਉਂਡ ਜਾਂ ਪੌਪ-ਅਪ ਬਟਨ ਦਬਾਉਣ ਤੇ ਸੰਕੇਤ ਦਿਖਾਓ + ਅਣ-ਸਹਾਇਕ URL + ਮੂਲ ਦੇਸ਼ Content + ਸੇਵਾ + ਪਲੇਯਰ + ਵਿਵਹਾਰ + ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ + ਹਿਸਟਰੀ ਅਤੇ cache + ਪੌਪ-ਅਪ + ਦਿੱਖ + ਹੋਰ + ਡੀ-ਬੱਗ + ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ + ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ + ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਕਤਾਰਬੱਧ + ਪੌਪ-ਅਪ ਪਲੇਯਰ ਵਿੱਚ ਕਤਾਰਬੱਧ + ਪਲੇ + Content + ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ Content + ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਦਿਖਾਓ ਸੈਟਿੰਗਸ ਤੋਂ ਅਜਿਹੀ ਸਮੱਗਰੀ ਦੀ ਆਗਿਆ ਦੇਣੀ ਸੰਭਵ ਹੈ. + ਲਾਈਵ + ਡਾਊਨਲੋਡਸ + ਡਾਊਨਲੋਡਸ + Error ਰਿਪੋਰਟ + ਸਾਰੇ + ਚੈਨਲ + ਪਲੇ ਸੂਚੀ + ਹਾਂ + ਬਾਅਦ ਵਿੱਚ + ਬੰਦ ਕੀਤਾ + ਫਿਲਟਰ + ਤਾਜ਼ਾ ਕਰੋ + ਮਿਟਾਓ + ਮੁੜ ਆਕਾਰ + ਵਧੀਆ Resolution + ਵਾਪਿਸ + ਸਾਰੇ ਚਲਾਓ + ਹਮੇਸ਼ਾ + ਸਿਰਫ਼ ਇਸ ਬਾਰ + ਫਾਈਲ + NewPipe ਨੋਟੀਫਿਕੇਸ਼ਨ + NewPipe ਬੈਕਗ੍ਰਾਉਂਡ ਅਤੇ ਪੌਪ-ਅਪ ਪਲੇਅਰਾਂ ਲਈ ਸੂਚਨਾਵਾਂ + ਅਣਜਾਣ + Orientation ਬਦਲੋ + ਬੈਕਗਰਾਊਂਡ ਵਿੱਚ ਬਦਲੋ + ਪੌਪ-ਅਪ ਵਿੱਚ ਬਦਲੋ + ਮੁੱਖ ਵਿੱਚ ਬਦਲੋ + Database ਆਯਾਤ ਕਰੋ + Database ਨਿਰਯਾਤ ਕਰੋ + ਤੁਹਾਡੀ ਮੌਜੂਦਾ ਹਿਸਟਰੀ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨਸ ਨੂੰ Override ਕਰਦਾ ਹੈ + ਹਿਸਟਰੀ, ਸੁਬਸਕ੍ਰਿਪਸ਼ਨਸ ਅਤੇ ਪਲੇ-ਸੂਚੀ ਨਿਰਯਾਤ ਕਰੋ + Watch ਹਿਸਟਰੀ ਮਿਟਾਓ + ਚਲਾਈਆਂ ਗਈਆਂ ਸਟ੍ਰੀਮਾਂ ਦੀ ਸੂਚੀ ਮਿਟਾਉਂਦਾ ਹੈ + ਕੀ ਸਾਰੀ watch ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਜਾਵੇ \? + ਖੋਜ ਸੂਚੀ ਮਿਟਾਓ + ਖੋਜ ਸ਼ਬਦਾਂ ਦੀ ਸੂਚੀ ਮਿਟਾਉਂਦਾ ਹੈ + ਕੀ ਸਾਰੀ ਖੋਜ ਸੂਚੀ ਮਿਟਾ ਦਿਤੀ ਜਾਵੇ \? + ਖੋਜ ਸੂਚੀ ਮਿਟਾ ਦਿਤੀ ਗਈ ਹੈ. + ERROR + ਨੈੱਟਵਰਕ ERROR + ਸਾਰੇ ਥੰਬਨੇਲ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ + ਵੀਡੀਓ URL ਦਸਤਖਤ ਡੀਕ੍ਰਿਪਟ ਨਹੀਂ ਹੋ ਸਕਿਆ + ਵੈਬਸਾਈਟ parse ਨਹੀਂ ਹੋ ਸਕੀ + ਵੈਬਸਾਈਟ ਪੂਰੀ ਤਰਾਂ Parse ਨਹੀਂ ਹੋ ਸਕੀ + Content ਉਪਲਬਧ ਨਹੀਂ ਹੈ + ਡਾਊਨਲੋਡ ਮੀਨੂੰ ਸੈਟ-ਅਪ ਨਹੀਂ ਹੋ ਸਕਿਆ + ਲਾਈਵ ਸਟ੍ਰੀਮ ਅਜੇ supported ਨਹੀਂ ਹਨ + ਕੋਈ ਸਟ੍ਰੀਮ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋ ਸਕੀ + ਚਿੱਤਰ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ + ਐਪ/UI crashed + ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ + ਅਣਚਾਹਾ ਪਲੇਅਰ ERROR ਆਇਆ ਹੈ + ਪਲੇਅਰ ERROR ਤੋਂ Recover ਹੋ ਰਿਹਾ ਹੈ + External ਪਲੇਅਰ ਇਸ ਕਿਸਮ ਦੇ ਲਿੰਕਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ + ਅਵੈਧ URL + ਕੋਈ ਵੀ ਵੀਡੀਓ ਸਟ੍ਰੀਮ ਨਹੀਂ ਮਿਲੀ + ਕੋਈ ਵੀ ਆਡੀਓ ਸਟ੍ਰੀਮ ਨਹੀਂ ਮਿਲੀ + ਅਜਿਹਾ ਕੋਈ ਫੋਲਡਰ ਨਹੀਂ + ਅਜਿਹਾ ਕੋਈ ਫਾਈਲ/Content ਸਰੋਤ ਨਹੀਂ ਹੈ + ਫਾਈਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ ਜਾਂ ਇਸ ਨੂੰ ਪੜ੍ਹਨ ਜਾਂ ਲਿਖਣ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ + ਫਾਈਲ ਨਾਮ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ + ਇੱਕ ERROR ਆਇਆ ਹੈ: %1$s + ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਕੋਈ ਸਟ੍ਰੀਮ ਉਪਲਬਧ ਨਹੀਂ ਹੈ + ਮੁਆਫ ਕਰਨਾ, ਅਜਿਹਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਸੀ. + ਈ-ਮੇਲ ਦੁਆਰਾ ERROR ਦੀ ਰਿਪੋਰਟ ਕਰੋ + ਮੁਆਫ ਕਰਨਾ, ਕੁਝ ERROR ਹੋਏ ਹਨ. + ਰਿਪੋਰਟ + ਜਾਣਕਾਰੀ: + ਕੀ ਹੋਇਆ ਹੈ: + ਕਿਸ ਬਾਰੇ:\\nRequest:\\nContent ਭਾਸ਼ਾ:\\nService:\\nGMT ਸਮਾਂ:\\nPackage:\\nVersion:\\nOS version: + ਤੁਹਾਡੀ ਟਿੱਪਣੀ (ਅੰਗਰੇਜ਼ੀ ਵਿਚ): + ਵੇਰਵੇ: + ਵੀਡੀਓ preview thumbnail + ਵੀਡੀਓ preview thumbnail + ਅਪਲੋਡਰ ਦਾ ਅਵਤਾਰ thumbnail + ਪਸੰਦ + ਨਾਪਸੰਦ + TOR ਦੀ ਵਰਤੋਂ ਕਰੋ + (ਪ੍ਰਯੋਗ ਅਧੀਨ) ਗੋਪਨੀਯਤਾ ਲਈ TOR ਦੁਆਰਾ ਟਰੈਫਿਕ ਨੂੰ ਜਬਰੀ Download ਹੋਣ ਲਈ ਮਜਬੂਰ ਕਰੋ (ਸਟ੍ਰੀਮਿੰਗ ਵੀਡੀਓ ਅਜੇ supported ਨਹੀਂ ਹਨ). + ERROR ਰਿਪੋਰਟ ਕਰੋ + ਯੂਸਰ ਰਿਪੋਰਟ + ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ + ਇਥੇ ਦਾ ਸੁੰਨਾਪਨ ਦੂਰ ਕਰਨ ਲਈ ਕੋਈ ਚੈਨਲ ਸਬਸਕ੍ਰਾਇਬ ਕਰੋ + ਕਤਾਰਬੱਧ ਕਰਨ ਲਈ ਖਿੱਚੋ + ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਬਣਾਈ ਜਾ ਸਕਦੀ \'%1$s\' + ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਬਣਾਈ ਗਈ \'%1$s\' + ਵੀਡੀਓ + ਆਡੀਓ + ਦੋਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ + ਸਟੋਰੇਜ਼ Access ਨੂੰ ਅਸਵੀਕਾਰ ਕੀਤਾ ਗਿਆ + ਹਜ਼ਾਰ + ਮਿਲੀਅਨ + ਬਿਲੀਅਨ + ਕੋਈ ਸਬਸਕ੍ਰਾਇਬਰ ਨਹੀਂ + + ਸਬਸਕ੍ਰਾਇਬਰ + ਸਬਸਕ੍ਰਾਇਬਰਸ + + ਕੋਈ views ਨਹੀਂ + + %s view + %s views + + ਕੋਈ ਵੀਡੀਓ ਨਹੀਂ + + ਵੀਡੀਓ + ਵੀਡੀਓਜ਼ + + ਸ਼ੁਰੂ ਕਰੋ + ਰੋਕੋ + ਪਲੇ + ਬਣਾਓ + ਮਿਟਾਓ + ਇੱਕ ਮਿਟਾਓ + ਸਾਰਾ ਮਿਟਾਓ + ਚੈੱਕ-ਸਮ + ਬਰਖਾਸਤ ਕਰੋ + ਨਾਮ ਬਦਲੋ + ਨਵਾਂ ਮਿਸ਼ਨ + ਠੀਕ ਹੈ + ਫਾਈਲ ਦਾ ਨਾਮ + threads + ERROR + Unsupported ਸਰਵਰ + ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ + ਖਰਾਬ URL ਜਾਂ ਇੰਟਰਨੈਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ + NewPipe ਡਾਊਨਲੋਡ ਹੋ ਰਿਹਾ ਹੈ + ਵੇਰਵਿਆਂ ਲਈ ਖੋਲੋ + ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ… + ਕਲਿਪ-ਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਹੋ ਗਿਆ ਹੈ + ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ + ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ ਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ + 1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ. + ReCaptcha + ReCaptcha ਚੁਣੌਤੀ + ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ + ਡਾਊਨਲੋਡ + ਫਾਈਲ ਨਾਮ ਵਿੱਚ ਪ੍ਰਵਾਨਿਤ ਅੱਖਰ + ਗਲਤ ਅੱਖਰ ਇਸ Value ਨਾਲ ਤਬਦੀਲ ਕੀਤੇ ਜਾਣਗੇ + Replacement ਅੱਖਰ + ਅੱਖਰ ਅਤੇ ਅੰਕ + ਬਹੁਤੇ ਖ਼ਾਸ ਅੱਖਰ + ਇਸ ਫਾਈਲ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕੋਈ ਐਪ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ + NewPipe ਬਾਰੇ + ਸੈਟਿੰਗਾਂ + ਐਪ ਬਾਰੇ + ਥਰਡ-ਪਾਰਟੀ ਲਾਇਸੈਂਸ + © %1$s ਵਲੋਂ %2$s, %3$s ਅਧੀਨ + ਲਾਇਸੈਂਸ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ + ਵੈਬਸਾਈਟ ਖੋਲ੍ਹੋ + ਐਪ ਬਾਰੇ + ਯੋਗਦਾਨ ਪਾਉਣ ਵਾਲੇ + ਲਾਇਸੈਂਸ + ਐਂਡਰਾਇਡ ਤੇ ਮੁਫਤ ਲਾਈਟਵੇਟ ਸਟ੍ਰੀਮਿੰਗ. + ਯੋਗਦਾਨ ਪਾਓ + ਭਾਵੇਂ ਤੁਹਾਡੇ ਕੋਲ ਵਿਚਾਰ ਹਨ; ਅਨੁਵਾਦ, ਡਿਜ਼ਾਈਨ ਬਦਲਾਵ, ਕੋਡ ਦੀ ਸਫਾਈ, ਜਾਂ ਅਸਲ ਭਾਰੀ ਕੋਡ ਬਦਲਾਵ — ਹਰ ਮਦਦ ਦਾ ਸਦਾ ਸਵਾਗਤ ਹੈ. ਜਿੰਨਾ ਇਸ ਨੂੰ ਜ਼ਿਆਦਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਉੱਨਾ ਹੀ ਇਹ ਬਿਹਤਰ ਹੁੰਦਾ ਹੈ! + GitHub ਤੇ ਵੇਖੋ + ਦਾਨ ਕਰੋ + NewPipe ਵਲੰਟੀਅਰਾਂ ਦੁਆਰਾ ਵਿਕਸਤ ਕੀਤੀ ਗਈ ਹੈ ਜੋ ਤੁਹਾਡੇ ਲਈ ਬਿਹਤਰ ਅਨੁਭਵ ਲਿਆਉਣ ਲਈ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਹਨ. ਇੱਕ ਕੱਪ ਕਾਫੀ ਦਾ ਆਨੰਦ ਲੈਂਦੇ ਹੋਏ ਡਿਵੈਲਪਰਾਂ ਨੂੰ NewPipe ਨੂੰ ਹੋਰ ਵਧੀਆ ਬਣਾਉਣ ਵਿੱਚ ਸਹਾਇਤਾ ਲਈ ਵਾਪਸ ਦਿਓ. + ਵਾਪਸ ਦਿਓ + ਵੈਬਸਾਈਟ + ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਅਤੇ ਖ਼ਬਰਾਂ ਲਈ NewPipe ਵੈਬਸਾਈਟ ਵੇਖੋ. + NewPipe\'s ਲਾਇਸੈਂਸ + NewPipe ਇੱਕ ਕਾੱਪੀਲਿਫਟ ਮੁਫ਼ਤ ਸਾੱਫਟਵੇਅਰ ਹੈ: ਤੁਸੀਂ ਇਸ ਦੀ ਵਰਤੋਂ, ਅਧਿਐਨ ਅਤੇ ਇਸ ਨੂੰ ਸਾਂਝਾ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਵਿੱਚ ਆਪਣੀ ਮਰਜ਼ੀ ਅਨੁਸਾਰ ਸੁਧਾਰ ਸਕਦੇ ਹੋ. ਖਾਸ ਤੌਰ \'ਤੇ ਤੁਸੀਂ ਇਸ ਨੂੰ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਇਸੈਂਸ ਦੀਆਂ ਸ਼ਰਤਾਂ ਦੇ ਅਧੀਨ ਵੰਡ ਸਕਦੇ ਹੋ / ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਮੁਫਤ ਸਾੱਫਟਵੇਅਰ ਫਾਊਂਡੇਸ਼ਨ ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਾਂ ਤਾਂ ਲਾਇਸੈਂਸ ਦਾ ਵਰਜ਼ਨ 3, ਜਾਂ (ਤੁਹਾਡੇ ਵਿਕਲਪ\' ਤੇ) ਬਾਅਦ ਦਾ ਕੋਈ ਸੰਸਕਰਣ. + ਲਾਇਸੈਂਸ ਪੜ੍ਹੋ + ਹਿਸਟਰੀ + ਖੋਜਿਆ ਗਿਆ + ਵੇਖਿਆ ਗਿਆ + ਹਿਸਟਰੀ ਬੰਦ ਕੀਤੀ ਹੋਈ ਹੈ + ਹਿਸਟਰੀ + ਹਿਸਟਰੀ ਖ਼ਾਲੀ ਹੈ + ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ + ਆਈਟਮ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ + ਕੀ ਤੁਸੀਂ ਇਸ ਚੀਜ਼ ਨੂੰ ਖੋਜ ਸੂਚੀ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ\? + ਕੀ ਤੁਸੀਂ ਇਸ ਨੂੰ ਵੇਖੀ ਗਈ ਸੂਚੀ ਵਿੱਚੋਂ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ \? + ਕੀ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਹਿਸਟਰੀ ਤੋਂ ਸਾਰੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ\? + ਆਖਰੀ ਚਲਾਈ ਗਈ + ਸਭ ਤੋਂ ਜਿਆਦਾ ਚਲਾਈ ਗਈ + ਮੁੱਖ ਪੰਨੇ ਦੀ ਸਮੱਗਰੀ + ਖਾਲੀ ਪੇਜ + Kiosk ਪੇਜ + ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਪੇਜ + ਫੀਡ ਪੇਜ + ਚੈਨਲ ਪੇਜ + ਚੈਨਲ ਚੁਣੋ + ਅਜੇ ਤੱਕ ਕੋਈ ਚੈਨਲ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਨਹੀਂ + ਇੱਕ Kiosk ਚੁਣੋ + ਐਕਸਪੋਰਟ ਕੀਤਾ ਗਿਆ + ਇੰਪੋਰਟ ਕੀਤਾ ਗਿਆ + ਕੋਈ ਵੈਧ ZIP ਫਾਈਲ ਨਹੀਂ ਹੈ + ਚੇਤਾਵਨੀ: ਸਾਰੀਆਂ ਫਾਈਲਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ. + ਇਹ ਤੁਹਾਡੇ ਮੌਜੂਦਾ ਸੈਟ-ਅਪ ਨੂੰ Override ਕਰ ਦੇਵੇਗਾ. + kiosk + ਰੁਝਾਨ ਵਿੱਚ + ਟੌਪ 50 + ਨਵਾਂ ਅਤੇ ਗਰਮਾ-ਗਰਮ + ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ + ਪੌਪ-ਅਪ ਪਲੇਅਰ + ਹਟਾਓ + ਵੇਰਵੇ + ਆਡੀਓ ਸੈਟਿੰਗਾਂ + ਕਤਾਰਬੱਧ ਕਰਨ ਵਾਸਤੇ ਦਬਾ ਕੇ ਰੱਖੋ + ਬੈਕਗ੍ਰਆਊਂਡ ਵਿੱਚ ਕਤਾਰਬੱਧ ਕਰੋ + ਨਵੇਂ ਪੌਪ-ਅਪ ਵਿੱਚ ਕਤਾਰਬੱਧ ਕਰੋ + ਇਥੇ ਚਲਾਉ + "ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਉ" + ਨਵੇਂ ਪੌਪ-ਅਪ ਵਿੱਚ ਚਲਾਓ + Drawer ਖੋਲੋ + Drawer ਬੰਦ ਕਰੋ + ਜਲਦੀ ਹੀ ਇੱਥੇ ਕੁੱਝ ਦਿਖਾਈ ਦੇਵੇਗਾ ;D + ਤਰਜੀਹੀ \'OPEN\' ਐਕਸ਼ਨ + Content ਖੋਲ੍ਹਣ ਵੇਲੇ Default ਕਾਰਵਾਈ — %s + ਵੀਡੀਓ ਪਲੇਅਰ + ਬੈਕਗ੍ਰਾਊਂਡ ਪਲੇਅਰ + ਪੌਪ-ਅਪ ਪਲੇਅਰ + ਹਮੇਸ਼ਾ ਪੁੱਛੋ + ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰ ਰਹੇ ਹਾਂ… + ਬੇਨਤੀ ਕੀਤਾ Content ਲੋਡ ਕੀਤੀ ਜਾ ਰਿਹਾ ਹੈ + ਨਵੀਂ ਪਲੇ-ਲਿਸਟ + ਮਿਟਾਓ + ਨਾਮ ਬਦਲੋ + ਨਾਮ + ਪਲੇ-ਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰੋ + ਪਲੇ-ਲਿਸਟ thumbnail ਦੇ ਤੌਰ ਤੇ ਸੈੱਟ ਕਰੋ + ਬੁੱਕਮਾਰਕ ਪਲੇ-ਲਿਸਟ + ਬੁੱਕਮਾਰਕ ਹਟਾਓ + ਇਸ ਪਲੇ-ਲਿਸਟ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ \? + ਪਲੇ-ਲਿਸਟ ਬਣਾਈ ਗਈ + ਪਲੇ-ਲਿਸਟ ਕੀਤਾ ਗਿਆ + ਪਲੇ-ਲਿਸਟ thumbnail ਬਦਲਿਆ ਗਿਆ. + ਪਲੇ-ਲਿਸਟ ਨੂੰ ਮਿਟਾ ਨਹੀਂ ਸਕੇ. + No captions + ਫਿੱਟ + ਭਰੋ + ਜ਼ੂਮ + Auto-Generated + captions + ਪਲੇਅਰ caption, text ਸਕੇਲ ਅਤੇ ਬੈਕਗ੍ਰਾਉਂਡ ਸਟਾਈਲ ਨੂੰ ਸੋਧੋ. ਪ੍ਰਭਾਵ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਐਪ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ. + LeakCanary ਚਲਾਓ + ਮੈਮੋਰੀ ਲੀਕ monitoring, ਐਪ ਨੂੰ Unresponsive ਬਣਾ ਸਕਦੀ ਹੈ ਜਦੋਂ ਹੀਪ dumping ਹੁੰਦੀ ਹੈ + Out-of-lifecycle ERROR ਰਿਪੋਰਟ ਕਰੋ + ਨਿਪਟਾਰੇ ਦੇ ਬਾਅਦ ਟੁਕੜੇ ਜਾਂ ਗਤੀਵਿਧੀਆਂ ਦੇ lifecycle ਤੋਂ ਬਾਹਰ undeliverable Rx ਅਪਵਾਦਾਂ ਬਾਰੇ ਜ਼ਬਰੀ ਰਿਪੋਰਟ ਕਰਨਾ + ਇੰਪੋਰਟ/ਐਕਸਪੋਰਟ + ਇੰਪੋਰਟ + ਇੰਪੋਰਟ ਕਰੋ + ਐਕਸਪੋਰਟ ਕਰੋ + ਇੰਪੋਰਟ ਹੋ ਰਿਹਾ ਹੈ… + ਐਕਸਪੋਰਟ ਹੋ ਰਿਹਾ ਹੈ… + ਇੰਪੋਰਟ ਫਾਈਲ + ਪਿੱਛਲਾ ਐਕਸਪੋਰਟ + ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ + ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਐਕਸਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ + ਯੂ ਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ: +\n +\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s +\n2. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ +\n3. ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ) + URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ: +\n +\n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ) +\n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s +\n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ +\n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ. + yourID, Soundcloud.com/yourid + ਯਾਦ ਰੱਖੋ ਕਿ ਇਹ ਕਾਰਜ ਡਾਟਾ consuming ਹੋ ਸਕਦਾ ਹੈ. +\n +\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ\? + ਪਲੇਅਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ + tempo + pitch + ਅਨਲਿੰਕ (distortion ਪੈਦਾ ਹੋ ਸਕਦੀ ਹੈ) + ਕੀ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਇੰਪੋਰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ\? + NewPipe\'s ਗੋਪਨੀਯਤਾ ਨੀਤੀ + NewPipe ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ. ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ. +\nNewPipe ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡੇਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. + ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਪੜ੍ਹੋ + ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ NewPipe ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ. ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ. +\nਸਾਨੂੰ BUG ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਪਵੇਗਾ. + ਸਵੀਕਾਰ ਕਰੋ + ਅਸਵੀਕਾਰ + ਕੋਈ ਸੀਮਾ ਨਹੀਂ + ਮੋਬਾਈਲ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ Resolution ਨੂੰ ਸੀਮਿਤ ਕਰੋ + ਐਪ switch ਕਰਨ ਤੇ minimize ਕਰੋ + ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਤੋਂ ਦੂਜੇ ਐਪ \'ਤੇ ਜਾਣ ਵੇਲੇ ਐਕਸ਼ਨ + ਕੋਈ ਨਹੀਂ + ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ Minimize ਕਰੋ + ਪੌਪ-ਅਪ ਪਲੇਅਰ ਵਿੱਚ minimize ਕਰੋ + ਚੁੱਪ ਦੌਰਾਨ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਕਰੋ + ਸਟੇਪ + ਰੀਸੈੱਟ + ਚੈਨਲਾਂ + ਪਲੇ ਸੂਚੀਆਂ + ਟਰੈਕਸ + ਯੂਜ਼ਰਸ + ਅਨ-ਸਬਸਕ੍ਰਾਈਬ + ਨਵਾਂ ਟੈਬ + ਟੈਬ ਚੁਣੋ + ਆਵਾਜ਼ gesture ਕੰਟਰੋਲ + ਆਵਾਜ਼ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ + ਸਕ੍ਰੀਨ ਲਾਈਟ gesture ਕੰਟਰੋਲ + ਵੀਡੀਓ ਸਕ੍ਰੀਨ ਲਾਈਟ ਕੰਟਰੋਲ ਕਰਨ ਲਈ gestures ਦੀ ਵਰਤੋਂ ਕਰੋ + ਮੂਲ ਭਾਸ਼ਾ Content + ਅਪਡੇਟਾਂ + ਫਾਈਲ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ + ਐਪ ਅੱਪਡੇਟ ਨੋਟੀਫਿਕੇਸ਼ਨ + ਨਵੇਂ NewPipe ਸੰਸਕਰਣ ਲਈ ਸੂਚਨਾਵਾਂ + ਬਾਹਰੀ ਸਟੋਰੇਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ + ਬਾਹਰੀ SD ਕਾਰਡ ਤੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਸੰਭਵ ਨਹੀਂ ਹੈ. ਕੀ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਦੀ ਸਥਿਤੀ ਨੂੰ ਰੀਸੈਟ ਕੀਤਾ ਜਾਵੇ \? + Default ਟੈਬ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ, save ਕੀਤੇ ਟੈਬਾਂ ਨੂੰ ਪੜ੍ਹਨ ਵੇਲੇ ERROR + Default ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰੋ + ਕੀ ਤੁਸੀਂ Default ਲਾਗੂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ \? + ਸਬਸਕ੍ਰਾਇਬਰਾਂ ਦੀ ਗਿਣਤੀ ਉਪਲਬਧ ਨਹੀਂ ਹੈ + ਮੁੱਖ ਪੰਨੇ ਤੇ ਕਿਹੜੇ ਟੈਬ ਦਿਖਾਏ ਜਾਣਗੇ + ਚੋਣ + ਅਪਡੇਟਾਂ + ਜਦੋਂ ਨਵਾਂ ਸੰਸਕਰਣ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ ਤਾਂ ਐਪ ਅਪਡੇਟ ਨੂੰ ਪੁੱਛਣ ਲਈ ਇੱਕ ਨੋਟੀਫਿਕੇਸ਼ਨ ਦਿਖਾਓ + ਲਿਸਟ view ਮੋਡ + ਲਿਸਟ + ਗਰਿੱਡ + ਆਟੋ + ਸਵਿੱਚ view + NewPipe ਅੱਪਡੇਟ ਉਪਲਬੱਧ! + ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਦਬਾਓ + ਮੁਕੰਮਲ ਹੋਇਆ + ਬਕਾਇਆ + ਰੁਕਿਆ + ਕਤਾਰਬੱਧ + Post-processing + ਕਤਾਰ + ਸਿਸਟਮ ਦੁਆਰਾ ਕਾਰਵਾਈ ਤੋਂ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ + ਡਾਊਨਲੋਡ ਫੇਲ੍ਹ + ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ + %s ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ + ਵਿਲੱਖਣ ਨਾਮ Generate ਕਰੋ + overwrite + ਇਸ ਨਾਮ ਦੇ ਨਾਲ ਇੱਕ ਡਾਊਨਲੋਡ ਪਹਿਲਾਂ ਤੋਂ ਜਾਰੀ ਹੈ + ERROR ਵਿਖਾਓ + ਕੋਡ + Destination ਫੋਲਡਰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ + ਫਾਈਲ ਨਹੀਂ ਬਣਾਈ ਜਾ ਸਕਦੀ + ਸਿਸਟਮ ਦੁਆਰਾ permission Deny ਕੀਤੀ ਗਈ + ਸੁਰੱਖਿਅਤ ਕੁਨੈਕਸ਼ਨ ਫੇਲ੍ਹ + ਸਰਵਰ ਨਹੀਂ ਲੱਭ ਸਕਿਆ + ਸਰਵਰ ਨਾਲ ਜੁੜ ਨਹੀਂ ਸਕਦਾ + ਸਰਵਰ ਨੇ ਡਾਟਾ ਨਹੀਂ ਭੇਜਿਆ + ਸਰਵਰ ਮਲਟੀ-Threaded ਡਾਊਨਲੋਡਸ ਨੂੰ ਸਵੀਕਾਰ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ @string/msg_threads = 1 + ਬੇਨਤੀ ਕੀਤੀ ਸੀਮਾ ਤਸੱਲੀਬਖਸ਼ ਨਹੀਂ ਹੈ + ਨਹੀਂ ਲਭਿਆ + Post-processing ਫੇਲ੍ਹ + ਮੁਕੰਮਲ ਹੋਈਆਂ ਡਾਊਨਲੋਡ ਸਾਫ਼ ਕਰੋ + ਡਾਉਨਲੋਡਸ ਤੋਂ ਆਪਣੀਆਂ %s ਬਕਾਇਆ ਟ੍ਰਾਂਸਫਰ ਜਾਰੀ ਰੱਖੋ + ਰੁੱਕੋ + ਵੱਧ ਤੋਂ ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ + ਡਾਉਨਲੋਡ ਰੱਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵੱਧ ਤੋਂ ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ + Metered ਨੈਟਵਰਕਸ ਤੇ ਰੁਕਾਵਟ + ਮੋਬਾਈਲ ਡਾਟਾ ਤੇ switch ਕਰਨ ਵੇਲੇ ਲਾਭਦਾਇਕ ਹੈ, ਹਾਲਾਂਕਿ ਕੁਝ ਡਾਉਨਲੋਡਾਂ ਨੂੰ suspend ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ + ਇਵੇੰਟਸ + ਕਾਨਫਰੰਸਾਂ + ਟਿੱਪਣੀਆਂ ਦਿਖਾਓ + ਟਿੱਪਣੀਆਂ ਵਿਖਾਉਣਾ ਬੰਦ ਕਰਨ ਲਈ ਇਸਨੂੰ ਬੰਦ ਕਰੋ + ਆਟੋ-ਪਲੇ + + ਟਿਪਣੀਆਂ + + + ਕੋਈ ਟਿੱਪਣੀ ਨਹੀਂ ਕੀਤੀ ਗਈ + ਟਿੱਪਣੀਆਂ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੀਆਂ + ਬੰਦ ਕਰੋ + ਪਲੇਅਬੈਕ ਦੋਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ + ਪਿਛਲੀ ਪਲੇਅਬੈਕ ਸਥਿਤੀ ਤੋਂ ਮੁੜ ਚਲਾਓ + ਸੂਚੀਆਂ ਦੀ ਸਥਿਤੀ + ਸੂਚੀਆਂ ਵਿੱਚ ਪਲੇਅਬੈਕ ਸਥਿਤੀ ਸੂਚਕ ਦਿਖਾਓ + ਡਾਟਾ ਮਿਟਾਓ + Watch ਹਿਸਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ ਹੈ. + ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ. + ਫਾਈਲ ਮੂਵ ਕੀਤੀ ਜਾਂ ਮਿਟਾਈ ਗਈ ਹੈ + ਇਸ ਨਾਮ ਵਾਲੀ ਇੱਕ ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ + ਇਸ ਨਾਮ ਨਾਲ ਡਾਉਨਲੋਡ ਕੀਤੀ ਫਾਈਲ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ + ਫਾਈਲ Overwrite ਨਹੀਂ ਹੋ ਸਕਦੀ + ਇਸ ਨਾਮ ਦੇ ਨਾਲ ਇੱਥੇ ਇੱਕ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਹੈ + ਫਾਈਲ ਤੇ ਕੰਮ ਕਰਦੇ ਸਮੇਂ NewPipe ਬੰਦ ਕੀਤੀ ਗਈ ਸੀ + ਡਿਵਾਈਸ ਤੇ ਕੋਈ ਜਗ੍ਹਾ ਨਹੀਂ ਬਚੀ ਹੈ + Progress lost, ਕਿਉਂਕਿ ਫਾਈਲ ਮਿਟ ਗਈ ਸੀ + ਕੁਨੈਕਸ਼ਨ timeout + are you sure\? + ਡਾਊਨਲੋਡ ਸੀਮਾ ਕਤਾਰ ਵਿੱਚ + one download will run at the same time + ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰੋ + ਡਾਊਨਲੋਡਸ ਰੋਕੋ + ਪੁੱਛੋ ਕਿੱਥੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਹੈ + ਤੁਹਾਨੂੰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਹਰ ਡਾਉਨਲੋਡ ਨੂੰ ਕਿੱਥੇ save ਕਰਨਾ ਹੈ + ਤੁਹਾਨੂੰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਹਰ ਡਾਉਨਲੋਡ ਨੂੰ ਕਿੱਥੇ save ਕਰਨਾ ਹੈ. +\nਜੇ ਤੁਸੀਂ ਬਾਹਰੀ SD ਕਾਰਡ ਤੇ ਡਾਊਨਲੋਡ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਇਸ ਨੂੰ ਚਾਲੂ ਕਰੋ. + \ No newline at end of file From 1bb58a10e26dac0692f75b239a582d1728d034ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BA=A7n=20L=C3=AA=20Nh=E1=BA=ADt=20Huy?= Date: Sat, 17 Aug 2019 15:21:08 +0000 Subject: [PATCH 107/122] Translated using Weblate (Vietnamese) Currently translated at 99.6% (469 of 471 strings) --- app/src/main/res/values-vi/strings.xml | 68 +++++++++++++++++++------- 1 file changed, 50 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 16171429e..6888f7b8d 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -12,11 +12,11 @@ Tải về Tìm kiếm Cài đặt - Ý của bạn là %1$s\? + Ý của bạn là: %1$s\? Chia sẻ với Chọn trình duyệt Sử dụng trình phát video bên ngoài - Âm thanh có thể không có ở *một vài* độ phân giải video + Loại bỏ âm thanh trên *MỘT SỐ* độ phân giải video Sử dụng trình phát audio bên ngoài Chế độ popup của NewPipe Trình phát nổi @@ -45,13 +45,13 @@ Tối Đen Nhớ kích thước và vị trí của popup - Nhớ kích thước và vị trí cuối của popup + Nhớ kích thước và vị trí lần trước của popup Điều khiển cử chỉ trình phát Sử dụng cử chỉ để kiểm soát độ sáng và âm lượng của trình phát Đề xuất tìm kiếm Hiển thị các đề xuất khi tìm kiếm Tải về - Tiếp + Tiếp theo Hiển thị video \"Tiếp theo\" và \"Tương tự\" URL không được hỗ trợ Hiển thị @@ -78,7 +78,7 @@ Độ phân giải tốt nhất Lỗi Lỗi kết nối mạng - Không thể tải tất cả các thumbnails + Không thể tải tất cả hình thu nhỏ Không thể giải mã chữ ký URL video Không thể phân tích cú pháp trang web Không thể phân tích cú pháp hoàn toàn trang web @@ -132,7 +132,7 @@ Chạm để biết chi tiết Vui lòng đợi … Sao chép vào clipboard - Chọn một thư mục tải về có sẵn + Chọn một thư mục tải về có sẵn trong cài đặt Cần quyền này để \nmở trong chế độ popup ReCAPTCHA @@ -158,7 +158,7 @@ Ngôn ngữ nội dung ưu tiên Video & âm thanh Trình phát nổi - Lịch sử & bộ nhớ cache + Lịch sử xem Lịch sử & bộ nhớ cache Playlist Không tìm thấy @@ -170,13 +170,13 @@ Không tìm thấy trình phát luồng nào (bạn có thể cài đặt VLC để phát). Tải về tệp luồng Hiển thị thông tin - main + Trang chủ Đăng ký - Playlist đã đánh dấu + Danh sách phát được đánh dấu Có gì mới Thêm vào Sử dụng tìm kiếm nhanh không chính xác - Tìm kiếm không chính xác cho phép trình phát tua đến vị trí nhanh hơn với độ chính xác bị hạn chế + Tìm kiếm không chính xác cho phép trình phát tìm đến vị trí nhanh hơn với độ chính xác bị hạn chế Tải hình thu nhỏ Tắt để không tải về các hình thu nhỏ, tiết kiệm lưu lượng mạng và bộ nhớ. Thay đổi điều này sẽ xóa bộ nhớ đệm hình ảnh cả trong RAM và trong bộ nhớ. Đã xóa bộ nhớ cache hình ảnh @@ -184,7 +184,7 @@ Xóa tất cả dữ liệu trang web được lưu trong bộ nhớ cache Đã xóa bộ nhớ cache siêu dữ liệu Tự động phát tiếp theo theo hàng - Tự động thêm một luồng có liên quan khi phát luồng cuối cùng trong hàng đợi không lặp lại. + Tự động thêm một luồng có liên quan khi phát luồng cuối cùng trong hàng đợi không lặp lại Lịch sử tìm kiếm Lưu trữ truy vấn tìm kiếm cục bộ Theo dõi các video đã xem @@ -252,7 +252,7 @@ Không có video nào - Video + Videos Tạo nên Xóa một @@ -315,10 +315,10 @@ Cài đặt âm thanh Giữ để nối tiếp Thêm vào trình phát nền - Thêm vào trình phát popup + Thêm vào trình phát popup mới Bắt đầu phát ở đây - Bắt đầu từ đây trong nền - Bắt đầu từ đây trên trình phát popup + Bắt đầu phát từ đây trong nền + Bắt đầu phát từ đây trên trình phát popup mới Mở ngăn kéo Đóng ngăn Một cái gì đó sẽ xuất hiện ở đây sớm ;D @@ -409,7 +409,7 @@ Thông báo cập nhật ứng dụng Thông báo phiên bản NewPipe mới Bộ nhớ ngoài không khả dụng - Hiện tại chưa thể tải vào thẻ SD ngoài. Đặt lại vị trí tải về\? + Không thể tải vào thẻ SD ngoài. Đặt lại vị trí tải về\? Khôi phục lại các tab mặc định do danh sách các tab đã lưu không hợp lệ Khôi phục về mặc định Bạn có muốn khôi phục về mặc định\? @@ -457,9 +457,41 @@ Dừng Số lượt thử lại tối đa Số lượt thử lại trước khi hủy tải về - Tạm dừng tải khi chuyển qua dữ liệu di động - Các tải về không thể tạm dừng được sẽ bắt đầu lại từ đầu + Tạm dừng tải khi trên dữ liệu di động + Hữu ích khi chuyển sang dữ liệu di động, nhưng một số tải xuống không thể bị đình chỉ Đang chờ xử lý Hội thảo + Hiện nhận xét + Vô hiệu hoá để dừng nhận xét xuất hiện + Tự động phát + + Nhận xét + + Không có nhận xét + Không thể tải nhận xét + Đóng + Tiếp tục phát + Phục hồi vị trí phát lại + Vị trí phát trong danh sách + Hiện vị trí phát lại trong danh sách + Xoá dữ liệu + Đã xoá vị trí phát lại. + Tệp đã di chuyển hoặc đã xoá + Tên file này đã tồn tại + Không thể ghi đè lên tệp + Có một bản tải xuống đang chờ xử lí với tên này + Newpipe đã bị đóng khi đang xử lí tệp + Không đủ dung lượng trên máy + Quá trình mất, vì tập tin đã bị xoá + Kết nối hết thời gian + Bạn có chắc không\? + Giới hạn hàng chờ tải xuống + Chỉ một tải xuống sẽ chạy + Bắt đầu tải xuống + Tạm dừng tải xuống + Hỏi vị trí tải xuống + Bạn sẽ được hỏi vị trí lưu mỗi lần tải xuống + Bạn sẽ được hỏi vị trí lưu mỗi lần tải xuống. +\nBật tính năng này nếu bạn muốn tải xuống sang thẻ SD ngoài. \ No newline at end of file From 645e16fd90945ce516cc57f4c05f2536530f2848 Mon Sep 17 00:00:00 2001 From: thami simo Date: Fri, 16 Aug 2019 19:40:32 +0000 Subject: [PATCH 108/122] Translated using Weblate (Arabic) Currently translated at 99.6% (469 of 471 strings) --- app/src/main/res/values-ar/strings.xml | 65 +++++++++++++++++--------- 1 file changed, 44 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index a509462f1..340da2520 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -20,7 +20,7 @@ مسار حفظ تنزيلات الفيديو في مسار ملفات الفيديو المحفوظة "لا يمكن إنشاء مجلد للتنزيلات في '%1$s'" - "تم إنشاء مجلد تنزيلات في '%1$s'" + إنشاء دليل التنزيل \'%1$s\' تثبيت تطبيق Kore غير موجود. هل تريد تثبيته ؟ مضيء @@ -42,7 +42,7 @@ مشاركة مشاركة بواسطة عرض مقاطع الفيديو \"التالية\" و \"المشابهة\" - عرض خيار لتشغيل الفيديو بواسطة مشغل كودي + عرض خيار تشغيل الفيديو عبر مركز وسائط Kodi عرض خيار التشغيل بواسطة كودي السمة تم النشر يوم %1$s @@ -66,11 +66,11 @@ في الخلفية تشغيل تلقائي اسود - التاريخ وذاكرة التخزين المؤقت + مراقبة السجل التاريخ و ذاكرة التخزين المؤقت محتوى - التنزيلات - عنوان التنزيلات + التحميلات + التحميلات الكل القناة الفيديو @@ -80,7 +80,7 @@ التاريخ التاريخ فتح في وضع منبثق - يزيل الصوت في بعض الخيارات + "يزيل الصوت في بعض قرارات الدقة" وضع النوافذ المنبثقة NewPipe تم إلغاء الاشتراك في القناة تعذر تغيير حالة الاشتراك @@ -113,11 +113,11 @@ محتوى مقيد بحسب العمر "إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"." بث مباشر - عنوان تقرير الخطأ + أبلغ عن خطأ قائمة التشغيل نعم لاحقاً - تعطيل + معطل فلتر تحديث تنظيف @@ -158,11 +158,11 @@ بليون ليس هناك مشترِكون - %s لا يوجد مشترك + %s لا يوجد مشارك %s مشترك - %s اثنتين مشتركين + "%s مشتركتين" %s اشتراكات - %s مشتركين + %s مشاركين %s مشتركون دون مشاهدات @@ -184,7 +184,7 @@ انقر للحصول على التفاصيل يُرجى الإنتظار… تم نسخه إلى الحافظة - الرجاء تحديد مجلد لحفظ التنزيلات + يرجى تحديد مجلد التنزيل لاحقًا في الإعدادات هذا الإذن مطلوب \nللفتح في وضع النافذة المنبثقة اختبار reCAPTCHA @@ -200,7 +200,7 @@ فتح الموقع المساهمون التراخيص - تطبيق حُر و خفيف لتشغيل اليوتيوب على نظام الأندرويد. + تطبيق مجاني خفيف الوزن وبث حي على نظام أندرويد. ساهم إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل ! عرض على GitHub @@ -234,7 +234,7 @@ التفاصيل الإعدادات الصوتية تشغيل هنا - تشغيل في وضع النافذة المنبثقة + تشغيل في وضع نافذة منبثقة تحدي الكابتشا اضغط للإدراج في قائمة الانتظار @@ -425,11 +425,11 @@ تتبيه تحديث التطبيق إيماءة التحكم بالصوت الأحداث - التنبيه بإصدارات newpipe الجديدة - ذاكرة التخزين الخارجي غير متوفرة - التحميل إلى بطاقة الذاكرة الخارجية ليس متاحا حتى الآن. إعادة تعيين موقع مجلد التحميل؟ - باستخدام علامات الجدولة الافتراضية، حدث خطأ أثناء قراءة علامات التبويب المحفوظة - استعادة الافتراضيات + الإخطارات عند تواجد إصدار newpipe جديد + وحدة التخزين الخارجية غير متوفرة + "التنزيل على بطاقة SD الخارجية غير ممكن. إعادة تعيين موقع مجلد التحميل؟" + عند إستخدام علامات التبويب الافتراضية ، وقع خطأ أثناء قراءة علامات التبويب المحفوظة + استعادة الضبط الافتراضي هل تريد استعادة الإعدادات الافتراضية؟ عدد المشتركين غير متاح ما هي التبويبات التي تظهر على الصفحة الرئيسية @@ -476,8 +476,8 @@ توقف أقصى عدد للمحاولات الحد الأقصى لعدد محاولات قبل إلغاء التحميل - "ايقاف عند التحويل إلى البيانات المتنقلة" - سيتم إعادة تحميل التنزيلات التي لا يمكن إيقافها + "إنقطع الإتصال بالشبكة عند التحويل إلى البيانات المتنقلة" + مفيد عند التبديل إلى بيانات الجوال ، على الرغم من أنه لا يمكن تعليق بعض التنزيلات إظهار التعليقات تعطيل لإيقاف عرض التعليقات تشغيل تلقائي @@ -492,4 +492,27 @@ لا توجد تعليقات تعذر تحميل التعليقات إغلاق + استئناف التشغيل + استعادة آخر موقف التشغيل + واضع القوائم + إظهار مؤشرات وضع التشغيل في القوائم + امسح البيانات + تم حذف وضع التشغيل. + نقل الملف أو حذفه + يوجد ملف بهذا الاسم مسبقاً + لا يمكن الكتابة فوق الملف + هناك تنزيل معلق بهذا الاسم + تم إغلاق NewPipe أثناء العمل على الملف + لم يتبقى مساحة في الجهاز + تم فقد التقدم بسبب حذف الملف + انتهى وقت الاتصال + هل أنت واثق؟ + حد قائمة انتظار التنزيل + سيتم تشغيل تنزيل واحد في نفس الوقت + بدء التنزيلات + إيقاف التحميل مؤقتا + اسأل عن مكان التنزيل + سيُطلب منك مكان حفظ كل تنزيل + سوف يطلب منك مكان حفظ كل تحميل. +\nقم بتشغيل هذا إذا كنت تريد التنزيل إلى بطاقة SD خارجية. \ No newline at end of file From 7ff48a6d84d67e4ac7572d4075451c0d929e85de Mon Sep 17 00:00:00 2001 From: zmni Date: Thu, 15 Aug 2019 04:48:15 +0000 Subject: [PATCH 109/122] Translated using Weblate (Indonesian) Currently translated at 99.2% (467 of 471 strings) --- app/src/main/res/values-id/strings.xml | 32 ++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 2131974b3..e00cbd2e3 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -97,7 +97,7 @@ Sentuh untuk detail Mohon tunggu… Disalin ke papan klip - Silakan pilih direktori unduhan yang tersedia + Silakan pilih folder unduhan di pengaturan Pemutar stream tidak ditemukan. Apakah anda ingin memasang VLC\? Tidak bisa dekripsi tanda tangan URL video App/UI rusak @@ -171,7 +171,7 @@ Utama Riwayat pencarian Simpan pencarian secara lokal - Riwayat & Cache + Riwayat tontonan Notifikasi NewPipe Riwayat Riwayat dinonaktifkan @@ -412,7 +412,7 @@ Notifikasi Pembaruan Apl Notifikasi untuk versi NewPipe baru Penyimpanan eksternal tidak tersedia - Belum bisa mengunduh ke kartu SD eksternal. Setel ulang lokasi folder unduhan\? + Tidak bisa mengunduh ke kartu SD eksternal. Atur ulang lokasi folder unduhan\? Menggunakan tab baku, ralat saat membaca tab yang disimpan Kembali ke awal Apakah anda ingin kembali ke awal\? @@ -461,8 +461,8 @@ Berhenti Percobaan maksimum Jumlah upaya maksimum sebelum membatalkan unduhan - Berhenti ketika beralih ke data seluler - Unduhan yang tidak dapat dijeda akan diulang dari awal + Berhenti pada jaringan terbatas + Berguna saat beralih ke data seluler, walaupun beberapa unduhan tidak bisa ditangguhkan Tampilkan komentar Nonaktifkan untuk berhenti menampilkan komentar Otomatis putar @@ -472,4 +472,26 @@ Tidak ada komentar Tidak bisa memuat komentar Tutup + Lanjutkan pemutaran + Pulihkan posisi pemutaran terakhir + Posisi dalam daftar + Tampilkan indikator posisi pemutaran di dalam daftar + Hapus data + Posisi pemutaran dihapus. + Berkas dipindah atau dihapus + Berkas dengan nama yang sama sudah ada + tidak bisa menimpa ulang berkas + Ada unduhan yang dijeda dengan nama ini + NewPipe telah ditutup saat sedang memproses berkas + Tidak ada ruang kosong tersisa pada perangkat + Kehilangan laju, karena berkas telah dihapus + Apakah anda yakin\? + Batasi antrean unduhan + Satu unduhan akan berjalan pada waktu yang bersamaan + Mulai unduh + Jeda unduh + Tanyakan lokasi unduhan + Anda akan ditanya lokasi penyimpanan berkas unduhan + Anda akan ditanya lokasi penyimpanan berkas unduhan. +\nAktifkan opsi ini jika anda ingin mengunduh ke kartu SD eksternal \ No newline at end of file From 9c9dd6c7bf90f3bd630f6839b7a95c006d7a417d Mon Sep 17 00:00:00 2001 From: Florian Date: Thu, 15 Aug 2019 10:10:50 +0000 Subject: [PATCH 110/122] Translated using Weblate (French) Currently translated at 98.3% (463 of 471 strings) --- app/src/main/res/values-fr/strings.xml | 32 +++++++++++++++++++------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 64914be6a..15b3a5a9b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -55,7 +55,6 @@ Erreur Impossible d\'analyser le site web Contenu non disponible - Désolé, des erreurs se sont produites. Contenu Contenu avec limite d\'âge @@ -103,7 +102,7 @@ Appuyer pour plus de détails Veuillez patienter… Copié dans le presse-papiers - Sélectionner un dossier de téléchargement disponible + Veuillez définir un dossier de téléchargement plus tard dans les paramètres Impossible de charger l\'image L’application a crashé reCAPTCHA @@ -175,7 +174,7 @@ Caractère de remplacement Historique de recherche Conserver les recherches sur l\'appareil - Historique et cache + Voir l \'historique Historique Recherché Regardé @@ -421,7 +420,7 @@ Sélection Arrêter Événements - Télécharger vers la carte SD n\'est pas encore possible. Voulez-vous réinitialiser l\'emplacement du dossier \? + Télécharger vers la carte SD n\'est pas possible. Voulez-vous réinitialiser l\'emplacement du dossier \? Quels onglets seront visibles sur la page principale Mises à jour Afficher une notification pour proposer une mise à jour de l\'application lorsqu\'une nouvelle version est disponible @@ -432,7 +431,7 @@ Une mise à jour de NewPipe disponible ! Appuyez pour télécharger Terminé - Dans la file d\'attente + En attente En pause Téléchargement échoué Délai de connection dépassé @@ -447,8 +446,8 @@ Il y a un téléchargement en cours avec ce nom Afficher l\'erreur Code - Le fichier ne peut pas être créé - Le dossier de destination ne peut pas être créé + Le dossier de destination ne peut pas être créé + Le fichier ne peut pas être créé Autorisation refusée par le système Échoué de la connexion sécurisée Le serveur est introuvable @@ -457,7 +456,7 @@ Introuvable Effacer les téléchargements terminés Mettre en pause lors du passage en données mobiles - Les téléchargements qui ne peuvent pas être mis en pause seront redémarrés + Utile lors du passage aux données mobiles, bien que certains téléchargements ne peuvent pas être suspendus Mode liste post-traitement File d’attente @@ -479,4 +478,21 @@ Pas de commentaires Impossible de charger les commentaires Fermer + Reprendre la lecture + Effacer les données + Fichier déplacé ou supprimé + ne peut pas remplacer le fichier + Il y a déjà un téléchargement en attente avec ce nom + NewPipe a été fermé alors qu\'il travaillait sur le fichier + Aucun espace disponible sur le périphérique + Progression perdue, car le fichier a été effacé + Êtes-vous certain \? + Limiter la file d\'attente de téléchargement + Un téléchargement s\'exécutera en même temps + Démarrer les téléchargements + Mettre en pause les téléchargements + Demander où télécharger + On vous demandera où enregistrer chaque téléchargement + On vous demandera où enregistrer chaque téléchargement. +\nActivez cette option si vous voulez télécharger sur la carte SD externe \ No newline at end of file From 1d6c722c28d73162906a09a05e3cdc9a4f35300c Mon Sep 17 00:00:00 2001 From: Westminboy Date: Sun, 18 Aug 2019 04:02:55 +0000 Subject: [PATCH 111/122] Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (470 of 471 strings) --- app/src/main/res/values-cmn/strings.xml | 69 ++++++++++++++++++------- 1 file changed, 51 insertions(+), 18 deletions(-) diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index a98969a1e..dafa9e22c 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -92,7 +92,7 @@ 第三方执照 打开网页 删除书签 - 确定要删除该播放列表吗? + 确定删除该播放列表吗? 已创建播放列表 播放列表 步骤 @@ -115,14 +115,14 @@ 已清除缓存的元数据 不加载缩略图时,可以节省数据和存储空间。更改后将清除存储空间和扩展空间的缓存。 自动排列下一个媒体 - 在非重复排列中播放最后一个媒体时,自动推荐相关媒体。 + 在非重复排列中播放最后一个媒体时自动推荐相关媒体 玩家手势控制 使用手势控制播放器的亮度和音量 搜索建议 搜索时显示建议 搜索历史记录 在本地存储搜索 - 历史记录和缓存数据 + 观看历史 记录观看过的视频 取得视窗焦点时继续播放 在被打断后继续播放(例如有来电) @@ -254,8 +254,8 @@ 没有视频 - 部视频 - + 视频 + 删除 校验 @@ -266,7 +266,7 @@ 错误的网址或网络不可用 点按以查看详细信息 复制到剪贴板 - 请选择下载文件夹 + 请稍后在设置中定义下载文件夹 在悬浮窗模式打开 \n需要此权限 已删除一个项目。 @@ -336,19 +336,19 @@ 详细 音频设置 长按以新增至队列 - 转到后台时排列 - 排列新的悬浮窗 + 加入后台播放列表 + 加入悬浮窗播放列表 从这里开始播放 - 转到后台时从这里开始 - 从新的悬浮窗开始 + 开始在后台播放 + 开始在新悬浮窗播放 打开抽屉 关闭抽屉 - 某些东西即将在此出现;D + 很快就会出现在这里 ;D 偏好的「开启」动作 开启内容时的默认动作 - %s 视频播放器 - 转到后台播放 - 悬浮窗播放 + 后台播放器 + 悬浮窗播放器 总是询问 正在获取信息… 正在载入请求的内容 @@ -362,12 +362,12 @@ 播放列表缩略图已更改。 无法删除播放列表。 没有字幕 - 合适的 + 合适 填满 缩放 自动生成 字幕 - 修改播放器标题文本比例和背景样式。需要重启才能生效。 + 修改播放器字幕文本比列和背景样式。需要重启才能生效。 启用 LeakCanary 内存泄漏监视可能导致应用程序在存储时无响应 报告活动周期外错误 @@ -415,7 +415,7 @@ 应用升级通知 新 NewPipe 版本通知 外储存不可行 - 下载至外置SD卡还未可行。重置下载文件夹位置? + 无法下载到外部SD卡。重置下载文件夹位置? 恢复默认 您真的要恢复至默认吗? 选择 @@ -451,7 +451,7 @@ 重试上限 取消下载前可以尝试的最多次数 - 换成手机数据时暂停 + 换成手机数据时中断 事件 使用默认选项卡, 读取保存的选项卡时出错 订阅者计数不可用 @@ -466,5 +466,38 @@ 服务器不接受多线程下载, 请重试使用 @string/msg_threads = 1 请求范围无法满足 继续进行%s个待下载转移 - 无法暂停的下载将重新开始 + 无法暂停的下载将重新开始。 + 显示评论 + 禁用停止显示评论 + 自动播放 + + 评论 + + + 没有评论 + 无法加载评论 + 关闭 + 继续播放 + 恢复上次播放位置 + 列表中的位置 + 在列表中显示播放位置指示符 + 清除数据 + 播放位置已删除。 + 文件被移动或删除 + 已存在具有此名称的文件 + 无法覆盖该文件 + 同名文件正在等待下载 + 处理此文件时 NewPipe 已关闭 + 设备上没有剩余空间 + 进度丢失,因为文件已被删除 + 连接超时 + 你确定吗? + 限制下载队列 + 同时只有一个下载进行 + 开始全部下载 + 暂停全部下载 + 询问下载位置 + 每次下载将询问保存的位置 + 每次下载将询问保存的位置。 +\n如果要下载到外部SD卡,请选中。 \ No newline at end of file From 223ddaa9bfc1cd6fb548c5a4e1f86178055a91e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Sat, 17 Aug 2019 02:39:43 +0000 Subject: [PATCH 112/122] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 96.8% (456 of 471 strings) --- app/src/main/res/values-nb-rNO/strings.xml | 34 ++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index dfb221ee8..ee7dd9e95 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -105,7 +105,7 @@ Start Nytt mål Feilaktig nettadresse eller manglende internettilknytning - Velg ei tilgjengelig nedlastingsmappe + Velg nedlastingsmappe senere i innstillingene reCAPTCHA reCAPTCHA-oppgave Åpne i oppsprettsmodus @@ -143,7 +143,7 @@ Vis søkeforslag ved søk Søkehistorikk Lagre søkemønster lokalt - Historikk og mellomlagring + Visningshistorikk Lagre visningshistorikk Oppsprett Filter @@ -414,7 +414,7 @@ Programoppgraderingsmerknad Merknader for nye NewPipe-versjoner Ekstern lagring utilgjengelig - Nedlasting til eksternt SD-kort er ikke mulig enda. Tilbakestill plassering av nedlastingsmappe\? + Nedlasting til eksternt SD-kort er ikke mulig. Tilbakestill plassering av nedlastingsmappe\? Bruker forvalgte faner, feil under lagring av lagrede faner. Gjenopprett forvalg Ønsker du å gjenopprette alt til forvalgene\? @@ -462,8 +462,8 @@ Stopp Maksimalt antall forsøk Maksimalt antall tilkoblingsforsøk før nedlastingen avblåses - Pause ved veksling til mobildata - Nedlastinger som ikke kan pauses vil bli startet på nytt + Pause ved veksling til kvotebasert nett + Nyttig ved veksling til mobildata, selv om noen nedlastinger ikke kan settes på pause Vis kommentarer Skru av for å stoppe visning i kommentarer Spill av automatisk @@ -474,4 +474,28 @@ Ingen kommenterer Kunne ikke laste inn kommentarer Lukk + Venter + Gjenoppta avspilling + Fortsett der du slapp + Posisjon i lister + Vis avspillingsposisjonsindikator i lister + Tøm data + Avspillingsposisjon slettet + Fil flyttet eller slettet + En fil ved dette navnet finnes allerede + Kan ikke overskrive filen + Det finnes en ventende nedlasting ved dette navnet + NewPipe ble lukket under arbeid med filen + Ingen ledig plass på enheten + Framdrift gikk tapt, fordi filen ble slettet + Tilkoblingsavbrudd + Er du sikker\? + Begrens nedlastingskø + Én nedlasting av gangen + Start nedlastinger + Sett nedlastinger på pause + Spør om hvor ting skal lastes ned til + Du vil bli spurt om hvor hver nedlasting skal plasseres + Du vil bli spurt om hvor hver nedlasting skal plasseres. +\nSkru på dette valget hvis du vil laste ned til eksternt SD-kort. \ No newline at end of file From e4d0635ae1c7dd9120686cc9ff14625df825de3f Mon Sep 17 00:00:00 2001 From: Eduardo Caron Date: Sun, 18 Aug 2019 17:31:39 +0000 Subject: [PATCH 113/122] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-pt-rBR/strings.xml | 31 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 83eca913a..5ae8392a1 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -96,7 +96,7 @@ Arquivo já existe Threads URL inválida ou internet indisponível - Selecione uma pasta para download + Selecione uma pasta para download posteriormente nas configurações Nenhum player de stream encontrado. Deseja instalar o VLC? Não foi possível interpretar o site Áudio @@ -177,7 +177,7 @@ abrir em modo popup Continuar reproduzindo depois de interrupções (exemplo: ligações) Histórico de pesquisas Armazenar histórico de pesquisa localmente - Histórico & Cache + Histórico de visualização Armazenar histórico de vídeos assistidos Histórico Pesquisado @@ -416,7 +416,7 @@ abrir em modo popup Notificação de Atualização do Aplicativo Notificações para a versão do NewPipe Armazenamento externo indisponível - Baixar para o cartão SD externo ainda não é possivel. Resetar o local da pasta de download\? + Não é possivel baixar para o cartão SD externo . Resetar o local da pasta de download\? Usando abas padrão, erro ao ler abas salvas Restaurar padrões Deseja restaurar os padrões\? @@ -465,7 +465,7 @@ abrir em modo popup Tentativas máximas Número máximo de tentativas antes de cancelar o download Pausar quando trocar para dados móveis - Downloads que não puderem ser pausados serão reiniciados + Útil quando trocar para dados móveis, porém alguns downloads não podem ser suspensos Pendente Exibir comentários Desabilitar para parar de exibir comentários @@ -477,4 +477,27 @@ abrir em modo popup Não há comentários Não foi possível carregar comentários Fechar + Retomar a reprodução + Restaurar para a última posição da reprodução + Posições em listas + Mostrar indicadoers de posição da reprodução nas listas + Limpar dados + Posições da reprodução apagadas. + Arquivo movido ou apagado + Já existe um arquivo com este nome + não é possível sobrescrever o arquivo + Existe um download pendente com este nome + NewPipe foi fechado enquanto manipulava o arquivo + Não há espaço disponível no dispositivo + Progresso perdido devido ao arquivo ter sido apagado + Tempo limite de conexão + Tem certeza\? + Limitar tamanho da fila de download + Um download será executado ao mesmo tempo + Iniciar downloads + Pausar downloads + Perguntar onde salvar o arquivo do download + Você será questionado onde salvar o arquivo a cada download + Você será questionado onde salvar o arquivo a cada download +\nAtive esta opção caso queira fazer o download para um cartão de memória SD externo. \ No newline at end of file From dd276aabc1ad22e57e4db56ebe60f86cd8059b47 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 18 Aug 2019 05:27:18 +0000 Subject: [PATCH 114/122] Translated using Weblate (English) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ddfd1d20..66044c69d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -293,7 +293,7 @@ Tap for details Please wait… Copied to clipboard - Please define an download folder later in settings + Please define a download folder later in settings This permission is needed to\nopen in popup mode 1 item deleted. From 9d573e1b1ddb70e247d183ff95edb98c12aa6ed0 Mon Sep 17 00:00:00 2001 From: naofum Date: Sun, 18 Aug 2019 13:34:13 +0000 Subject: [PATCH 115/122] Translated using Weblate (Japanese) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-ja/strings.xml | 38 ++++++++++++++++++++------ 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f4e33d454..296e6e217 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -57,7 +57,6 @@ 動画のURLを復号できませんでした Webサイトを解析できませんでした コンテンツが利用できません - 保存メニューを設定できませんでした 生放送にはまだ対応していません コンテンツ @@ -100,7 +99,7 @@ タップして詳細を表示 お待ちください… クリップボードにコピーしました - ダウンロードフォルダを選択して下さい + 後ほど設定でダウンロードフォルダを定義してください ダウンロード ダウンロード 不具合報告 @@ -169,7 +168,7 @@ 新着 検索履歴 検索した履歴を記憶します - 再生履歴とキャッシュ + 視聴履歴 再生した履歴を記憶します オーディオフォーカス復帰で再開する 電話などによる中断の後、再生を再開します @@ -436,8 +435,8 @@ 同じ名前を持つダウンロードが既に進行中です エラーを表示する コード - ファイルを作成できません - 宛先フォルダを作成できません + 宛先のフォルダーを作成できません + ファイルを作成できません 権限がシステムによって拒否されました 安全な接続に失敗しました サーバが見つかりませんでした @@ -457,13 +456,13 @@ ジェスチャーを使用して、プレーヤーの明るさを制御します ファイルを削除しました アプリの更新通知 - まだ外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\? + 外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\? デフォルトのタブを使用します。保存されたタブの読み込みエラーが発生しました メインページに表示されるタブ 新しいバージョンが利用可能なときにアプリの更新を確認する通知を表示します ダウンロードから %s の保留中の転送を続行します - モバイルデータ通信に切替時に、一時停止する - 一時停止できない場合は再開して継続されます + 従量制課金ネットワークの割り込み + モバイルデータ通信に切り替える場合に便利ですが、一部のダウンロードは一時停止できません コメントを表示 無効にするとコメントの表示を停止します 自動再生 @@ -474,4 +473,25 @@ コメントを読み込めませんでした 閉じる 接続タイムアウト - + 再生を再開 + 最後に再生した位置を復元します + リスト内の位置 + リストに再生位置インジケーターを表示します + データをクリア + 再生位置を削除しました。 + ファイルが移動または削除されました + ファイルを上書きできません + この名前の保留中のダウンロードがあります + ファイルの作業中に NewPipe が閉じられました + デバイスに空き容量がありません + ファイルが削除されたため、進行状況が失われました + よろしいですか\? + ダウンロード キューの制限 + 同時に1つのダウンロードが実行されます + ダウンロードの開始 + ダウンロードの一時停止 + ダウンロード先を尋ねる + ダウンロードのたびに保存する場所を尋ねます + ダウンロードのたびに保存する場所を尋ねます。 +\n外部 SD カードにダウンロードする場合は、このオプションをオンにしてください。 + \ No newline at end of file From e5207f8b42328c771a8cea5c87d0e2df843d989f Mon Sep 17 00:00:00 2001 From: ssantos Date: Sun, 18 Aug 2019 15:32:36 +0000 Subject: [PATCH 116/122] Translated using Weblate (Portuguese) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-pt/strings.xml | 42 ++++++++++++++++++++------ 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 821b9d086..01ae04d5a 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -27,7 +27,7 @@ Áudio Formato áudio padrão Descarregar - A seguir + Seguinte Mostrar vídeos \'Seguintes\' e \'Semelhantes\' URL não suportado Idioma padrão do conteúdo @@ -57,7 +57,6 @@ Incapaz de descodificar a assinatura do vídeo Incapaz de processar o site Conteúdo não disponível - Conteúdo Restringir conteúdo por idade Mostrar vídeo com restrição de idade. É possível permitir tal material nas Configurações. @@ -100,7 +99,7 @@ Toque para detalhes Por favor aguarde… Copiado para a área de transferência - Por favor selecione a pasta para as descargas + Por favor selecione nas configurações a pasta para as descargas OK Processos Descarga do NewPipe @@ -169,7 +168,7 @@ Novidades Histórico de pesquisa Guardar termos de pesquisa localmente - Histórico e cache + Ver história Guardar histórico de vídeos assistidos Retomar ao ganhar foco Continuar reprodução após interrupções (ex. chamadas) @@ -194,8 +193,8 @@ Sem vídeos - vídeo - vídeos + Vídeo + Vídeos Descarregar Caracteres permitidos em nomes de ficheiros @@ -414,7 +413,7 @@ Notificação de atualização Notificações para uma nova versão do NewPipe Armazenamento externo indisponível - Ainda não é possível descarrgar ao cartão SD. Repor localização da pasta de descargas\? + Não é possível descarregar ao cartão SD. Repor a localização da pasta de descargas\? Erro ao ler os separadores guardados e serão usados os separadores padrão Restaurar predefinições Deseja restaurar as predefinições\? @@ -461,8 +460,8 @@ Parar Tentativas máximas Número máximo de tentativas antes de cancelar a descarga - Pausa na comutação para dados móveis - Descarregamentos que não podem ser pausados serão reiniciados + Interromper em redes limitadas + Útil ao mudar para dados móveis, embora alguns descarregamentos não possam ser suspensos Eventos Conferências Pendente @@ -471,9 +470,32 @@ Reprodução automática Comentários - + Sem comentários Não foi possível carregar comentários Fechar + Continuar a reprodução + Restaurar a última posição de reprodução + Posições nas listas + Mostrar indicadores de posição de reprodução em listas + Limpar dados + Posições de reprodução apagadas. + Ficheiro movido ou apagado + Um ficheiro com este nome já existe + não é possível sobrescrever o ficheiro + Há um descarregamento pendente com este nome + NewPipe foi fechado enquanto trabalhava no ficheiro + Não há espaço disponível no aparelho + Progresso perdido, porque o fiheiro foi apagado + Tempo limite de conexão + Tem certeza\? + Limitar a fila de descarregamentos + Descarregar um só ao mesmo tempo + Iniciar descarregamentos + Pausa descarregamentos + Perguntar para onde descarregar + Você será perguntado para onde gravar cada descarregamento + Você será perguntado para onde gravar cada descarregamento. +\nAtive-o se pretender descarregar para um cartão SD externo. \ No newline at end of file From 96802c7b5c4f1742e5faa3f580364a7d0d6b6a9b Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 18 Aug 2019 05:23:53 +0000 Subject: [PATCH 117/122] Translated using Weblate (Hebrew) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-he/strings.xml | 48 +++++++++++++++++++------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 07fc6ab6f..aed3fda64 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -52,7 +52,7 @@ הצעות חיפוש הצגת הצעות בעת החיפוש הורדה - הבא בתור + הבא להציג סרטונים דומים ובאים בתור כתובת לא נתמכת שפת התוכן המועדפת @@ -108,7 +108,7 @@ מה חדש היסטוריית חיפוש שמירת שאילתות החיפוש מקומית - היסטוריה ומטמון + היסטוריית צפייה תיעוד הסרטונים שנצפו להמשיך את הניגון עם החזרת המיקוד להמשיך לנגן לאחר הפרעות (למשל: שיחות טלפון) @@ -168,9 +168,9 @@ אין סרטונים סרטון - שני סרטונים - %s סרטונים - %s סרטונים + סרטונים + סרטונים + סרטונים התחלה השהיה @@ -189,7 +189,7 @@ יש לגעת לפרטים נוספים נא להמתין… הועתק ללוח - נא לבחור תיקיית הורדה זמינה + נא לציין תיקיית הורדה בהגדרות בהמשך הרשאה זו נדרשת לטובת \nפתיחה בחלון צף reCAPTCHA @@ -407,7 +407,7 @@ התראת עדכון יישומון התראות על גרסה חדשה של NewPipe האחסון החיצוני אינו זמין - אין עדיין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\? + אין אפשרות להוריד לכרטיס SD. לאפס את מיקום תיקיית ההורדה\? נעשה שימוש בלשוניות בררת המחדל, אירעה שגיאה בעת קריאת הלשוניות שנשמרו שחזור בררות מחדל לשחזר את בררות המחדל\? @@ -469,18 +469,42 @@ עצירה מספר הניסיונות החוזרים המרבי מספר הניסיונות החוזרים המרבי בטרם ביטול ההורדה - להשהות בעת מעבר לתקשורת נתונים סלולרית - הורדות שלא ניתן להשהות יופעלו מחדש + לייצר הפרעה ברשתות מדודות + שימושי בעת מעבר לחיבור רשת סלולרית, למרות שישנן הורדות שלא ניתן להשהות הצגת תגובות יש להשבית כדי להפסיק הצגת תגובות ניגון אוטומטי תגובות - - - + + + אין תגובות לא ניתן לטעון תגובות סגירה + בהמתנה + להמשיך בנגינה + לשחזר את מיקום הנגינה האחרון + מיקומים ברשימות + להציג מחווני מיקומי נגינה ברשימות + לנקות את הנתונים + מיקומי הנגינה נמחקו. + הקובץ הועבר או נמחק + כבר קיים קובץ בשם הזה + לא ניתן לשכתב על הקובץ + כבר יש הורדה ממתינה בשם הזה + NewPipe נסגר בזמן העבודה על הקובץ + לא נשאר מקום במכשיר + התהליך אבד כיוון שהקובץ נמחק + החיבור המתין זמן רב מדי + בוודאות\? + הגבלת תור ההורדה + רק הורדה אחת תרוץ בו־זמנית + התחלת הורדות + השהיית הורדות + לשאול לאן להוריד + תופיע שאלה לאן לשמור כל הורדה + תוצג שאלה היכן לשמור כל הורדה. +\nיש להפעיל זאת אם ברצונך להוריד לכרטיס SD חיצוני. \ No newline at end of file From 85632b24fc5f0b4f024e633f663dee1360b0494d Mon Sep 17 00:00:00 2001 From: Westminboy Date: Sun, 18 Aug 2019 05:10:35 +0000 Subject: [PATCH 118/122] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-cmn/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index dafa9e22c..64410a591 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -254,7 +254,7 @@ 没有视频 - 视频 + 部视频 删除 @@ -472,7 +472,7 @@ 自动播放 评论 - + 没有评论 无法加载评论 From 8885b45259c68e348f0e815e912e38714c515625 Mon Sep 17 00:00:00 2001 From: Xiang Xu Date: Sun, 18 Aug 2019 05:43:14 +0000 Subject: [PATCH 119/122] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (471 of 471 strings) --- app/src/main/res/values-cmn/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-cmn/strings.xml b/app/src/main/res/values-cmn/strings.xml index 64410a591..d402bbd84 100644 --- a/app/src/main/res/values-cmn/strings.xml +++ b/app/src/main/res/values-cmn/strings.xml @@ -266,7 +266,7 @@ 错误的网址或网络不可用 点按以查看详细信息 复制到剪贴板 - 请稍后在设置中定义下载文件夹 + 请稍后在设置中定义一个下载文件夹 在悬浮窗模式打开 \n需要此权限 已删除一个项目。 @@ -463,10 +463,10 @@ 切换视图 NewPipe 更新可用! 无法创建目标文件夹 - 服务器不接受多线程下载, 请重试使用 @string/msg_threads = 1 + 服务器不接受多线程下载, 请使用 @string/msg_threads = 1重试 请求范围无法满足 继续进行%s个待下载转移 - 无法暂停的下载将重新开始。 + 切换至移动数据时有用,尽管一些下载无法被暂停 显示评论 禁用停止显示评论 自动播放 From c4f08d541d00bf2229ddfc08a6fa63136a5de1fc Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 18 Aug 2019 11:33:49 +0200 Subject: [PATCH 120/122] Add changelog for 0.17.1 (760) --- .../metadata/android/en-US/changelogs/760.txt | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/760.txt diff --git a/fastlane/metadata/android/en-US/changelogs/760.txt b/fastlane/metadata/android/en-US/changelogs/760.txt new file mode 100644 index 000000000..66858f3ad --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/760.txt @@ -0,0 +1,44 @@ +Changes in 0.17.1 + +New +• Thai localization + + +Improved +• Add start playing here action in long-press menus for playlists again #2518 +• Add switch for SAF / legacy file picker #2521 + +Fixed +• Fix disappearing buttons in downloads view when switching apps #2487 +• Fix playback position is stored although watch history is disabled +• Fix reduced performance caused by playback position in list views #2517 +• [Extractor] Fix ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186 +• [Extractor] [YouTube] Fix casual search error when playlists are in results TeamNewPipe/NewPipeExtractor#185 + + + +Changes in 0.17.0 + +New +Playback resume #2288 +• Resume streams where you stopped last time +Downloader Enhancements #2149 +• Use Storage Access Framework to store downloads on external SD-cards +• New mp4 muxer +• Optionally change the download directory before starting a download +• Respect metered networks + + +Improved +• Removed gema strings #2295 +• Handle (auto)rotation changes during activity lifecycle #2444 +• Make long-press menus consistent #2368 + +Fixed +• Fixed selected subtitle track name not being shown #2394 +• Do not crash when check for app update fails (GitHub version) #2423 +• Fixed downloads stuck at 99.9% #2440 +• Update play queue metadata #2453 +• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170 +• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177 + From e6bcb4628a476a8b180ae8fc7e72b44cee0b5634 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sun, 18 Aug 2019 15:53:56 +0200 Subject: [PATCH 121/122] Fix Portuguese minimize_on_exit_summary Fix #2522 --- app/src/main/res/values-pt/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 01ae04d5a..c0da2af66 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -397,7 +397,7 @@ Ilimitado Limitar resolução se estiver a usar dados móveis Minimizar ao trocar de aplicação - Ação a executar ao trocar para outra aplicação a partir do menu principal - % s + Ação a executar ao trocar para outra aplicação a partir do menu principal - %s Nenhuma Ativar o reprodutor em segundo plano Ativar o reprodutor \'popup\' From acea26717cd5ca4b9e6319d551f09e91f2d2cabc Mon Sep 17 00:00:00 2001 From: Tobias Groza Date: Sun, 18 Aug 2019 17:03:49 +0200 Subject: [PATCH 122/122] Fix another %s in translation --- app/src/main/res/values-cs/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 7d9a03c08..19e662ee7 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -449,7 +449,7 @@ otevření ve vyskakovacím okně Akce odmítnuta systémem Stahování se nezdařilo Stahování dokončeno - % s stahování dokončeno + %s stahování dokončeno Vytvořit jedinečný název Přepsat Stažený soubor s tímto názvem již existuje @@ -487,4 +487,4 @@ otevření ve vyskakovacím okně Nelze načíst komentáře Zavřít Stahování na externí SD kartu ještě není možné. Resetovat umístění složky pro stahování\? - \ No newline at end of file +