From 38e7711287773ad7f7c6226af9a745afdc0e583a Mon Sep 17 00:00:00 2001 From: inotia00 Date: Tue, 20 Jun 2023 17:17:43 +0900 Subject: [PATCH] feat(youtube): add `add-splash-animation` patch --- .../patch/AddSplashAnimationPatch.kt | 66 +++++++++++++++++++ .../drawable/$$avd_anim__1__0.xml | 3 + .../drawable/$$avd_anim__1__1.xml | 3 + .../drawable/$$avd_anim__2__0.xml | 3 + .../drawable/$$avd_anim__2__1.xml | 3 + .../drawable/$$avd_anim__3__0.xml | 3 + .../drawable/$$avd_anim__3__1.xml | 3 + .../splashscreen/drawable/$avd_anim__0.xml | 15 +++++ .../splashscreen/drawable/$avd_anim__1.xml | 6 ++ .../splashscreen/drawable/$avd_anim__2.xml | 6 ++ .../splashscreen/drawable/$avd_anim__3.xml | 6 ++ .../splashscreen/drawable/$avd_anim__4.xml | 5 ++ .../splashscreen/drawable/avd_anim.xml | 8 +++ .../splashscreen/values-v31/styles.xml | 7 ++ 14 files changed, 137 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/patch/AddSplashAnimationPatch.kt create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__0.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__1.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__0.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__1.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__0.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__1.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$avd_anim__0.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$avd_anim__1.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$avd_anim__2.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$avd_anim__3.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/$avd_anim__4.xml create mode 100644 src/main/resources/youtube/splashscreen/drawable/avd_anim.xml create mode 100644 src/main/resources/youtube/splashscreen/values-v31/styles.xml diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/patch/AddSplashAnimationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/patch/AddSplashAnimationPatch.kt new file mode 100644 index 000000000..ad36b482d --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/splashanimation/patch/AddSplashAnimationPatch.kt @@ -0,0 +1,66 @@ +package app.revanced.patches.youtube.layout.splashanimation.patch + +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.annotation.Version +import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patches.shared.annotation.YouTubeCompatibility +import app.revanced.util.resources.ResourceUtils +import app.revanced.util.resources.ResourceUtils.copyResources +import app.revanced.util.resources.ResourceUtils.copyXmlNode +import kotlin.io.path.exists + +@Patch +@Name("add-splash-animation") +@Description("Adds splash animation, which was removed in YT v18.19.36+. (cannot be used with 'custom-branding-icon' patch)") +@YouTubeCompatibility +@Version("0.0.1") +class AddSplashAnimationPatch : ResourcePatch { + override fun execute(context: ResourceContext): PatchResult { + + val resDirectory = context["res"] + val targetXml = resDirectory.resolve("drawable").resolve("avd_anim.xml").toPath() + + /** + * avd_anim.xml removed from YouTube v18.19.36+ + */ + if (!targetXml.exists()) { + + /** + * merge Splash animation drawables to main drawables + * extract from YouTube v18.18.39 + */ + arrayOf( + ResourceUtils.ResourceGroup( + "drawable", + "\$\$avd_anim__1__0.xml", + "\$\$avd_anim__1__1.xml", + "\$\$avd_anim__2__0.xml", + "\$\$avd_anim__2__1.xml", + "\$\$avd_anim__3__0.xml", + "\$\$avd_anim__3__1.xml", + "\$avd_anim__0.xml", + "\$avd_anim__1.xml", + "\$avd_anim__2.xml", + "\$avd_anim__3.xml", + "\$avd_anim__4.xml", + "avd_anim.xml" + ) + ).forEach { resourceGroup -> + context.copyResources("youtube/splashscreen", resourceGroup) + } + + /** + * merge Splash animation styles to main styles + * extract from YouTube v18.18.39 + */ + context.copyXmlNode("youtube/splashscreen", "values-v31/styles.xml", "resources") + } + + return PatchResultSuccess() + } +} \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__0.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__0.xml new file mode 100644 index 000000000..35eb1ac38 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__0.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__1.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__1.xml new file mode 100644 index 000000000..35eb1ac38 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__1__1.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__0.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__0.xml new file mode 100644 index 000000000..d6566bd9f --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__0.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__1.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__1.xml new file mode 100644 index 000000000..d6566bd9f --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__2__1.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__0.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__0.xml new file mode 100644 index 000000000..d6566bd9f --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__0.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__1.xml b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__1.xml new file mode 100644 index 000000000..d6566bd9f --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$$avd_anim__3__1.xml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$avd_anim__0.xml b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__0.xml new file mode 100644 index 000000000..4d4459196 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__0.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$avd_anim__1.xml b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__1.xml new file mode 100644 index 000000000..6e99759e1 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__1.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$avd_anim__2.xml b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__2.xml new file mode 100644 index 000000000..15d9885e9 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__2.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$avd_anim__3.xml b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__3.xml new file mode 100644 index 000000000..8d6ff8a2e --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__3.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/$avd_anim__4.xml b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__4.xml new file mode 100644 index 000000000..d4e222862 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/$avd_anim__4.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/drawable/avd_anim.xml b/src/main/resources/youtube/splashscreen/drawable/avd_anim.xml new file mode 100644 index 000000000..49266b4f4 --- /dev/null +++ b/src/main/resources/youtube/splashscreen/drawable/avd_anim.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/resources/youtube/splashscreen/values-v31/styles.xml b/src/main/resources/youtube/splashscreen/values-v31/styles.xml new file mode 100644 index 000000000..c7462f74a --- /dev/null +++ b/src/main/resources/youtube/splashscreen/values-v31/styles.xml @@ -0,0 +1,7 @@ + + + +