From 5f842748088f3c4336518da614525653c0cbe1c3 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Thu, 29 Jun 2023 18:04:17 +0900 Subject: [PATCH] refactor(music): renamed some patches description --- .../patch/MusicAdsPatch.kt} | 10 +++---- .../patch/DisableAutoCaptionsPatch.kt | 2 +- .../fingerprints/TabLayoutFingerprint.kt | 0 .../patch/BlackNavigationBarPatch.kt} | 10 +++---- .../patch/ShareButtonHookPatch.kt | 5 ++-- ...MusicSettingsPatch.kt => SettingsPatch.kt} | 15 ++++++++++ .../LegacyAdsFingerprint.kt} | 4 +-- .../MainstreamAdsFingerprint.kt} | 4 +-- .../AbstractAdsPatch.kt} | 30 +++++++++---------- .../youtube/ads/video/patch/VideoAdsPatch.kt | 4 +-- .../fingerprints/LithoFilterFingerprint.kt | 10 ++++--- .../music/settings/host/values/strings.xml | 22 +++++++------- .../music/settings/values-v21/strings.xml | 5 ++++ 13 files changed, 72 insertions(+), 49 deletions(-) rename src/main/kotlin/app/revanced/patches/music/ads/{video/patch/VideoAdsPatch.kt => music/patch/MusicAdsPatch.kt} (82%) rename src/main/kotlin/app/revanced/patches/music/layout/{blacknavbar => blacknavigationbar}/fingerprints/TabLayoutFingerprint.kt (100%) rename src/main/kotlin/app/revanced/patches/music/layout/{blacknavbar/patch/BlackNavbarPatch.kt => blacknavigationbar/patch/BlackNavigationBarPatch.kt} (90%) rename src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/{MusicSettingsPatch.kt => SettingsPatch.kt} (91%) rename src/main/kotlin/app/revanced/patches/shared/fingerprints/{videoads/LegacyVideoAdsFingerprint.kt => ads/LegacyAdsFingerprint.kt} (87%) rename src/main/kotlin/app/revanced/patches/shared/fingerprints/{videoads/MainstreamVideoAdsFingerprint.kt => ads/MainstreamAdsFingerprint.kt} (57%) rename src/main/kotlin/app/revanced/patches/shared/patch/{videoads/AbstractVideoAdsPatch.kt => ads/AbstractAdsPatch.kt} (64%) create mode 100644 src/main/resources/music/settings/values-v21/strings.xml diff --git a/src/main/kotlin/app/revanced/patches/music/ads/video/patch/VideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/music/ads/music/patch/MusicAdsPatch.kt similarity index 82% rename from src/main/kotlin/app/revanced/patches/music/ads/video/patch/VideoAdsPatch.kt rename to src/main/kotlin/app/revanced/patches/music/ads/music/patch/MusicAdsPatch.kt index aa1367d8b..5d9aaf134 100644 --- a/src/main/kotlin/app/revanced/patches/music/ads/video/patch/VideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/ads/music/patch/MusicAdsPatch.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.music.ads.video.patch +package app.revanced.patches.music.ads.music.patch import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name @@ -11,13 +11,13 @@ import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.music.utils.annotations.MusicCompatibility import app.revanced.patches.music.utils.litho.patch.LithoFilterPatch import app.revanced.patches.music.utils.settings.resource.patch.SettingsPatch -import app.revanced.patches.shared.patch.videoads.AbstractVideoAdsPatch +import app.revanced.patches.shared.patch.ads.AbstractAdsPatch import app.revanced.util.enum.CategoryType import app.revanced.util.integrations.Constants.MUSIC_ADS_PATH @Patch -@Name("hide-video-ads") -@Description("Removes ads in the music video.") +@Name("hide-music-ads") +@Description("Hides ads before playing a music.") @DependsOn( [ LithoFilterPatch::class, @@ -26,7 +26,7 @@ import app.revanced.util.integrations.Constants.MUSIC_ADS_PATH ) @MusicCompatibility @Version("0.0.1") -class VideoAdsPatch : AbstractVideoAdsPatch( +class MusicAdsPatch : AbstractAdsPatch( "$MUSIC_ADS_PATH/HideMusicAdsPatch;->hideMusicAds()Z" ) { override fun execute(context: BytecodeContext): PatchResult { diff --git a/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt index b0832e777..8062fd53b 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/autocaptions/patch/DisableAutoCaptionsPatch.kt @@ -21,7 +21,7 @@ import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Patch @Name("disable-auto-captions") -@Description("Disable forced captions from automatically enabling in video player.") +@Description("Disables forced auto captions.") @DependsOn([SettingsPatch::class]) @MusicCompatibility @Version("0.0.1") diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavigationbar/fingerprints/TabLayoutFingerprint.kt similarity index 100% rename from src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt rename to src/main/kotlin/app/revanced/patches/music/layout/blacknavigationbar/fingerprints/TabLayoutFingerprint.kt diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavigationbar/patch/BlackNavigationBarPatch.kt similarity index 90% rename from src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt rename to src/main/kotlin/app/revanced/patches/music/layout/blacknavigationbar/patch/BlackNavigationBarPatch.kt index 1f3ddec60..af7fb28b0 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/blacknavigationbar/patch/BlackNavigationBarPatch.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.music.layout.blacknavbar.patch +package app.revanced.patches.music.layout.blacknavigationbar.patch import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Description @@ -21,7 +21,7 @@ import app.revanced.util.integrations.Constants.MUSIC_LAYOUT import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Patch -@Name("enable-black-navbar") +@Name("enable-black-navigation-bar") @Description("Sets the navigation bar color to black.") @DependsOn( [ @@ -31,7 +31,7 @@ import org.jf.dexlib2.iface.instruction.OneRegisterInstruction ) @MusicCompatibility @Version("0.0.1") -class BlackNavbarPatch : BytecodePatch( +class BlackNavigationBarPatch : BytecodePatch( listOf(TabLayoutFingerprint) ) { override fun execute(context: BytecodeContext): PatchResult { @@ -43,7 +43,7 @@ class BlackNavbarPatch : BytecodePatch( addInstructions( targetIndex + 1, """ - invoke-static {}, $MUSIC_LAYOUT->enableBlackNavbar()I + invoke-static {}, $MUSIC_LAYOUT->enableBlackNavigationBar()I move-result v$targetRegister """ ) @@ -52,7 +52,7 @@ class BlackNavbarPatch : BytecodePatch( SettingsPatch.addMusicPreference( CategoryType.LAYOUT, - "revanced_enable_black_navbar", + "revanced_enable_black_navigation_bar", "true" ) diff --git a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt index 2088ead4b..fa1c8baeb 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/sharebuttonhook/patch/ShareButtonHookPatch.kt @@ -52,9 +52,10 @@ class ShareButtonHookPatch : BytecodePatch( addInstructionsWithLabels( targetIndex, """ - invoke-static {}, $INTEGRATIONS_CLASS_DESCRIPTOR->overrideSharePanel()Z + invoke-static {}, $INTEGRATIONS_CLASS_DESCRIPTOR->shouldHookShareButton()Z move-result p1 if-eqz p1, :default + invoke-static {}, $INTEGRATIONS_CLASS_DESCRIPTOR->startDownloadActivity()V return-void """, ExternalLabel("default", getInstruction(targetIndex)) ) @@ -87,7 +88,7 @@ class ShareButtonHookPatch : BytecodePatch( ) SettingsPatch.addMusicPreferenceWithIntent( CategoryType.MISC, - "revanced_default_downloader", + "revanced_external_downloader_package_name", "revanced_hook_share_button" ) diff --git a/src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/MusicSettingsPatch.kt b/src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/SettingsPatch.kt similarity index 91% rename from src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/MusicSettingsPatch.kt rename to src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/SettingsPatch.kt index 2591a31ba..d17aa4300 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/MusicSettingsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/settings/resource/patch/SettingsPatch.kt @@ -21,6 +21,7 @@ import app.revanced.util.resources.MusicResourceHelper.addMusicPreferenceWithInt import app.revanced.util.resources.MusicResourceHelper.addReVancedMusicPreference import app.revanced.util.resources.MusicResourceHelper.sortMusicPreferenceCategory import app.revanced.util.resources.ResourceUtils +import app.revanced.util.resources.ResourceUtils.copyResources import org.w3c.dom.Element import java.io.File import java.nio.file.Paths @@ -40,6 +41,20 @@ class SettingsPatch : AbstractSettingsResourcePatch( super.execute(context) contexts = context + /** + * create directory for the untranslated language resources + */ + context["res/values-v21"].mkdirs() + + arrayOf( + ResourceUtils.ResourceGroup( + "values-v21", + "strings.xml" + ) + ).forEach { resourceGroup -> + context.copyResources("music/settings", resourceGroup) + } + /** * Copy colors */ diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/LegacyVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/LegacyAdsFingerprint.kt similarity index 87% rename from src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/LegacyVideoAdsFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/LegacyAdsFingerprint.kt index 745f616b1..7c491ab94 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/LegacyVideoAdsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/LegacyAdsFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.fingerprints.videoads +package app.revanced.patches.shared.fingerprints.ads import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint @@ -6,7 +6,7 @@ import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode import org.jf.dexlib2.iface.instruction.NarrowLiteralInstruction -object LegacyVideoAdsFingerprint : MethodFingerprint( +object LegacyAdsFingerprint : MethodFingerprint( returnType = "V", accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, parameters = listOf(), diff --git a/src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/MainstreamVideoAdsFingerprint.kt b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/MainstreamAdsFingerprint.kt similarity index 57% rename from src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/MainstreamVideoAdsFingerprint.kt rename to src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/MainstreamAdsFingerprint.kt index 357286815..8ba87ae8b 100644 --- a/src/main/kotlin/app/revanced/patches/shared/fingerprints/videoads/MainstreamVideoAdsFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/shared/fingerprints/ads/MainstreamAdsFingerprint.kt @@ -1,8 +1,8 @@ -package app.revanced.patches.shared.fingerprints.videoads +package app.revanced.patches.shared.fingerprints.ads import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -object MainstreamVideoAdsFingerprint : MethodFingerprint( +object MainstreamAdsFingerprint : MethodFingerprint( returnType = "V", strings = listOf("markFillRequested", "requestEnterSlot") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/patch/videoads/AbstractVideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/shared/patch/ads/AbstractAdsPatch.kt similarity index 64% rename from src/main/kotlin/app/revanced/patches/shared/patch/videoads/AbstractVideoAdsPatch.kt rename to src/main/kotlin/app/revanced/patches/shared/patch/ads/AbstractAdsPatch.kt index 2f30763c2..bc81cd3af 100644 --- a/src/main/kotlin/app/revanced/patches/shared/patch/videoads/AbstractVideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/shared/patch/ads/AbstractAdsPatch.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.patch.videoads +package app.revanced.patches.shared.patch.ads import app.revanced.extensions.toErrorResult import app.revanced.patcher.annotation.Name @@ -13,42 +13,42 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.shared.fingerprints.videoads.LegacyVideoAdsFingerprint -import app.revanced.patches.shared.fingerprints.videoads.MainstreamVideoAdsFingerprint +import app.revanced.patches.shared.fingerprints.ads.LegacyAdsFingerprint +import app.revanced.patches.shared.fingerprints.ads.MainstreamAdsFingerprint -@Name("abstract-video-ads-patch") +@Name("abstract-ads-patch") @Version("0.0.1") -abstract class AbstractVideoAdsPatch( +abstract class AbstractAdsPatch( private val descriptor: String ) : BytecodePatch( listOf( - LegacyVideoAdsFingerprint, - MainstreamVideoAdsFingerprint + LegacyAdsFingerprint, + MainstreamAdsFingerprint ) ) { override fun execute(context: BytecodeContext): PatchResult { - LegacyVideoAdsFingerprint.result?.let { + LegacyAdsFingerprint.result?.let { (context.toMethodWalker(it.method) .nextMethod(13, true) .getMethod() as MutableMethod).apply { addInstructions( 0, """ - invoke-static {}, $descriptor - move-result v1 - """ + invoke-static {}, $descriptor + move-result v1 + """ ) } - } ?: return LegacyVideoAdsFingerprint.toErrorResult() + } ?: return LegacyAdsFingerprint.toErrorResult() - MainstreamVideoAdsFingerprint.result?.let { + MainstreamAdsFingerprint.result?.let { it.mutableMethod.apply { addInstructionsWithLabels( 0, """ invoke-static {}, $descriptor move-result v0 - if-nez v0, :show_video_ads + if-nez v0, :show_ads return-void - """, ExternalLabel("show_video_ads", getInstruction(0)) + """, ExternalLabel("show_ads", getInstruction(0)) ) } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/ads/video/patch/VideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ads/video/patch/VideoAdsPatch.kt index cb918ad83..05c79dac7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ads/video/patch/VideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ads/video/patch/VideoAdsPatch.kt @@ -8,7 +8,7 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch -import app.revanced.patches.shared.patch.videoads.AbstractVideoAdsPatch +import app.revanced.patches.shared.patch.ads.AbstractAdsPatch import app.revanced.patches.youtube.utils.annotations.YouTubeCompatibility import app.revanced.patches.youtube.utils.settings.resource.patch.SettingsPatch import app.revanced.util.integrations.Constants.ADS_PATH @@ -19,7 +19,7 @@ import app.revanced.util.integrations.Constants.ADS_PATH @DependsOn([SettingsPatch::class]) @YouTubeCompatibility @Version("0.0.1") -class VideoAdsPatch : AbstractVideoAdsPatch( +class VideoAdsPatch : AbstractAdsPatch( "$ADS_PATH/HideVideoAdsPatch;->hideVideoAds()Z" ) { override fun execute(context: BytecodeContext): PatchResult { diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint.kt index 3047e1da5..1457591cf 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/litho/fingerprints/LithoFilterFingerprint.kt @@ -1,11 +1,13 @@ package app.revanced.patches.youtube.utils.litho.fingerprints +import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import org.jf.dexlib2.AccessFlags object LithoFilterFingerprint : MethodFingerprint( - customFingerprint = custom@{ method, classDef -> - if (method.name != "") return@custom false - - classDef.type.endsWith("LithoFilterPatch;") + returnType = "V", + accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC or AccessFlags.CONSTRUCTOR, + customFingerprint = { methodDef, _ -> + methodDef.definingClass == "Lapp/revanced/integrations/patches/ads/LithoFilterPatch;" } ) \ No newline at end of file diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml index 05ace3f16..7ae639599 100644 --- a/src/main/resources/music/settings/host/values/strings.xml +++ b/src/main/resources/music/settings/host/values/strings.xml @@ -3,14 +3,12 @@ Ads Layout Miscellaneous - Package name of the downloader app such as NewPipe\'s or Seal\'s. - Package name of downloader - Disable forced captions from automatically enabling in video player. - Disable auto captions + Disables forced auto captions. + Disable forced auto captions %s is not installed. Please install it. - Sets the navigation bar color to black. - Enable black navbar - Matches the fullscreen player color with the minimized one. + Sets the navigation bar color to black. + Enable black navigation bar + Matches the color of the mini player and the fullscreen player. Enable color match player Enable compact dialog on phone. Enable compact dialog @@ -24,8 +22,8 @@ Enable landscape mode Enable new player layouts. (YT Music v5.47.51+) Enable new layout - Return the miniplayers to old style. (YT Music v5.55.53+) - Enable old style miniplayer + Return the mini players to old style. (YT Music v5.55.53+) + Enable old style mini player Enable 250/251 opus codec when playing audio. Enable opus codec Save the video quality value whenever you change the video quality. @@ -34,7 +32,9 @@ Enable sleep timer Adds a grey tint to the video player to reduce eye strain. Enable zen mode - ReVanced Extended + %s is not installed. Please install it. + Package name of your installed external downloader app, such as NewPipe or Seal + External downloader package name Hides the button shelf from homepage and explorer. Hide button shelf Hides the carousel shelf from homepage and explorer. @@ -43,7 +43,7 @@ Hide cast button Hides the music category bar at the top of the homepage. Hide category bar - Hide ads before playing a track. + Hides ads before playing a music. Hide music ads Hide labels in navigation bar. Hide navigation bar labels diff --git a/src/main/resources/music/settings/values-v21/strings.xml b/src/main/resources/music/settings/values-v21/strings.xml new file mode 100644 index 000000000..30340fbe4 --- /dev/null +++ b/src/main/resources/music/settings/values-v21/strings.xml @@ -0,0 +1,5 @@ + + + + ReVanced Extended +