selectedPreferredLanguages =
+ trackSelector.getParameters().preferredTextLanguages;
+ if (!selectedPreferredLanguages.contains(userPreferredLanguage)) {
trackSelector.setParameters(trackSelector.buildUponParameters()
.setPreferredTextLanguages(userPreferredLanguage,
PlayerHelper.captionLanguageStemOf(userPreferredLanguage))
diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
index e21b21d35..b73c6cf7f 100644
--- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
@@ -78,6 +78,20 @@ public final class PlayerHelper {
private static final NumberFormat SPEED_FORMATTER = new DecimalFormat("0.##x");
private static final NumberFormat PITCH_FORMATTER = new DecimalFormat("##%");
+ /**
+ * Maximum opacity allowed for Android 12 and higher to allow touches on other apps when using
+ * NewPipe's popup player.
+ *
+ *
+ * This value is hardcoded instead of being get dynamically with the method linked of the
+ * constant documentation below, because it is not static and popup player layout parameters
+ * are generated with static methods.
+ *
+ *
+ * @see WindowManager.LayoutParams#FLAG_NOT_TOUCHABLE
+ */
+ private static final float MAXIMUM_OPACITY_ALLOWED_FOR_S_AND_HIGHER = 0.8f;
+
@Retention(SOURCE)
@IntDef({AUTOPLAY_TYPE_ALWAYS, AUTOPLAY_TYPE_WIFI,
AUTOPLAY_TYPE_NEVER})
@@ -412,7 +426,7 @@ public final class PlayerHelper {
context.getString(R.string.progressive_load_interval_key),
context.getString(R.string.progressive_load_interval_default_value));
- if (context.getString(R.string.progressive_load_interval_default_value)
+ if (context.getString(R.string.progressive_load_interval_exoplayer_default_value)
.equals(preferredIntervalBytes)) {
return ProgressiveMediaSource.DEFAULT_LOADING_CHECK_INTERVAL_BYTES;
}
@@ -587,6 +601,12 @@ public final class PlayerHelper {
flags,
PixelFormat.TRANSLUCENT);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ // Setting maximum opacity allowed for touch events to other apps for Android 12 and
+ // higher to prevent non interaction when using other apps with the popup player
+ closeOverlayLayoutParams.alpha = MAXIMUM_OPACITY_ALLOWED_FOR_S_AND_HIGHER;
+ }
+
closeOverlayLayoutParams.gravity = Gravity.LEFT | Gravity.TOP;
closeOverlayLayoutParams.softInputMode =
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt
index e823c2fcf..fcc9abf73 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt
+++ b/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt
@@ -26,6 +26,10 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.notifications_settings)
+
+ // main check is done in onResume, but also do it here to prevent flickering
+ preferenceScreen.isEnabled =
+ NotificationHelper.areNotificationsEnabledOnDevice(requireContext())
}
override fun onStart() {
@@ -64,7 +68,7 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
// If they are disabled, show a snackbar informing the user about that
// while allowing them to open the device's app settings.
val enabled = NotificationHelper.areNotificationsEnabledOnDevice(requireContext())
- preferenceScreen.isEnabled = enabled
+ preferenceScreen.isEnabled = enabled // it is disabled by default, see the xml
if (!enabled) {
if (notificationWarningSnackbar == null) {
notificationWarningSnackbar = Snackbar.make(
@@ -85,9 +89,6 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
show()
}
}
- } else {
- notificationWarningSnackbar?.dismiss()
- notificationWarningSnackbar = null
}
// (Re-)Create loader
@@ -102,6 +103,9 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
loader?.dispose()
loader = null
+ notificationWarningSnackbar?.dismiss()
+ notificationWarningSnackbar = null
+
super.onPause()
}
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 818f946dd..3bb304848 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -735,6 +735,32 @@
LeakCanary غير متوفر
ضبط الصوت من خلال النغمات الموسيقية النصفية
خطوة الإيقاع
- الافتراضي ExoPlayer
+ الافتراضي ExoPlayer
تغيير حجم الفاصل الزمني للتحميل (حاليا %s). قد تؤدي القيمة الأقل إلى تسريع تحميل الفيديو الأولي. تتطلب التغييرات إعادة تشغيل المشغل.
+ تكوين إشعار مشغل البث الحالي
+ الإشعارات
+ تحميل تفاصيل البث…
+ تم تعطيل الإشعارات
+ بث جديد
+ إشعار المشغل
+ لقد اشتركت الآن في هذه القناة
+ الإخطارات حول التدفقات الجديدة للاشتراكات
+ إشعارات أحداث البث الجديدة
+ الإخطار بأحداث البث الجديدة من الاشتراكات
+ تشغيل التحقق من وجود تدفقات جديدة
+ معدل البحث
+ مطلوب اتصال الشبكة
+ أي شبكة
+ محو جميع الملفات التي تم تنزيلها من القرص؟
+ الحصول على إشعار
+ ,
+ تبديل الكل
+
+ - %s دفق جديد
+ - %s دفق جديد
+ - %s دفق جديد
+ - %s دفوق جديدة
+ - %s دفق جديد
+ - %s دفق جديد
+
\ No newline at end of file
diff --git a/app/src/main/res/values-b+zh+HANS+CN/strings.xml b/app/src/main/res/values-b+zh+HANS+CN/strings.xml
index 4aa497e99..c5b9e9646 100644
--- a/app/src/main/res/values-b+zh+HANS+CN/strings.xml
+++ b/app/src/main/res/values-b+zh+HANS+CN/strings.xml
@@ -676,5 +676,27 @@
以音乐半音调整音高
节奏步长
改变加载间隔的大小(当前%s),较低的值可以加快初始的视频加载速度,改变需要重启播放器。
- ExoPlayer 默认
+ ExoPlayer 默认
+ 配置当前正在播放的串流的通知
+ 新串流通知
+ 检查频率
+ 所需的网络连接
+ 通知已被禁用
+ 你刚刚订阅了此频道
+ ,
+ 全选
+ 播放器通知
+ 通知
+ 新的串流
+
+ - %s 条新串流
+
+
+ 被订阅的新串流的通知
+ 正在加载串流详情…
+ 检查新串流
+ 任何网络
+ 清除所有下载的文件?
+ 获取通知
+ 来自订阅的新串流的通知
\ No newline at end of file
diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml
index 12d526a7d..24498f162 100644
--- a/app/src/main/res/values-bn-rIN/strings.xml
+++ b/app/src/main/res/values-bn-rIN/strings.xml
@@ -189,7 +189,7 @@
কোন রেজাল্ট নেই
কোন ফোল্ডার নেই
বাহ্যিক স্টোরেজ নেই
- সার্চ ইতিহাস ডিলিট হয়েছে।
+ সার্চ ইতিহাস মোছা হয়েছে
নাম
নাম পরিবর্তন
ইতিহাস
@@ -198,7 +198,7 @@
তৈরি করুন
পুনরায় চেষ্টা করুন
সাহায্য
- দেখার ইতিহাস মুছে গেছে।
+ দেখার ইতিহাস মুছে গেছে
সম্পূর্ণ দেখার ইতিহাস মুছে ফেলুন\?
দেখার ইতিহাস মুছে ফেলুন
ডাটা বেস এক্সপোর্ট করুন
@@ -269,14 +269,14 @@
তালিকা তে পজিশন
শেষ প্লে ব্যাক পজিশন এ যান
সার্চ গুলি স্থানীয় ভাবে জমা করুন
- সার্চ এর সময় সাজেশন দেখান
+ সার্চ এর সময় সাজেশন পছন্দ করুন
সার্চ সাজেশন
ফিড লোড হচ্ছে…
এরর দেখান
একটি প্লে লিস্ট পছন্দ করুন
সম্পর্কিত
থার্ড-পার্টি লাইসেন্স সমূহ
- গিটহাব এ এরর রিপোর্ট করুন
+ গিটহাব এ রিপোর্ট করুন
ডিফল্ট এ ফিরে যান
রেজাল্ট দেখান হচ্ছেঃ %s
কিউ মোছার আগে নিশ্চিত করুন
@@ -292,4 +292,12 @@
মেটা ইনফো দেখান
বিবরণ দেখান
রাত্রি থিম
+ তৃতীয় অ্যাকশান বোতাম
+ চতুর্থ অ্যাকশান বোতাম
+ সক্রিয় প্লেয়ার ক্রম পরিবর্তিত হয়ে যাবে
+ স্থানীয় সার্চ সাজেশন
+ পঞ্চম অ্যাকশান বোতাম
+ প্রথম অ্যাকশান বোতাম
+ দ্বিতীয় অ্যাকশান বোতাম
+ নতুন স্ট্রিম
\ No newline at end of file
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 98523442a..84c957f1c 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -700,5 +700,5 @@
LeakCanary není dostupné
Upravit výšku tónů po půltónech
Krok tempa
- Výchozí ExoPlayer
+ Výchozí ExoPlayer
\ No newline at end of file
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 8fadebacd..71bb83fb0 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -396,4 +396,5 @@
Viser resultater for: %s
Åben med
LeakCanary er ikke tilgængelig
+ Markér som set
\ 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 edde1ab27..1b47fba2f 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -666,9 +666,9 @@
Hauptplayer im Vollbildmodus starten
Als Nächstes eingereiht
Als Nächstes in Wiedergabe einreihen
- Verarbeitung… Kann einen Moment dauern
+ Verarbeitung … Kann einen Moment dauern
Nach Aktualisierungen suchen
- Suche nach Aktualisierungen…
+ Suche nach Aktualisierungen …
Manuelle Prüfung auf neue Versionen
Neue Feed-Elemente
\"Player abstürzen lassen\" anzeigen
@@ -690,5 +690,25 @@
Tonhöhe nach musikalischen Halbtönen anpassen
Ändern der Größe des Ladeintervalls (derzeit %s). Ein niedrigerer Wert kann das anfängliche Laden des Videos beschleunigen. Änderungen erfordern einen Neustart des Players.
Geschwindigkeitsstufe
- ExoPlayer Standard
+ ExoPlayer Standard
+ Benachrichtigungen
+ Benachrichtigen über neue abonnierbare Streams
+ Neue Streams
+
+ - %s neuer Stream
+ - %s neue Streams
+
+ Stream-Details laden …
+ Über neue Streams aus Abonnements benachrichtigen
+ ,
+ Jedes Netzwerk
+ Benachrichtigungen über neue Streams
+ Suche nach neuen Streams ausführen
+ Erforderliche Netzwerkverbindung
+ Benachrichtigungen sind deaktiviert
+ Benachrichtigung erhalten
+ Alle heruntergeladenen Dateien von der Festplatte löschen\?
+ Du hast jetzt diesen Kanal abonniert
+ Alle umschalten
+ Aktualisierungsintervall
\ 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 911c97be6..b54b34d60 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -687,6 +687,28 @@
Το LeakCanary δεν είναι διαθέσιμο
Προσαρμόστε τον τόνο με βάση τα μουσικά ημιτόνια
Βήμα τέμπο
- Εξ\' ορισμού ExoPlayer
+ Εξ\' ορισμού ExoPlayer
Αλλάξτε το μέγεθος του διαστήματος φόρτωσης (επί του παρόντος είναι %s). Μια χαμηλότερη τιμή μπορεί να επιταχύνει την αρχική φόρτωση βίντεο. Οι αλλαγές απαιτούν επανεκκίνηση της εφαρμογής.
+ Ειδοποιήσεις
+
+ - %s νέα ροή
+ - %s νέες ροές
+
+ Απαιτούμενη σύνδεση δικτύου
+ Οποιοδήποτε δίκτυο
+ Ειδοποίηση αναπαραγωγής
+ Νέες ροές
+ Διαμόρφωση ειδοποίησης τρέχουσας αναπαραγωγής ροής
+ Συχνότητα ελέγχου
+ Ειδοποιήσεις σχετικά με νέες ροές για συνδρομές
+ Φόρτωση λεπτομερειών ροής…
+ Εκτελέστε έλεγχο για νέες ροές
+ Ειδοποιήσεις για νέες ροές
+ Ειδοποίηση για νέες ροές από συνδρομές
+ Διαγραφή όλων των ληφθέντων αρχείων από το δίσκο;
+ Οι ειδοποιήσεις είναι απενεργοποιημένες
+ ,
+ Λάβετε ειδοποίηση
+ Έχετε εγγραφεί τώρα σε αυτό το κανάλι
+ Εναλλαγή όλων
\ 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 4d69a096d..f386801e2 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -688,8 +688,12 @@
Comentario fijado
Ya se reproduce en segundo plano
LeakCanary no está disponible
- ExoPlayer valor por defecto
+ ExoPlayer valor por defecto
Paso de tempo
Cambia el tamaño del intervalo de carga (actualmente %s). Un valor más bajo puede acelerar la carga inicial del vídeo. Los cambios requieren un reinicio del reproductor.
Ajustar el tono por semitonos musicales
+ Notificaciones
+ Nuevos streams
+ Notificación del reproductor
+ Configurar notificación de la reproducción en curso
\ No newline at end of file
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 439c9d906..d04834f8a 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -685,6 +685,30 @@
\nPalun paigalda nutiseadmesse failihaldur, mis järgib Storage Access Framework reeglistikku.