From 1edc5f1c64da9925d183b4853aa036525f71b8ba Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Fri, 27 Oct 2023 10:16:34 +0900 Subject: [PATCH] fix(YouTube/SponsorBlock): changed to selectable through `options.json` --- .../utils/sponsorblock/SponsorBlockPatch.kt | 76 +++++++++---- .../default/drawable/ic_sb_adjust.xml | 10 ++ .../default/drawable/ic_sb_compare.xml | 10 ++ .../default/drawable/ic_sb_edit.xml | 10 ++ .../default/drawable/ic_sb_logo.xml | 13 +++ .../default/drawable/ic_sb_publish.xml | 10 ++ .../{ => default}/drawable/ic_sb_voting.xml | 0 .../default/layout/inline_sponsor_overlay.xml | 35 ++++++ .../default/layout/new_segment.xml | 107 ++++++++++++++++++ .../layout/skip_sponsor_button.xml | 0 .../{ => outline}/drawable/ic_sb_adjust.xml | 0 .../{ => outline}/drawable/ic_sb_backward.xml | 0 .../{ => outline}/drawable/ic_sb_compare.xml | 0 .../{ => outline}/drawable/ic_sb_edit.xml | 0 .../{ => outline}/drawable/ic_sb_forward.xml | 0 .../{ => outline}/drawable/ic_sb_logo.xml | 0 .../{ => outline}/drawable/ic_sb_publish.xml | 0 .../outline/drawable/ic_sb_voting.xml | 11 ++ .../{ => outline}/drawable/ns_bg.xml | 0 .../layout/inline_sponsor_overlay.xml | 0 .../{ => outline}/layout/new_segment.xml | 0 .../outline/layout/skip_sponsor_button.xml | 35 ++++++ .../host/layout/youtube_controls_layout.xml | 0 23 files changed, 292 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_adjust.xml create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_compare.xml create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_edit.xml create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_logo.xml create mode 100644 src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_publish.xml rename src/main/resources/youtube/sponsorblock/{ => default}/drawable/ic_sb_voting.xml (100%) create mode 100644 src/main/resources/youtube/sponsorblock/default/layout/inline_sponsor_overlay.xml create mode 100644 src/main/resources/youtube/sponsorblock/default/layout/new_segment.xml rename src/main/resources/youtube/sponsorblock/{ => default}/layout/skip_sponsor_button.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_adjust.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_backward.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_compare.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_edit.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_forward.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_logo.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ic_sb_publish.xml (100%) create mode 100644 src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_voting.xml rename src/main/resources/youtube/sponsorblock/{ => outline}/drawable/ns_bg.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/layout/inline_sponsor_overlay.xml (100%) rename src/main/resources/youtube/sponsorblock/{ => outline}/layout/new_segment.xml (100%) create mode 100644 src/main/resources/youtube/sponsorblock/outline/layout/skip_sponsor_button.xml rename src/main/resources/youtube/sponsorblock/{ => shared}/host/layout/youtube_controls_layout.xml (100%) diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt index 81a165c33..49c14ecd3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/sponsorblock/SponsorBlockPatch.kt @@ -4,6 +4,7 @@ import app.revanced.patcher.data.ResourceContext import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch +import app.revanced.patcher.patch.options.types.BooleanPatchOption.Companion.booleanPatchOption import app.revanced.patches.youtube.utils.settings.SettingsPatch import app.revanced.util.resources.ResourceUtils import app.revanced.util.resources.ResourceUtils.copyResources @@ -41,40 +42,65 @@ import app.revanced.util.resources.ResourceUtils.copyXmlNode ) @Suppress("unused") object SponsorBlockPatch : ResourcePatch() { + internal var OutlineIcon by booleanPatchOption( + key = "OutlineIcon", + default = false, + title = "Outline icons", + description = "Apply the outline icon" + ) override fun execute(context: ResourceContext) { /** * merge SponsorBlock drawables to main drawables */ - - arrayOf( - ResourceUtils.ResourceGroup( - "layout", - "inline_sponsor_overlay.xml", - "new_segment.xml", - "skip_sponsor_button.xml" - ), - ResourceUtils.ResourceGroup( - // required resource for back button, because when the base APK is used, this resource will not exist - "drawable", - "ic_sb_adjust.xml", - "ic_sb_compare.xml", - "ic_sb_edit.xml", - "ic_sb_logo.xml", - "ic_sb_publish.xml", - "ns_bg.xml", - "ic_sb_forward.xml", - "ic_sb_backward.xml", - "ic_sb_voting.xml" - ) - ).forEach { resourceGroup -> - context.copyResources("youtube/sponsorblock", resourceGroup) + if (OutlineIcon == true) { + arrayOf( + ResourceUtils.ResourceGroup( + "layout", + "inline_sponsor_overlay.xml", + "new_segment.xml", + "skip_sponsor_button.xml" + ), + ResourceUtils.ResourceGroup( + "drawable", + "ic_sb_adjust.xml", + "ic_sb_backward.xml", + "ic_sb_compare.xml", + "ic_sb_edit.xml", + "ic_sb_forward.xml", + "ic_sb_logo.xml", + "ic_sb_publish.xml", + "ic_sb_voting.xml", + "ns_bg.xml" + ) + ).forEach { resourceGroup -> + context.copyResources("youtube/sponsorblock/outline", resourceGroup) + } + } else { + arrayOf( + ResourceUtils.ResourceGroup( + "layout", + "inline_sponsor_overlay.xml", + "new_segment.xml", + "skip_sponsor_button.xml" + ), + ResourceUtils.ResourceGroup( + "drawable", + "ic_sb_adjust.xml", + "ic_sb_compare.xml", + "ic_sb_edit.xml", + "ic_sb_logo.xml", + "ic_sb_publish.xml", + "ic_sb_voting.xml" + ) + ).forEach { resourceGroup -> + context.copyResources("youtube/sponsorblock/default", resourceGroup) + } } /** * merge xml nodes from the host to their real xml files */ - // collect all host resources val hostingXmlResources = mapOf("layout" to arrayOf("youtube_controls_layout")) @@ -82,7 +108,7 @@ object SponsorBlockPatch : ResourcePatch() { hostingXmlResources.forEach { (path, resources) -> resources.forEach { resource -> val hostingResourceStream = - this.javaClass.classLoader.getResourceAsStream("youtube/sponsorblock/host/$path/$resource.xml")!! + this.javaClass.classLoader.getResourceAsStream("youtube/sponsorblock/shared/host/$path/$resource.xml")!! val targetXmlEditor = context.xmlEditor["res/$path/$resource.xml"] "RelativeLayout".copyXmlNode( diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_adjust.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_adjust.xml new file mode 100644 index 000000000..76a4b8bc9 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_adjust.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_compare.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_compare.xml new file mode 100644 index 000000000..04cc65e40 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_compare.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_edit.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_edit.xml new file mode 100644 index 000000000..e93574bd9 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_edit.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_logo.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_logo.xml new file mode 100644 index 000000000..b6f7d1443 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_logo.xml @@ -0,0 +1,13 @@ + + + + diff --git a/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_publish.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_publish.xml new file mode 100644 index 000000000..de4e58d3a --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_publish.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_voting.xml b/src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_voting.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_voting.xml rename to src/main/resources/youtube/sponsorblock/default/drawable/ic_sb_voting.xml diff --git a/src/main/resources/youtube/sponsorblock/default/layout/inline_sponsor_overlay.xml b/src/main/resources/youtube/sponsorblock/default/layout/inline_sponsor_overlay.xml new file mode 100644 index 000000000..2c0385549 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/layout/inline_sponsor_overlay.xml @@ -0,0 +1,35 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/sponsorblock/default/layout/new_segment.xml b/src/main/resources/youtube/sponsorblock/default/layout/new_segment.xml new file mode 100644 index 000000000..be5020be2 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/default/layout/new_segment.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/sponsorblock/layout/skip_sponsor_button.xml b/src/main/resources/youtube/sponsorblock/default/layout/skip_sponsor_button.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/layout/skip_sponsor_button.xml rename to src/main/resources/youtube/sponsorblock/default/layout/skip_sponsor_button.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_adjust.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_adjust.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_adjust.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_adjust.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_backward.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_backward.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_backward.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_backward.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_compare.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_compare.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_compare.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_compare.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_edit.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_edit.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_edit.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_edit.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_forward.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_forward.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_forward.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_forward.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_logo.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_logo.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_logo.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_logo.xml diff --git a/src/main/resources/youtube/sponsorblock/drawable/ic_sb_publish.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_publish.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ic_sb_publish.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_publish.xml diff --git a/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_voting.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_voting.xml new file mode 100644 index 000000000..a99bf1a15 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/outline/drawable/ic_sb_voting.xml @@ -0,0 +1,11 @@ + + + diff --git a/src/main/resources/youtube/sponsorblock/drawable/ns_bg.xml b/src/main/resources/youtube/sponsorblock/outline/drawable/ns_bg.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/drawable/ns_bg.xml rename to src/main/resources/youtube/sponsorblock/outline/drawable/ns_bg.xml diff --git a/src/main/resources/youtube/sponsorblock/layout/inline_sponsor_overlay.xml b/src/main/resources/youtube/sponsorblock/outline/layout/inline_sponsor_overlay.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/layout/inline_sponsor_overlay.xml rename to src/main/resources/youtube/sponsorblock/outline/layout/inline_sponsor_overlay.xml diff --git a/src/main/resources/youtube/sponsorblock/layout/new_segment.xml b/src/main/resources/youtube/sponsorblock/outline/layout/new_segment.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/layout/new_segment.xml rename to src/main/resources/youtube/sponsorblock/outline/layout/new_segment.xml diff --git a/src/main/resources/youtube/sponsorblock/outline/layout/skip_sponsor_button.xml b/src/main/resources/youtube/sponsorblock/outline/layout/skip_sponsor_button.xml new file mode 100644 index 000000000..185960ec9 --- /dev/null +++ b/src/main/resources/youtube/sponsorblock/outline/layout/skip_sponsor_button.xml @@ -0,0 +1,35 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/sponsorblock/host/layout/youtube_controls_layout.xml b/src/main/resources/youtube/sponsorblock/shared/host/layout/youtube_controls_layout.xml similarity index 100% rename from src/main/resources/youtube/sponsorblock/host/layout/youtube_controls_layout.xml rename to src/main/resources/youtube/sponsorblock/shared/host/layout/youtube_controls_layout.xml