Skip to content

Commit b59a601

Browse files
committed
Merge branch 'master' into dev
2 parents aa1db61 + ecb8ef6 commit b59a601

76 files changed

Lines changed: 866 additions & 95 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
branches:
77
- dev
88
- master
9+
- release/**
910
paths-ignore:
1011
- 'README.md'
1112
- 'doc/**'

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
resValue "string", "app_name", "NewPipe"
1717
minSdk 19
1818
targetSdk 29
19-
versionCode 985
20-
versionName "0.22.2"
19+
versionCode 986
20+
versionName "0.23.0"
2121

2222
multiDexEnabled true
2323

@@ -190,7 +190,7 @@ dependencies {
190190
// name and the commit hash with the commit hash of the (pushed) commit you want to test
191191
// This works thanks to JitPack: https://jitpack.io/
192192
implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751'
193-
implementation 'com.github.TeamNewPipe:NewPipeExtractor:b77c72fb8826c3ffca0be5f96b066cca0a07b1c9'
193+
implementation 'com.github.TeamNewPipe:NewPipeExtractor:ac1c22d81c65b7b0c5427f4e1989f5256d617f32'
194194

195195
/** Checkstyle **/
196196
checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}"

app/proguard-rules.pro

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,6 @@
5151
private void writeObject(java.io.ObjectOutputStream);
5252
private void readObject(java.io.ObjectInputStream);
5353
}
54+
55+
# for some reason NotificationModeConfigFragment wasn't kept (only referenced in a preference xml)
56+
-keep class org.schabi.newpipe.settings.notifications.** { *; }

app/src/main/java/org/schabi/newpipe/player/Player.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3557,15 +3557,27 @@ private void buildCaptionMenu(@NonNull final List<String> availableLanguages) {
35573557
}
35583558

35593559
// apply caption language from previous user preference
3560-
final List<String> selectedPreferredLanguages =
3561-
trackSelector.getParameters().preferredTextLanguages;
3560+
final int textRendererIndex = getCaptionRendererIndex();
3561+
if (textRendererIndex == RENDERER_UNAVAILABLE) {
3562+
return;
3563+
}
3564+
3565+
// If user prefers to show no caption, then disable the renderer.
3566+
// Otherwise, DefaultTrackSelector may automatically find an available caption
3567+
// and display that.
35623568
final String userPreferredLanguage =
35633569
prefs.getString(context.getString(R.string.caption_user_set_key), null);
3564-
final int textRendererIndex = getCaptionRendererIndex();
3570+
if (userPreferredLanguage == null) {
3571+
trackSelector.setParameters(trackSelector.buildUponParameters()
3572+
.setRendererDisabled(textRendererIndex, true));
3573+
return;
3574+
}
35653575

3566-
if (userPreferredLanguage != null
3567-
&& !selectedPreferredLanguages.contains(userPreferredLanguage)
3568-
&& textRendererIndex != RENDERER_UNAVAILABLE) {
3576+
// Only set preferred language if it does not match the user preference,
3577+
// otherwise there might be an infinite cycle at onTextTracksChanged.
3578+
final List<String> selectedPreferredLanguages =
3579+
trackSelector.getParameters().preferredTextLanguages;
3580+
if (!selectedPreferredLanguages.contains(userPreferredLanguage)) {
35693581
trackSelector.setParameters(trackSelector.buildUponParameters()
35703582
.setPreferredTextLanguages(userPreferredLanguage,
35713583
PlayerHelper.captionLanguageStemOf(userPreferredLanguage))

app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,20 @@ public final class PlayerHelper {
7878
private static final NumberFormat SPEED_FORMATTER = new DecimalFormat("0.##x");
7979
private static final NumberFormat PITCH_FORMATTER = new DecimalFormat("##%");
8080

81+
/**
82+
* Maximum opacity allowed for Android 12 and higher to allow touches on other apps when using
83+
* NewPipe's popup player.
84+
*
85+
* <p>
86+
* This value is hardcoded instead of being get dynamically with the method linked of the
87+
* constant documentation below, because it is not static and popup player layout parameters
88+
* are generated with static methods.
89+
* </p>
90+
*
91+
* @see WindowManager.LayoutParams#FLAG_NOT_TOUCHABLE
92+
*/
93+
private static final float MAXIMUM_OPACITY_ALLOWED_FOR_S_AND_HIGHER = 0.8f;
94+
8195
@Retention(SOURCE)
8296
@IntDef({AUTOPLAY_TYPE_ALWAYS, AUTOPLAY_TYPE_WIFI,
8397
AUTOPLAY_TYPE_NEVER})
@@ -412,7 +426,7 @@ public static int getProgressiveLoadIntervalBytes(@NonNull final Context context
412426
context.getString(R.string.progressive_load_interval_key),
413427
context.getString(R.string.progressive_load_interval_default_value));
414428

415-
if (context.getString(R.string.progressive_load_interval_default_value)
429+
if (context.getString(R.string.progressive_load_interval_exoplayer_default_value)
416430
.equals(preferredIntervalBytes)) {
417431
return ProgressiveMediaSource.DEFAULT_LOADING_CHECK_INTERVAL_BYTES;
418432
}
@@ -587,6 +601,12 @@ public static WindowManager.LayoutParams buildCloseOverlayLayoutParams() {
587601
flags,
588602
PixelFormat.TRANSLUCENT);
589603

604+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
605+
// Setting maximum opacity allowed for touch events to other apps for Android 12 and
606+
// higher to prevent non interaction when using other apps with the popup player
607+
closeOverlayLayoutParams.alpha = MAXIMUM_OPACITY_ALLOWED_FOR_S_AND_HIGHER;
608+
}
609+
590610
closeOverlayLayoutParams.gravity = Gravity.LEFT | Gravity.TOP;
591611
closeOverlayLayoutParams.softInputMode =
592612
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;

app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
2626

2727
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
2828
addPreferencesFromResource(R.xml.notifications_settings)
29+
30+
// main check is done in onResume, but also do it here to prevent flickering
31+
preferenceScreen.isEnabled =
32+
NotificationHelper.areNotificationsEnabledOnDevice(requireContext())
2933
}
3034

3135
override fun onStart() {
@@ -64,7 +68,7 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
6468
// If they are disabled, show a snackbar informing the user about that
6569
// while allowing them to open the device's app settings.
6670
val enabled = NotificationHelper.areNotificationsEnabledOnDevice(requireContext())
67-
preferenceScreen.isEnabled = enabled
71+
preferenceScreen.isEnabled = enabled // it is disabled by default, see the xml
6872
if (!enabled) {
6973
if (notificationWarningSnackbar == null) {
7074
notificationWarningSnackbar = Snackbar.make(
@@ -85,9 +89,6 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
8589
show()
8690
}
8791
}
88-
} else {
89-
notificationWarningSnackbar?.dismiss()
90-
notificationWarningSnackbar = null
9192
}
9293

9394
// (Re-)Create loader
@@ -102,6 +103,9 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
102103
loader?.dispose()
103104
loader = null
104105

106+
notificationWarningSnackbar?.dismiss()
107+
notificationWarningSnackbar = null
108+
105109
super.onPause()
106110
}
107111

app/src/main/res/values-ar/strings.xml

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,32 @@
735735
<string name="leak_canary_not_available">LeakCanary غير متوفر</string>
736736
<string name="adjust_by_semitones_checkbox">ضبط الصوت من خلال النغمات الموسيقية النصفية</string>
737737
<string name="playback_tempo_step">خطوة الإيقاع</string>
738-
<string name="progressive_load_interval_default">الافتراضي ExoPlayer</string>
738+
<string name="progressive_load_interval_exoplayer_default">الافتراضي ExoPlayer</string>
739739
<string name="progressive_load_interval_summary">تغيير حجم الفاصل الزمني للتحميل (حاليا %s). قد تؤدي القيمة الأقل إلى تسريع تحميل الفيديو الأولي. تتطلب التغييرات إعادة تشغيل المشغل.</string>
740+
<string name="settings_category_player_notification_summary">تكوين إشعار مشغل البث الحالي</string>
741+
<string name="notifications">الإشعارات</string>
742+
<string name="loading_stream_details">تحميل تفاصيل البث…</string>
743+
<string name="notifications_disabled">تم تعطيل الإشعارات</string>
744+
<string name="streams_notification_channel_name">بث جديد</string>
745+
<string name="settings_category_player_notification_title">إشعار المشغل</string>
746+
<string name="you_successfully_subscribed">لقد اشتركت الآن في هذه القناة</string>
747+
<string name="streams_notification_channel_description">الإخطارات حول التدفقات الجديدة للاشتراكات</string>
748+
<string name="enable_streams_notifications_title">إشعارات أحداث البث الجديدة</string>
749+
<string name="enable_streams_notifications_summary">الإخطار بأحداث البث الجديدة من الاشتراكات</string>
750+
<string name="check_new_streams">تشغيل التحقق من وجود تدفقات جديدة</string>
751+
<string name="streams_notifications_interval_title">معدل البحث</string>
752+
<string name="streams_notifications_network_title">مطلوب اتصال الشبكة</string>
753+
<string name="any_network">أي شبكة</string>
754+
<string name="delete_downloaded_files_confirm">محو جميع الملفات التي تم تنزيلها من القرص؟</string>
755+
<string name="get_notified">الحصول على إشعار</string>
756+
<string name="enumeration_comma">,</string>
757+
<string name="toggle_all">تبديل الكل</string>
758+
<plurals name="new_streams">
759+
<item quantity="zero">%s دفق جديد</item>
760+
<item quantity="one">%s دفق جديد</item>
761+
<item quantity="two">%s دفق جديد</item>
762+
<item quantity="few">%s دفوق جديدة</item>
763+
<item quantity="many">%s دفق جديد</item>
764+
<item quantity="other">%s دفق جديد</item>
765+
</plurals>
740766
</resources>

app/src/main/res/values-b+zh+HANS+CN/strings.xml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,5 +676,27 @@
676676
<string name="adjust_by_semitones_checkbox">以音乐半音调整音高</string>
677677
<string name="playback_tempo_step">节奏步长</string>
678678
<string name="progressive_load_interval_summary">改变加载间隔的大小(当前%s),较低的值可以加快初始的视频加载速度,改变需要重启播放器。</string>
679-
<string name="progressive_load_interval_default">ExoPlayer 默认</string>
679+
<string name="progressive_load_interval_exoplayer_default">ExoPlayer 默认</string>
680+
<string name="settings_category_player_notification_summary">配置当前正在播放的串流的通知</string>
681+
<string name="enable_streams_notifications_title">新串流通知</string>
682+
<string name="streams_notifications_interval_title">检查频率</string>
683+
<string name="streams_notifications_network_title">所需的网络连接</string>
684+
<string name="notifications_disabled">通知已被禁用</string>
685+
<string name="you_successfully_subscribed">你刚刚订阅了此频道</string>
686+
<string name="enumeration_comma">,</string>
687+
<string name="toggle_all">全选</string>
688+
<string name="settings_category_player_notification_title">播放器通知</string>
689+
<string name="notifications">通知</string>
690+
<string name="streams_notification_channel_name">新的串流</string>
691+
<plurals name="new_streams">
692+
<item quantity="one">%s 条新串流</item>
693+
<item quantity="other"/>
694+
</plurals>
695+
<string name="streams_notification_channel_description">被订阅的新串流的通知</string>
696+
<string name="loading_stream_details">正在加载串流详情…</string>
697+
<string name="check_new_streams">检查新串流</string>
698+
<string name="any_network">任何网络</string>
699+
<string name="delete_downloaded_files_confirm">清除所有下载的文件?</string>
700+
<string name="get_notified">获取通知</string>
701+
<string name="enable_streams_notifications_summary">来自订阅的新串流的通知</string>
680702
</resources>

app/src/main/res/values-bn-rIN/strings.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@
189189
<string name="search_no_results">কোন রেজাল্ট নেই</string>
190190
<string name="invalid_directory">কোন ফোল্ডার নেই</string>
191191
<string name="download_to_sdcard_error_title">বাহ্যিক স্টোরেজ নেই</string>
192-
<string name="search_history_deleted">সার্চ ইতিহাস ডিলিট হয়েছে</string>
192+
<string name="search_history_deleted">সার্চ ইতিহাস মোছা হয়েছে</string>
193193
<string name="name">নাম</string>
194194
<string name="rename_playlist">নাম পরিবর্তন</string>
195195
<string name="action_history">ইতিহাস</string>
@@ -198,7 +198,7 @@
198198
<string name="create">তৈরি করুন</string>
199199
<string name="retry">পুনরায় চেষ্টা করুন</string>
200200
<string name="help">সাহায্য</string>
201-
<string name="watch_history_deleted">দেখার ইতিহাস মুছে গেছে</string>
201+
<string name="watch_history_deleted">দেখার ইতিহাস মুছে গেছে</string>
202202
<string name="delete_view_history_alert">সম্পূর্ণ দেখার ইতিহাস মুছে ফেলুন\?</string>
203203
<string name="clear_views_history_title">দেখার ইতিহাস মুছে ফেলুন</string>
204204
<string name="export_data_title">ডাটা বেস এক্সপোর্ট করুন</string>
@@ -269,14 +269,14 @@
269269
<string name="enable_playback_state_lists_title">তালিকা তে পজিশন</string>
270270
<string name="enable_playback_resume_summary">শেষ প্লে ব্যাক পজিশন এ যান</string>
271271
<string name="enable_search_history_summary">সার্চ গুলি স্থানীয় ভাবে জমা করুন</string>
272-
<string name="show_search_suggestions_summary">সার্চ এর সময় সাজেশন দেখান</string>
272+
<string name="show_search_suggestions_summary">সার্চ এর সময় সাজেশন পছন্দ করুন</string>
273273
<string name="show_search_suggestions_title">সার্চ সাজেশন</string>
274274
<string name="feed_notification_loading">ফিড লোড হচ্ছে…</string>
275275
<string name="show_error">এরর দেখান</string>
276276
<string name="select_a_playlist">একটি প্লে লিস্ট পছন্দ করুন</string>
277277
<string name="tab_about">সম্পর্কিত</string>
278278
<string name="title_licenses">থার্ড-পার্টি লাইসেন্স সমূহ</string>
279-
<string name="error_report_open_issue_button_text">গিটহাব এ এরর রিপোর্ট করুন</string>
279+
<string name="error_report_open_issue_button_text">গিটহাব এ রিপোর্ট করুন</string>
280280
<string name="restore_defaults">ডিফল্ট এ ফিরে যান</string>
281281
<string name="search_showing_result_for">রেজাল্ট দেখান হচ্ছেঃ %s</string>
282282
<string name="clear_queue_confirmation_title">কিউ মোছার আগে নিশ্চিত করুন</string>
@@ -292,4 +292,12 @@
292292
<string name="show_meta_info_title">মেটা ইনফো দেখান</string>
293293
<string name="show_description_title">বিবরণ দেখান</string>
294294
<string name="night_theme_title">রাত্রি থিম</string>
295+
<string name="notification_action_2_title">তৃতীয় অ্যাকশান বোতাম</string>
296+
<string name="notification_action_3_title">চতুর্থ অ্যাকশান বোতাম</string>
297+
<string name="clear_queue_confirmation_description">সক্রিয় প্লেয়ার ক্রম পরিবর্তিত হয়ে যাবে</string>
298+
<string name="local_search_suggestions">স্থানীয় সার্চ সাজেশন</string>
299+
<string name="notification_action_4_title">পঞ্চম অ্যাকশান বোতাম</string>
300+
<string name="notification_action_0_title">প্রথম অ্যাকশান বোতাম</string>
301+
<string name="notification_action_1_title">দ্বিতীয় অ্যাকশান বোতাম</string>
302+
<string name="streams_notification_channel_name">নতুন স্ট্রিম</string>
295303
</resources>

app/src/main/res/values-cs/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -700,5 +700,5 @@
700700
<string name="leak_canary_not_available">LeakCanary není dostupné</string>
701701
<string name="adjust_by_semitones_checkbox">Upravit výšku tónů po půltónech</string>
702702
<string name="playback_tempo_step">Krok tempa</string>
703-
<string name="progressive_load_interval_default">Výchozí ExoPlayer</string>
703+
<string name="progressive_load_interval_exoplayer_default">Výchozí ExoPlayer</string>
704704
</resources>

0 commit comments

Comments
 (0)