Skip to content

Commit 9982245

Browse files
feat(YouTube/Overlay buttons): replace time-ordered playlist button with play all button (#96)
* feat(YouTube): Add `Play All` Overlay buttons * Fix * Reorder * fix compile error * chore: clarify description * chore: add dependency * chore: use lowercase letters, same as other buttons --------- Co-authored-by: inotia00 <[email protected]>
1 parent 198c95e commit 9982245

File tree

22 files changed

+58
-12
lines changed

22 files changed

+58
-12
lines changed

src/main/kotlin/app/revanced/patches/youtube/layout/visual/VisualPreferencesIconsPatch.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,8 @@ object VisualPreferencesIconsPatch : BaseResourcePatch(
304304
"revanced_overlay_button_copy_video_url_timestamp",
305305
"revanced_overlay_button_mute_volume",
306306
"revanced_overlay_button_external_downloader",
307+
"revanced_overlay_button_play_all",
307308
"revanced_overlay_button_speed_dialog",
308-
"revanced_overlay_button_time_ordered_playlist",
309309
"revanced_overlay_button_whitelist",
310310
"revanced_preference_screen_account_menu",
311311
"revanced_preference_screen_action_buttons",

src/main/kotlin/app/revanced/patches/youtube/player/overlaybuttons/OverlayButtonsPatch.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ object OverlayButtonsPatch : BaseResourcePatch(
109109
"CopyVideoUrlTimestamp;",
110110
"MuteVolume;",
111111
"ExternalDownload;",
112+
"PlayAll;",
112113
"SpeedDialog;",
113-
"TimeOrderedPlaylist;",
114114
"Whitelists;"
115115
).forEach { className ->
116116
PlayerControlsPatch.hookBottomControlButton("$OVERLAY_BUTTONS_PATH/$className")
@@ -145,13 +145,13 @@ object OverlayButtonsPatch : BaseResourcePatch(
145145
"quantum_ic_fullscreen_exit_white_24.png",
146146
"quantum_ic_fullscreen_grey600_24.png",
147147
"quantum_ic_fullscreen_white_24.png",
148-
"revanced_time_ordered_playlist_button.png",
149148
"revanced_copy_button.png",
150149
"revanced_copy_timestamp_button.png",
151150
"revanced_download_button.png",
151+
"revanced_play_all_button.png",
152+
"revanced_speed_button.png",
152153
"revanced_volume_muted_button.png",
153154
"revanced_volume_unmuted_button.png",
154-
"revanced_speed_button.png",
155155
"revanced_whitelist_button.png",
156156
"yt_fill_arrow_repeat_white_24.png",
157157
"yt_outline_arrow_repeat_1_white_24.png",

src/main/resources/youtube/overlaybuttons/shared/host/layout/youtube_controls_bottom_ui_container.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/copy_video_url_timestamp_button" style="@style/YouTubePlayerButton"/>
55
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/copy_video_url_timestamp_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_copy_timestamp_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/mute_volume_button" style="@style/YouTubePlayerButton"/>
66
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/mute_volume_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_mute_volume_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/whitelist_button" style="@style/YouTubePlayerButton"/>
7-
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/whitelist_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_whitelist_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/time_ordered_playlist_button" style="@style/YouTubePlayerButton"/>
8-
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/time_ordered_playlist_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_time_ordered_playlist_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/always_repeat_button" style="@style/YouTubePlayerButton"/>
7+
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/whitelist_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_whitelist_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/play_all_button" style="@style/YouTubePlayerButton"/>
8+
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/play_all_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_play_all_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/always_repeat_button" style="@style/YouTubePlayerButton"/>
99
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/always_repeat_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_repeat_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/external_download_button" style="@style/YouTubePlayerButton"/>
1010
<com.google.android.libraries.youtube.common.ui.TouchImageView android:id="@+id/external_download_button" android:paddingLeft="0.0dip" android:paddingTop="22.0dip" android:paddingRight="0.0dip" android:paddingBottom="22.0dip" android:longClickable="false" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/revanced_download_button" android:scaleType="center" yt:layout_constraintBottom_toTopOf="@+id/quick_actions_container" yt:layout_constraintRight_toLeftOf="@+id/fullscreen_button" style="@style/YouTubePlayerButton"/>
1111
</android.support.constraint.ConstraintLayout>

src/main/resources/youtube/settings/host/values/arrays.xml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,34 @@
135135
<string-array name="revanced_external_downloader_playlist_website">
136136
<item>https://github.com/deniscerri/ytdlnis/releases/latest</item>
137137
</string-array>
138+
<string-array name="revanced_overlay_button_play_all_type_entries">
139+
<item>@string/revanced_overlay_button_play_all_type_entry_1</item>
140+
<item>@string/revanced_overlay_button_play_all_type_entry_2</item>
141+
<item>@string/revanced_overlay_button_play_all_type_entry_3</item>
142+
<item>@string/revanced_overlay_button_play_all_type_entry_4</item>
143+
<item>@string/revanced_overlay_button_play_all_type_entry_5</item>
144+
<item>@string/revanced_overlay_button_play_all_type_entry_6</item>
145+
<item>@string/revanced_overlay_button_play_all_type_entry_7</item>
146+
<item>@string/revanced_overlay_button_play_all_type_entry_8</item>
147+
<item>@string/revanced_overlay_button_play_all_type_entry_9</item>
148+
<item>@string/revanced_overlay_button_play_all_type_entry_10</item>
149+
<item>@string/revanced_overlay_button_play_all_type_entry_11</item>
150+
<item>@string/revanced_overlay_button_play_all_type_entry_12</item>
151+
</string-array>
152+
<string-array name="revanced_overlay_button_play_all_type_entry_values">
153+
<item>ALL_CONTENTS_WITH_TIME_DESCENDING</item>
154+
<item>ALL_CONTENTS_WITH_POPULAR_DESCENDING</item>
155+
<item>VIDEOS_ONLY_WITH_TIME_DESCENDING</item>
156+
<item>VIDEOS_ONLY_WITH_POPULAR_DESCENDING</item>
157+
<item>SHORTS_ONLY_WITH_TIME_DESCENDING</item>
158+
<item>SHORTS_ONLY_WITH_POPULAR_DESCENDING</item>
159+
<item>LIVESTREAMS_ONLY_WITH_TIME_DESCENDING</item>
160+
<item>LIVESTREAMS_ONLY_WITH_POPULAR_DESCENDING</item>
161+
<item>ALL_MEMBERSHIPS_CONTENTS</item>
162+
<item>MEMBERSHIPS_VIDEOS_ONLY</item>
163+
<item>MEMBERSHIPS_SHORTS_ONLY</item>
164+
<item>MEMBERSHIPS_LIVESTREAMS_ONLY</item>
165+
</string-array>
138166
<string-array name="revanced_miniplayer_type_19_15_entries">
139167
<item>@string/revanced_miniplayer_type_entry_1</item>
140168
<item>@string/revanced_miniplayer_type_entry_2</item>

src/main/resources/youtube/settings/host/values/strings.xml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,9 +1031,26 @@ Tap and hold to reset playback speed to 1.0x. Tap and hold again to reset back t
10311031
<string name="revanced_overlay_button_whitelist_summary">"Tap to open whitelist dialog.
10321032
Tap and hold to open whitelist setting dialog.</string>
10331033

1034-
<string name="revanced_overlay_button_time_ordered_playlist_title">Show time-ordered playlist button</string>
1035-
<string name="revanced_overlay_button_time_ordered_playlist_summary">"Tap to generate a playlist of all videos from channel from oldest to newest.
1036-
Tap and hold to undo."</string>
1034+
<string name="revanced_overlay_button_play_all_title">Show play all button</string>
1035+
<string name="revanced_overlay_button_play_all_summary">"Tap to generate a playlist of all videos from channel.
1036+
Tap and hold to undo.
1037+
1038+
Info:
1039+
• May not work on livestreams."</string>
1040+
<string name="revanced_overlay_button_play_all_type_title">Generate playlist mode</string>
1041+
<string name="revanced_overlay_button_play_all_type_entry_1">All contents (Sort by time)</string>
1042+
<string name="revanced_overlay_button_play_all_type_entry_2">All contents (Sort by popular)</string>
1043+
<string name="revanced_overlay_button_play_all_type_entry_3">Videos only (Sort by time)</string>
1044+
<string name="revanced_overlay_button_play_all_type_entry_4">Videos only (Sort by popular)</string>
1045+
<string name="revanced_overlay_button_play_all_type_entry_5">Shorts only (Sort by time)</string>
1046+
<string name="revanced_overlay_button_play_all_type_entry_6">Shorts only (Sort by popular)</string>
1047+
<string name="revanced_overlay_button_play_all_type_entry_7">Streamed videos only (Sort by time)</string>
1048+
<string name="revanced_overlay_button_play_all_type_entry_8">Streamed videos only (Sort by popular)</string>
1049+
<string name="revanced_overlay_button_play_all_type_entry_9">All Members only contents</string>
1050+
<string name="revanced_overlay_button_play_all_type_entry_10">Members only videos</string>
1051+
<string name="revanced_overlay_button_play_all_type_entry_11">Members only shorts</string>
1052+
<string name="revanced_overlay_button_play_all_type_entry_12">Members only livestreams</string>
1053+
<string name="revanced_overlay_button_play_all_not_available_toast">Unable to generate playlist due to channel id mismatch.</string>
10371054

10381055
<string name="revanced_whitelist_settings_title">Channel whitelist</string>
10391056
<string name="revanced_whitelist_settings_summary">Check or remove the list of channels added to the whitelist.</string>

src/main/resources/youtube/settings/xml/revanced_prefs.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -427,11 +427,12 @@
427427
<SwitchPreference android:title="@string/revanced_overlay_button_copy_video_url_title" android:key="revanced_overlay_button_copy_video_url" android:summary="@string/revanced_overlay_button_copy_video_url_summary" />
428428
<SwitchPreference android:title="@string/revanced_overlay_button_copy_video_url_timestamp_title" android:key="revanced_overlay_button_copy_video_url_timestamp" android:summary="@string/revanced_overlay_button_copy_video_url_timestamp_summary" />
429429
<SwitchPreference android:title="@string/revanced_overlay_button_mute_volume_title" android:key="revanced_overlay_button_mute_volume" android:summary="@string/revanced_overlay_button_mute_volume_summary" />
430-
<SwitchPreference android:title="@string/revanced_overlay_button_external_downloader_title" android:key="revanced_overlay_button_external_downloader" android:summary="@string/revanced_overlay_button_external_downloader_summary" />
431430
<SwitchPreference android:title="@string/revanced_overlay_button_speed_dialog_title" android:key="revanced_overlay_button_speed_dialog" android:summary="@string/revanced_overlay_button_speed_dialog_summary" />
432-
<SwitchPreference android:title="@string/revanced_overlay_button_time_ordered_playlist_title" android:key="revanced_overlay_button_time_ordered_playlist" android:summary="@string/revanced_overlay_button_time_ordered_playlist_summary" />
433-
<SwitchPreference android:title="@string/revanced_overlay_button_whitelist_title" android:key="revanced_overlay_button_whitelist" android:summary="@string/revanced_overlay_button_whitelist_summary" />
431+
<SwitchPreference android:title="@string/revanced_overlay_button_external_downloader_title" android:key="revanced_overlay_button_external_downloader" android:summary="@string/revanced_overlay_button_external_downloader_summary" />
434432
<app.revanced.integrations.youtube.settings.preference.ExternalDownloaderVideoPreference android:title="@string/revanced_external_downloader_package_name_video_title" android:key="revanced_external_downloader_package_name_video" android:summary="@string/revanced_external_downloader_package_name_video_summary" />
433+
<SwitchPreference android:title="@string/revanced_overlay_button_play_all_title" android:key="revanced_overlay_button_play_all" android:summary="@string/revanced_overlay_button_play_all_summary" />
434+
<ListPreference android:entries="@array/revanced_overlay_button_play_all_type_entries" android:title="@string/revanced_overlay_button_play_all_type_title" android:key="revanced_overlay_button_play_all_type" android:entryValues="@array/revanced_overlay_button_play_all_type_entry_values" android:dependency="revanced_overlay_button_play_all" />
435+
<SwitchPreference android:title="@string/revanced_overlay_button_whitelist_title" android:key="revanced_overlay_button_whitelist" android:summary="@string/revanced_overlay_button_whitelist_summary" />
435436
<app.revanced.integrations.youtube.settings.preference.WhitelistedChannelsPreference android:title="@string/revanced_whitelist_settings_title" android:key="revanced_whitelist_settings" android:summary="@string/revanced_whitelist_settings_summary" />SETTINGS: OVERLAY_BUTTONS -->
436437

437438
<!-- PREFERENCE_SCREENS: PLAYER_BUTTONS

0 commit comments

Comments
 (0)