diff --git a/src/main/kotlin/app/revanced/patches/music/ad/video/patch/MusicVideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/music/ad/video/patch/MusicVideoAdsPatch.kt index 72b07aa3c..41cf6ffa2 100644 --- a/src/main/kotlin/app/revanced/patches/music/ad/video/patch/MusicVideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/ad/video/patch/MusicVideoAdsPatch.kt @@ -13,6 +13,7 @@ import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility import app.revanced.shared.patches.videoads.GeneralVideoAdsPatch +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH @Patch @DependsOn( @@ -22,13 +23,13 @@ import app.revanced.shared.patches.videoads.GeneralVideoAdsPatch MusicSettingsPatch::class ] ) -@Name("music-video-ads") +@Name("hide-music-ads") @Description("Removes ads in the music player.") @YouTubeMusicCompatibility @Version("0.0.1") class MusicVideoAdsPatch : BytecodePatch() { override fun execute(context: BytecodeContext): PatchResult { - val INTEGRATIONS_CLASS_DESCRIPTOR = "Lapp/revanced/integrations/settings/MusicSettings;->getShowAds()Z" + val INTEGRATIONS_CLASS_DESCRIPTOR = "$MUSIC_SETTINGS_PATH->hideMusicAds()Z" GeneralVideoAdsPatch.injectLegacyAds(INTEGRATIONS_CLASS_DESCRIPTOR) diff --git a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt index dc49435b2..d6c2b7445 100644 --- a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/AllCodecsReferenceFingerprint.kt @@ -8,7 +8,10 @@ import org.jf.dexlib2.Opcode @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. object AllCodecsReferenceFingerprint : MethodFingerprint( - "J", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L"), listOf( + returnType = "J", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("L"), + opcodes = listOf( Opcode.INVOKE_STATIC, Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_STATIC, @@ -47,5 +50,6 @@ object AllCodecsReferenceFingerprint : MethodFingerprint( Opcode.INVOKE_SUPER, Opcode.MOVE_RESULT_WIDE, Opcode.RETURN_WIDE - ), listOf("itag") + ), + strings = listOf("itag") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt index 6dd81648d..2a8a1c931 100644 --- a/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/audio/codecs/fingerprints/CodecsLockFingerprint.kt @@ -1,20 +1,16 @@ package app.revanced.patches.music.audio.codecs.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("codec-lock-fingerprint") @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. -@YouTubeMusicCompatibility -@Version("0.0.1") object CodecsLockFingerprint : MethodFingerprint( - "L", AccessFlags.PUBLIC or AccessFlags.STATIC, opcodes = listOf( + returnType = "L", + access = AccessFlags.PUBLIC or AccessFlags.STATIC, + opcodes = listOf( Opcode.INVOKE_DIRECT, Opcode.INVOKE_VIRTUAL, Opcode.MOVE_RESULT, diff --git a/src/main/kotlin/app/revanced/patches/music/audio/codecs/patch/CodecsUnlockPatch.kt b/src/main/kotlin/app/revanced/patches/music/audio/codecs/patch/CodecsUnlockPatch.kt index 329f9a613..bc073515a 100644 --- a/src/main/kotlin/app/revanced/patches/music/audio/codecs/patch/CodecsUnlockPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/audio/codecs/patch/CodecsUnlockPatch.kt @@ -18,12 +18,13 @@ import app.revanced.patches.music.audio.codecs.fingerprints.CodecsLockFingerprin import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH import org.jf.dexlib2.Opcode @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) -@Name("codecs-unlock") -@Description("Adds more audio codec options. The new audio codecs usually result in better audio quality.") +@Name("enable-opus-codec") +@Description("Enable opus codec when playing audio.") @YouTubeMusicCompatibility @Version("0.0.1") class CodecsUnlockPatch : BytecodePatch( @@ -55,7 +56,7 @@ class CodecsUnlockPatch : BytecodePatch( codecsLockMethod.addInstructions( instructionIndex + 2, """ - invoke-static {}, Lapp/revanced/integrations/settings/MusicSettings;->getCodecsUnlock()Z + invoke-static {}, $MUSIC_SETTINGS_PATH->enableOpusCodec()Z move-result v7 if-eqz v7, :mp4a invoke-static {}, ${allCodecsMethod.definingClass}->${allCodecsMethod.name}()Ljava/util/Set; diff --git a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt index 29c90b666..f0b5eaaf6 100644 --- a/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/audio/exclusiveaudio/fingerprints/AudioOnlyEnablerFingerprint.kt @@ -6,7 +6,10 @@ import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode object AudioOnlyEnablerFingerprint: MethodFingerprint( - "Z", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf( + returnType = "Z", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf(), + opcodes = listOf( Opcode.IGET_OBJECT, Opcode.INVOKE_INTERFACE, Opcode.MOVE_RESULT_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/bytecode/patch/BlackNavbarPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/bytecode/patch/BlackNavbarPatch.kt deleted file mode 100644 index 794d56d96..000000000 --- a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/bytecode/patch/BlackNavbarPatch.kt +++ /dev/null @@ -1,84 +0,0 @@ -package app.revanced.patches.music.layout.blacknavbar.bytecode.patch - -import app.revanced.patcher.annotation.Description -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.extensions.instruction -import app.revanced.patcher.patch.annotations.DependsOn -import app.revanced.patcher.patch.annotations.Patch -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patcher.patch.PatchResult -import app.revanced.patcher.patch.PatchResultSuccess -import app.revanced.patcher.util.smali.ExternalLabel -import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch -import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch -import app.revanced.shared.annotation.YouTubeMusicCompatibility -import app.revanced.shared.extensions.findMutableMethodOf -import app.revanced.shared.patches.mapping.ResourceMappingPatch -import org.jf.dexlib2.iface.instruction.formats.Instruction11x -import org.jf.dexlib2.iface.instruction.formats.Instruction31i -import org.jf.dexlib2.Opcode - -@Patch -@DependsOn( - [ - MusicIntegrationsPatch::class, - MusicSettingsPatch::class, - ResourceMappingPatch::class - ] -) -@Name("black-navbar") -@Description("Sets the navigation bar color to black.") -@YouTubeMusicCompatibility -@Version("0.0.1") -class BlackNavbarPatch : BytecodePatch() { - - // list of resource names to get the id of - private val resourceIds = arrayOf( - "ytm_color_grey_12" - ).map { name -> - ResourceMappingPatch.resourceMappings.single { it.name == name }.id - } - - override fun execute(context: BytecodeContext): PatchResult { - context.classes.forEach { classDef -> - classDef.methods.forEach { method -> - with(method.implementation) { - this?.instructions?.forEachIndexed { index, instruction -> - when (instruction.opcode) { - Opcode.CONST -> { - when ((instruction as Instruction31i).wideLiteral) { - resourceIds[0] -> { // blacknavbar - val insertIndex = index - 1 - val insertIndex2 = index + 2 - val invokeInstruction = instructions.elementAt(insertIndex) - val invokeInstruction2 = instructions.elementAt(insertIndex2) - if (invokeInstruction.opcode != Opcode.MOVE_RESULT_OBJECT) return@forEachIndexed - - val register1 = (instructions.elementAt(index) as Instruction31i).registerA - val register2 = (invokeInstruction2 as Instruction11x).registerA - - val mutableMethod = context.proxy(classDef).mutableClass.findMutableMethodOf(method) - - mutableMethod.addInstructions( - index + 3, """ - invoke-static {}, Lapp/revanced/integrations/settings/MusicSettings;->getBlackNavbar()Z - move-result v$register1 - if-eqz v$register1, :default - const/high16 v$register2, -0x1000000 - """, listOf(ExternalLabel("default", mutableMethod.instruction(index + 3))) - ) - } - } - } - else -> return@forEachIndexed - } - } - } - } - } - return PatchResultSuccess() - } -} diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt new file mode 100644 index 000000000..b2ba68fe8 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/fingerprints/TabLayoutFingerprint.kt @@ -0,0 +1,26 @@ +package app.revanced.patches.music.layout.blacknavbar.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import app.revanced.patches.music.misc.resourceid.patch.SharedResourcdIdPatch +import org.jf.dexlib2.iface.instruction.WideLiteralInstruction +import org.jf.dexlib2.AccessFlags +import org.jf.dexlib2.Opcode + +object TabLayoutFingerprint : MethodFingerprint( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf(), + opcodes = listOf( + Opcode.CONST, + Opcode.INVOKE_STATIC, + Opcode.MOVE_RESULT + ), + customFingerprint = { methodDef -> + methodDef.implementation?.instructions?.any { instruction -> + instruction.opcode.ordinal == Opcode.CONST.ordinal && + (instruction as? WideLiteralInstruction)?.wideLiteral == SharedResourcdIdPatch.colorGreyLabelId + } == true + } +) + diff --git a/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt new file mode 100644 index 000000000..0db192fb7 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/layout/blacknavbar/patch/BlackNavbarPatch.kt @@ -0,0 +1,63 @@ +package app.revanced.patches.music.layout.blacknavbar.patch + +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.annotation.Version +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.music.layout.blacknavbar.fingerprints.TabLayoutFingerprint +import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch +import app.revanced.patches.music.misc.resourceid.patch.SharedResourcdIdPatch +import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch +import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH +import org.jf.dexlib2.iface.instruction.formats.Instruction11x +import org.jf.dexlib2.iface.instruction.formats.Instruction31i + +@Patch +@Name("enable-black-navbar") +@Description("Sets the navigation bar color to black.") +@DependsOn( + [ + MusicIntegrationsPatch::class, + MusicSettingsPatch::class, + SharedResourcdIdPatch::class + ] +) +@YouTubeMusicCompatibility +@Version("0.0.1") +class BlackNavbarPatch : BytecodePatch( + listOf( + TabLayoutFingerprint + ) +) { + override fun execute(context: BytecodeContext): PatchResult { + val result = TabLayoutFingerprint.result!! + val method = result.mutableMethod + + val startIndex = result.scanResult.patternScanResult!!.startIndex + val endIndex = result.scanResult.patternScanResult!!.endIndex + val insertIndex = endIndex + 1 + + val dummyRegister = (method.instruction(startIndex) as Instruction31i).registerA + val targetRegister = (method.instruction(endIndex) as Instruction11x).registerA + + method.addInstructions( + insertIndex, """ + invoke-static {}, $MUSIC_SETTINGS_PATH->enableBlackNavbar()Z + move-result v$dummyRegister + if-eqz v$dummyRegister, :default + const/high16 v$targetRegister, -0x1000000 + """, listOf(ExternalLabel("default", method.instruction(insertIndex))) + ) + + return PatchResultSuccess() + } +} diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt index bdd609cd4..2463acb25 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonFingerprint.kt @@ -1,15 +1,11 @@ package app.revanced.patches.music.layout.castbutton.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags -@Name("hide-castbutton-signature") -@YouTubeMusicCompatibility -@Version("0.0.1") object HideCastButtonFingerprint : MethodFingerprint ( - "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("I"), null ,null, null + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("I") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt index e08a0bc94..c6a56b872 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/fingerprints/HideCastButtonParentFingerprint.kt @@ -1,16 +1,11 @@ package app.revanced.patches.music.layout.castbutton.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags -@Name("hide-castbutton-parent-signature") -@YouTubeMusicCompatibility -@Version("0.0.1") object HideCastButtonParentFingerprint : MethodFingerprint ( - "Z", AccessFlags.PRIVATE or AccessFlags.FINAL, + returnType = "Z", + access = AccessFlags.PRIVATE or AccessFlags.FINAL, strings = listOf("MediaRouteButton") ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt index 2b61b7e8b..d2b0bbc88 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/castbutton/patch/HideCastButtonPatch.kt @@ -17,6 +17,7 @@ import app.revanced.patches.music.layout.castbutton.fingerprints.HideCastButtonP import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) @@ -36,7 +37,7 @@ class HideWatermarkPatch : BytecodePatch( result.mutableMethod.addInstructions( 0, """ - invoke-static {p1}, Lapp/revanced/integrations/settings/MusicSettings;->getCastButtonOverrideV2(I)I + invoke-static {p1}, $MUSIC_SETTINGS_PATH->hideCastButton(I)I move-result p1 """ ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt index c37477df8..7d9aed2b1 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/fingerprints/CompactHeaderConstructorFingerprint.kt @@ -1,18 +1,15 @@ package app.revanced.patches.music.layout.compactheader.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("compact-header-constructor-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object CompactHeaderConstructorFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, listOf("L", "L", "L", "L", "L"), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + parameters = listOf("L", "L", "L", "L", "L"), + opcodes = listOf( Opcode.INVOKE_DIRECT, Opcode.IPUT_OBJECT, Opcode.IPUT_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/patch/CompactHeaderPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/patch/CompactHeaderPatch.kt index 4435446ab..22662dcfe 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/compactheader/patch/CompactHeaderPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/compactheader/patch/CompactHeaderPatch.kt @@ -14,11 +14,12 @@ import app.revanced.patches.music.layout.compactheader.fingerprints.CompactHeade import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH import org.jf.dexlib2.builder.instruction.BuilderInstruction11x @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) -@Name("compact-header") +@Name("hide-compact-header") @Description("Hides the music category bar at the top of the homepage.") @YouTubeMusicCompatibility @Version("0.0.1") @@ -35,7 +36,7 @@ class CompactHeaderPatch : BytecodePatch( val register = (method.implementation!!.instructions[insertIndex - 1] as BuilderInstruction11x).registerA method.addInstructions( insertIndex, """ - invoke-static {}, Lapp/revanced/integrations/settings/MusicSettings;->getCompactHeader()I + invoke-static {}, $MUSIC_SETTINGS_PATH->hideCompactHeader()I move-result v2 invoke-virtual {v${register}, v2}, Landroid/view/View;->setVisibility(I)V """ diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt index 6a4f9b18c..c4cca455b 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayback/fingerprints/MinimizedPlaybackManagerFingerprint.kt @@ -1,21 +1,15 @@ package app.revanced.patches.music.layout.minimizedplayback.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("minimized-playback-manager-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object MinimizedPlaybackManagerFingerprint : MethodFingerprint( - "V", - AccessFlags.PUBLIC or AccessFlags.FINAL, - listOf("I", "L", "Z"), - listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("I", "L", "Z"), + opcodes = listOf( Opcode.IGET, Opcode.IF_NE, Opcode.IGET_OBJECT, @@ -27,6 +21,6 @@ object MinimizedPlaybackManagerFingerprint : MethodFingerprint( Opcode.SGET_OBJECT, Opcode.CONST_4, Opcode.IF_NE, - Opcode.IPUT_BOOLEAN, + Opcode.IPUT_BOOLEAN ) ) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt index 6e722940c..e765f5649 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/fingerprints/MinimizedPlayerFingerprint.kt @@ -1,18 +1,15 @@ package app.revanced.patches.music.layout.minimizedplayer.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("minimized-player-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object MinimizedPlayerFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "L"), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("L", "L"), + opcodes = listOf( Opcode.IGET_OBJECT, Opcode.IGET_OBJECT, Opcode.SGET_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt index add7e58af..ad1af1174 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/minimizedplayer/patch/MinimizedPlayerPatch.kt @@ -15,12 +15,13 @@ import app.revanced.patches.music.layout.minimizedplayer.fingerprints.MinimizedP import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH import org.jf.dexlib2.iface.instruction.Instruction import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) -@Name("minimized-player") +@Name("enable-force-minimized-player") @Description("Permanently keep player minimized even if another track is played.") @YouTubeMusicCompatibility @Version("0.0.1") @@ -39,7 +40,7 @@ class MinimizedPlayerPatch : BytecodePatch( method.addInstructions( index, """ - invoke-static {}, Lapp/revanced/integrations/settings/MusicSettings;->getEnforceMinimizedPlayer()Z + invoke-static {}, $MUSIC_SETTINGS_PATH->enableForceMinimizedPlayer()Z move-result v$register if-nez v$register, :enforce """, listOf(ExternalLabel("enforce", jumpInstruction)) diff --git a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorFingerprint.kt index b2e39bc54..126fcd630 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorFingerprint.kt @@ -1,18 +1,15 @@ package app.revanced.patches.music.layout.miniplayercolor.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("miniplayer-color-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object MiniplayerColorFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf("L", "J"), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("L", "J"), + opcodes = listOf( Opcode.INVOKE_DIRECT, Opcode.IPUT_OBJECT, Opcode.RETURN_VOID diff --git a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/patch/MiniplayerColorPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/patch/MiniplayerColorPatch.kt index 7cbea0be3..75786bc4e 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/patch/MiniplayerColorPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/patch/MiniplayerColorPatch.kt @@ -14,10 +14,11 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.music.layout.miniplayercolor.fingerprints.MiniplayerColorFingerprint -import app.revanced.patches.music.layout.miniplayercolor.fingerprints.MiniplayerColorParentFingerprint import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.fingerprints.MiniplayerColorParentFingerprint +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH import org.jf.dexlib2.iface.instruction.Instruction import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.reference.FieldReference @@ -25,7 +26,7 @@ import org.jf.dexlib2.iface.reference.MethodReference @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) -@Name("miniplayer-color") +@Name("enable-color-match-player") @Description("Matches the fullscreen player color with the minimized one.") @YouTubeMusicCompatibility @Version("0.0.1") @@ -72,7 +73,7 @@ class MiniplayerColorPatch : BytecodePatch( miniplayerColorMethod.addInstructions( insertIndex, """ - invoke-static {}, Lapp/revanced/integrations/settings/MusicSettings;->getMiniPlayerColor()Z + invoke-static {}, $MUSIC_SETTINGS_PATH->enableColorMatchPlayer()Z move-result v2 if-eqz v2, :off iget v0, p0, ${miniplayerColorResult.classDef.type}->${Reference_A_1.name}:${Reference_A_1.type} diff --git a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt index d6b9d74b6..231d258f5 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumFingerprint.kt @@ -1,18 +1,15 @@ package app.revanced.patches.music.layout.premium.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("hide-get-premium-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object HideGetPremiumFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf(), + opcodes = listOf( Opcode.IF_NEZ, Opcode.CONST_16, Opcode.GOTO, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt index 629bd6d62..e9718037d 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/premium/fingerprints/HideGetPremiumParentFingerprint.kt @@ -1,18 +1,15 @@ package app.revanced.patches.music.layout.premium.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("hide-get-premium-parent-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object HideGetPremiumParentFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.FINAL, listOf(), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf(), + opcodes = listOf( Opcode.IGET_BOOLEAN, Opcode.CONST_4, Opcode.IF_EQZ, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/bytecode/patch/TabletModePatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/bytecode/patch/TabletModePatch.kt deleted file mode 100644 index 31792098d..000000000 --- a/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/bytecode/patch/TabletModePatch.kt +++ /dev/null @@ -1,74 +0,0 @@ -package app.revanced.patches.music.layout.tabletmode.bytecode.patch - -import app.revanced.patcher.annotation.Description -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.addInstructions -import app.revanced.patcher.patch.BytecodePatch -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.music.misc.integrations.patch.MusicIntegrationsPatch -import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch -import app.revanced.shared.annotation.YouTubeMusicCompatibility -import app.revanced.shared.extensions.findMutableMethodOf -import app.revanced.shared.patches.mapping.ResourceMappingPatch -import org.jf.dexlib2.Opcode -import org.jf.dexlib2.iface.instruction.formats.Instruction31i - -@Patch -@DependsOn( - [ - MusicIntegrationsPatch::class, - MusicSettingsPatch::class, - ResourceMappingPatch::class - ] -) -@Name("tablet-mode") -@Description("Unlocks landscape mode.") -@YouTubeMusicCompatibility -@Version("0.0.1") -class TabletModePatch : BytecodePatch() { - - // list of resource names to get the id of - private val resourceIds = arrayOf( - "is_tablet" - ).map { name -> - ResourceMappingPatch.resourceMappings.single { it.name == name }.id - } - - override fun execute(context: BytecodeContext): PatchResult { - context.classes.forEach { classDef -> - classDef.methods.forEach { method -> - with(method.implementation) { - this?.instructions?.forEachIndexed { index, instruction -> - when (instruction.opcode) { - Opcode.CONST -> { - when ((instruction as Instruction31i).wideLiteral) { - resourceIds[0] -> { // tablet - val insertIndex = index - 2 - val invokeInstruction = instructions.elementAt(insertIndex) - if (invokeInstruction.opcode != Opcode.INVOKE_VIRTUAL) return@forEachIndexed - - val mutableMethod = context.proxy(classDef).mutableClass.findMutableMethodOf(method) - - mutableMethod.addInstructions( - index + 3, """ - invoke-static {p0}, Lapp/revanced/integrations/settings/MusicSettings;->getTabletMode(Z)Z - move-result p0 - """ - ) - } - } - } - else -> return@forEachIndexed - } - } - } - } - } - return PatchResultSuccess() - } -} diff --git a/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/fingerprints/TabletLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/fingerprints/TabletLayoutFingerprint.kt new file mode 100644 index 000000000..bc743ba86 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/fingerprints/TabletLayoutFingerprint.kt @@ -0,0 +1,26 @@ +package app.revanced.patches.music.layout.tabletmode.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import app.revanced.patches.music.misc.resourceid.patch.SharedResourcdIdPatch +import org.jf.dexlib2.iface.instruction.WideLiteralInstruction +import org.jf.dexlib2.AccessFlags +import org.jf.dexlib2.Opcode + +object TabletLayoutFingerprint : MethodFingerprint( + returnType = "Z", + access = AccessFlags.PUBLIC or AccessFlags.STATIC, + parameters = listOf("L"), + opcodes = listOf( + Opcode.CONST, + Opcode.INVOKE_VIRTUAL, + Opcode.MOVE_RESULT + ), + customFingerprint = { methodDef -> + methodDef.implementation?.instructions?.any { instruction -> + instruction.opcode.ordinal == Opcode.CONST.ordinal && + (instruction as? WideLiteralInstruction)?.wideLiteral == SharedResourcdIdPatch.isTabletLabelId + } == true + } +) + diff --git a/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/patch/TabletModePatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/patch/TabletModePatch.kt new file mode 100644 index 000000000..db1dff4aa --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/layout/tabletmode/patch/TabletModePatch.kt @@ -0,0 +1,54 @@ +package app.revanced.patches.music.layout.tabletmode.patch + +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.annotation.Version +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.addInstructions +import app.revanced.patcher.extensions.instruction +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patches.music.layout.tabletmode.fingerprints.TabletLayoutFingerprint +import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch +import app.revanced.patches.music.misc.resourceid.patch.SharedResourcdIdPatch +import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch +import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH + +@Patch +@Name("enable-tablet-mode") +@Description("Enable landscape mode on phone.") +@DependsOn( + [ + MusicIntegrationsPatch::class, + MusicSettingsPatch::class, + SharedResourcdIdPatch::class + ] +) +@YouTubeMusicCompatibility +@Version("0.0.1") +class TabletModePatch : BytecodePatch( + listOf( + TabletLayoutFingerprint + ) +) { + override fun execute(context: BytecodeContext): PatchResult { + val result = TabletLayoutFingerprint.result!! + val method = result.mutableMethod + + val endIndex = result.scanResult.patternScanResult!!.endIndex + val insertIndex = endIndex + 1 + + method.addInstructions( + insertIndex, """ + invoke-static {p0}, $MUSIC_SETTINGS_PATH->enableTabletMode(Z)Z + move-result p0 + """ + ) + + return PatchResultSuccess() + } +} diff --git a/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt index a14566233..22158db3e 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/fingerprints/TasteBuilderConstructorFingerprint.kt @@ -1,20 +1,17 @@ package app.revanced.patches.music.layout.tastebuilder.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("taste-builder-constructor-fingerprint") @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. -@YouTubeMusicCompatibility -@Version("0.0.1") object TasteBuilderConstructorFingerprint : MethodFingerprint( - "V", AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, listOf("L", "L", "L"), listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + parameters = listOf("L", "L", "L"), + opcodes = listOf( Opcode.INVOKE_DIRECT, Opcode.INVOKE_VIRTUAL, Opcode.NEW_INSTANCE, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/patch/RemoveTasteBuilderPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/patch/RemoveTasteBuilderPatch.kt index b19e78a48..b19a64ec1 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/patch/RemoveTasteBuilderPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/tastebuilder/patch/RemoveTasteBuilderPatch.kt @@ -14,7 +14,7 @@ import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.iface.instruction.formats.Instruction22c @Patch -@Name("tasteBuilder-remover") +@Name("hide-taste-builder") @Description("Removes the \"Tell us which artists you like\" card from the home screen.") @YouTubeMusicCompatibility @Version("0.0.1") diff --git a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt index c04e8da90..16b9f9472 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/fingerprints/PivotBarConstructorFingerprint.kt @@ -1,23 +1,17 @@ package app.revanced.patches.music.layout.upgradebutton.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.annotation.FuzzyPatternScanMethod import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("pivot-bar-constructor-fingerprint") @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. -@YouTubeMusicCompatibility -@Version("0.0.1") object PivotBarConstructorFingerprint : MethodFingerprint( - "V", - AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, - listOf("L", "Z"), - listOf( + returnType = "V", + access = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + parameters = listOf("L", "Z"), + opcodes = listOf( Opcode.INVOKE_DIRECT, Opcode.CONST_4, Opcode.IPUT_OBJECT, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/patch/RemoveUpgradeButtonPatch.kt b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/patch/RemoveUpgradeButtonPatch.kt index f206e1543..3512351a2 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/patch/RemoveUpgradeButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/layout/upgradebutton/patch/RemoveUpgradeButtonPatch.kt @@ -17,9 +17,8 @@ import org.jf.dexlib2.iface.instruction.formats.Instruction22c import org.jf.dexlib2.iface.instruction.formats.Instruction35c import org.jf.dexlib2.Opcode - @Patch -@Name("upgrade-button-remover") +@Name("hide-upgrade-button") @Description("Removes the upgrade tab from the pivot bar.") @YouTubeMusicCompatibility @Version("0.0.1") diff --git a/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint.kt index 4f6973d1e..e899bb293 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/clientspoof/fingerprints/UserAgentHeaderBuilderFingerprint.kt @@ -5,6 +5,10 @@ import org.jf.dexlib2.Opcode object UserAgentHeaderBuilderFingerprint : MethodFingerprint( parameters = listOf("L"), - opcodes = listOf(Opcode.MOVE_RESULT_OBJECT, Opcode.INVOKE_VIRTUAL, Opcode.CONST_16), + opcodes = listOf( + Opcode.MOVE_RESULT_OBJECT, + Opcode.INVOKE_VIRTUAL, + Opcode.CONST_16 + ), strings = listOf("(Linux; U; Android ") ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/integrations/patch/MusicIntegrationsPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/integrations/patch/MusicIntegrationsPatch.kt index 32460a7f8..67f7c6ce1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/integrations/patch/MusicIntegrationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/integrations/patch/MusicIntegrationsPatch.kt @@ -4,10 +4,11 @@ import app.revanced.patcher.annotation.Name import app.revanced.patches.music.misc.integrations.fingerprints.InitFingerprint import app.revanced.shared.annotation.YouTubeMusicCompatibility import app.revanced.shared.patches.integrations.AbstractIntegrationsPatch +import app.revanced.shared.util.integrations.Constants.MUSIC_SETTINGS_PATH @Name("music-integrations") @YouTubeMusicCompatibility class MusicIntegrationsPatch : AbstractIntegrationsPatch( - "Lapp/revanced/integrations/settings/MusicSettings;", + "$MUSIC_SETTINGS_PATH", listOf(InitFingerprint), ) \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/resourceid/patch/SharedResourceIdPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/resourceid/patch/SharedResourceIdPatch.kt new file mode 100644 index 000000000..a972ae755 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/misc/resourceid/patch/SharedResourceIdPatch.kt @@ -0,0 +1,36 @@ +package app.revanced.patches.music.misc.resourceid.patch + +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.DependsOn +import app.revanced.shared.annotation.YouTubeMusicCompatibility +import app.revanced.shared.patches.mapping.ResourceMappingPatch + +@Name("music-resource-id") +@DependsOn([ResourceMappingPatch::class]) +@YouTubeMusicCompatibility +@Version("0.0.1") +class SharedResourcdIdPatch : ResourcePatch { + internal companion object { + var colorGreyLabelId: Long = -1 + var disabledIconLabelId: Long = -1 + var isTabletLabelId: Long = -1 + } + + override fun execute(context: ResourceContext): PatchResult { + + fun findSharedResourceId(type: String, name: String) = ResourceMappingPatch + .resourceMappings + .single { it.type == type && it.name == name }.id + + colorGreyLabelId = findSharedResourceId("color", "ytm_color_grey_12") + disabledIconLabelId = findSharedResourceId("dimen", "disabled_icon_alpha") + isTabletLabelId = findSharedResourceId("bool", "is_tablet") + + return PatchResultSuccess() + } +} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/misc/translations/patch/MusicTranslationsPatch.kt b/src/main/kotlin/app/revanced/patches/music/misc/translations/patch/MusicTranslationsPatch.kt index e1925db99..7bd5e03d1 100644 --- a/src/main/kotlin/app/revanced/patches/music/misc/translations/patch/MusicTranslationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/misc/translations/patch/MusicTranslationsPatch.kt @@ -4,16 +4,15 @@ 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.annotations.DependsOn -import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.music.misc.integrations.patch.MusicIntegrationsPatch import app.revanced.patches.music.misc.settings.patch.MusicSettingsPatch import app.revanced.shared.annotation.YouTubeMusicCompatibility -import java.nio.file.Files -import java.nio.file.StandardCopyOption +import app.revanced.shared.util.resources.ResourceHelper @Patch @DependsOn([MusicIntegrationsPatch::class, MusicSettingsPatch::class]) @@ -24,63 +23,28 @@ import java.nio.file.StandardCopyOption class MusicTranslationsPatch : ResourcePatch { override fun execute(context: ResourceContext): PatchResult { - val revanced_translations = "translate" to arrayOf( - "ar-v21", - "az-rAZ-v21", - "bg-rBG-v21", - "bn-rIN-v21", - "bn-v21", - "cs-rCZ-v21", - "de-rDE-v21", - "el-rGR-v21", - "es-rES-v21", - "fi-rFI-v21", - "fr-rFR-v21", - "hi-rIN-v21", - "hu-rHU-v21", - "id-rID-v21", - "in-v21", - "it-rIT-v21", - "ja-rJP-v21", - "kn-rIN-v21", - "ko-rKR-v21", - "ml-rIN-v21", - "nl-rNL-v21", - "pa-rIN-v21", - "pl-rPL-v21", - "pt-rBR-v21", - "pt-rPT-v21", - "ro-rRO-v21", - "ru-rRU-v21", - "sk-rSK-v21", - "sv-rFI-v21", - "sv-rSE-v21", - "ta-rIN-v21", - "th-v21", - "tr-rTR-v21", - "uk-rUA-v21", - "vi-rVN-v21", - "zh-rCN-v21", - "zh-rTW-v21" - ) - - val TranslationsResources = arrayOf(revanced_translations) - - val classLoader = this.javaClass.classLoader - TranslationsResources.forEach { (path, languageNames) -> - languageNames.forEach { name -> - val resDirectory = context["res"].resolve("values-$name") - val relativePath = "values-$name/strings.xml" - - Files.createDirectory(resDirectory.toPath()) - Files.copy( - classLoader.getResourceAsStream("music/$path/$relativePath")!!, - context["res"].resolve(relativePath).toPath(), - StandardCopyOption.REPLACE_EXISTING - ) - } - } + ResourceHelper.addTranslations(context, "music", LANGUAGE_LIST) return PatchResultSuccess() } + + private companion object { + val LANGUAGE_LIST = arrayOf( + "be-rBY", + "bn", + "de-rDE", + "es-rES", + "fr-rFR", + "hi-rIN", + "id-rID", + "in", + "it-rIT", + "pt-rBR", + "ru-rRU", + "tr-rTR", + "uk-rUA", + "zh-rCN", + "zh-rTW" + ) + } } diff --git a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt index 9f625833c..dd2ac24fc 100644 --- a/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/premium/backgroundplay/fingerprints/BackgroundPlaybackDisableFingerprint.kt @@ -8,7 +8,10 @@ import org.jf.dexlib2.Opcode @FuzzyPatternScanMethod(2) // FIXME: Test this threshold and find the best value. object BackgroundPlaybackDisableFingerprint : MethodFingerprint( - "Z", AccessFlags.PUBLIC or AccessFlags.STATIC, listOf("L"), listOf( + returnType = "Z", + access = AccessFlags.PUBLIC or AccessFlags.STATIC, + parameters = listOf("L"), + opcodes = listOf( Opcode.CONST_4, Opcode.IF_EQZ, Opcode.IGET, diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/translations/patch/TranslationsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/translations/patch/TranslationsPatch.kt index 45092c472..1062c8485 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/translations/patch/TranslationsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/translations/patch/TranslationsPatch.kt @@ -4,16 +4,14 @@ 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.annotations.DependsOn -import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsPatch import app.revanced.shared.annotation.YouTubeCompatibility import app.revanced.shared.util.resources.ResourceHelper -import java.nio.file.Files -import java.nio.file.StandardCopyOption @Patch @Name("translations") @@ -24,18 +22,7 @@ import java.nio.file.StandardCopyOption class TranslationsPatch : ResourcePatch { override fun execute(context: ResourceContext): PatchResult { - LANGUAGE_LIST.forEach { language -> - val directory = "values-" + language + "-v21" - val relativePath = "$language/strings.xml" - - context["res/$directory"].mkdir() - - Files.copy( - this.javaClass.classLoader.getResourceAsStream("youtube/translations/$relativePath")!!, - context["res"].resolve("$directory/strings.xml").toPath(), - StandardCopyOption.REPLACE_EXISTING - ) - } + ResourceHelper.addTranslations(context, "youtube", LANGUAGE_LIST) ResourceHelper.patchSuccess( context, diff --git a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorParentFingerprint.kt b/src/main/kotlin/app/revanced/shared/fingerprints/MiniplayerColorParentFingerprint.kt similarity index 58% rename from src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorParentFingerprint.kt rename to src/main/kotlin/app/revanced/shared/fingerprints/MiniplayerColorParentFingerprint.kt index 3df33b9e3..a7fcb2f11 100644 --- a/src/main/kotlin/app/revanced/patches/music/layout/miniplayercolor/fingerprints/MiniplayerColorParentFingerprint.kt +++ b/src/main/kotlin/app/revanced/shared/fingerprints/MiniplayerColorParentFingerprint.kt @@ -1,21 +1,14 @@ -package app.revanced.patches.music.layout.miniplayercolor.fingerprints +package app.revanced.shared.fingerprints -import app.revanced.patcher.annotation.Name -import app.revanced.patcher.annotation.Version import app.revanced.patcher.extensions.or import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint -import app.revanced.shared.annotation.YouTubeMusicCompatibility import org.jf.dexlib2.AccessFlags import org.jf.dexlib2.Opcode -@Name("miniplayer-color-hook-fingerprint") -@YouTubeMusicCompatibility -@Version("0.0.1") object MiniplayerColorParentFingerprint : MethodFingerprint( - "V", - AccessFlags.PRIVATE or AccessFlags.FINAL, - null, - listOf( + returnType = "V", + access = AccessFlags.PRIVATE or AccessFlags.FINAL, + opcodes = listOf( Opcode.IGET, Opcode.IGET, Opcode.CONST_WIDE_16, diff --git a/src/main/kotlin/app/revanced/shared/util/integrations/Constants.kt b/src/main/kotlin/app/revanced/shared/util/integrations/Constants.kt index 3da4a91f8..f3f9dae89 100644 --- a/src/main/kotlin/app/revanced/shared/util/integrations/Constants.kt +++ b/src/main/kotlin/app/revanced/shared/util/integrations/Constants.kt @@ -17,4 +17,6 @@ internal object Constants { const val MISC_PATH = "$PATCHES_PATH/misc" const val VIDEO_PATH = "$PATCHES_PATH/video" const val UTILS_PATH = "$PATCHES_PATH/utils" + + const val MUSIC_SETTINGS_PATH = "$INTEGRATIONS_PATH/settings/MusicSettings;" } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/shared/util/resources/ResourceHelper.kt b/src/main/kotlin/app/revanced/shared/util/resources/ResourceHelper.kt index 6907d3d7a..eb47afbc1 100644 --- a/src/main/kotlin/app/revanced/shared/util/resources/ResourceHelper.kt +++ b/src/main/kotlin/app/revanced/shared/util/resources/ResourceHelper.kt @@ -1,6 +1,8 @@ package app.revanced.shared.util.resources import app.revanced.patcher.data.ResourceContext +import java.nio.file.Files +import java.nio.file.StandardCopyOption import org.w3c.dom.Element internal object ResourceHelper { @@ -203,6 +205,25 @@ internal object ResourceHelper { ) } + fun addTranslations( + context: ResourceContext, + sourceDirectory: String, + languageArray: Array + ) { + languageArray.forEach { language -> + val directory = "values-$language-v21" + val relativePath = "$language/strings.xml" + + context["res/$directory"].mkdir() + + Files.copy( + this.javaClass.classLoader.getResourceAsStream("$sourceDirectory/translations/$relativePath")!!, + context["res"].resolve("$directory/strings.xml").toPath(), + StandardCopyOption.REPLACE_EXISTING + ) + } + } + fun addReVancedSettings( context: ResourceContext, Preference: String diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml index 056c0592a..7f4af4f47 100644 --- a/src/main/resources/music/settings/host/values/strings.xml +++ b/src/main/resources/music/settings/host/values/strings.xml @@ -1,29 +1,28 @@ - Cast button - Hides the Cast button at the top of the homepage - ADS - Design - Listening - Navigation - "Hides the music category bar at the top of the homepage + ADS + Design + Listening + Navigation + Sets the navigation bar color to black. + Enable black navbar + Matches the fullscreen player color with the minimized one. + Enable color match Players + Keep player permanently minimized even if another track is played. + Enable force minimized player + "Enable 250/251 opus codec when playing audio. (requires an app restart)" - Compact Header - "Permanently keep the 250/251 opus codec + Enable opus codec + "Enable landscape mode on phone. (requires an app restart)" - Codecs Overrides - Permanently keep player minimized even if another track is played - Permanent Minimized Player - Matches the fullscreen player color with the minimized one - Color Match Players - Sets the navigation bar color to black - Black NavBar - ReVanced settings - "Shows ads before playing a track + Enable tablet mode + Hides the cast button at the top of the homepage and at the top of the player. + Hide cast button + "Hides the music category bar at the top of the homepage. (requires an app restart)" - Enable ADS (to support artists) - "Unlocks landscape mode + Hide compact header + "Hide ads before playing a track. (requires an app restart)" - Tablet Mode - Website + Hide music ads + ReVanced settings diff --git a/src/main/resources/music/settings/host/xml/settings_headers.xml b/src/main/resources/music/settings/host/xml/settings_headers.xml index 0515ac560..e59f57f8a 100644 --- a/src/main/resources/music/settings/host/xml/settings_headers.xml +++ b/src/main/resources/music/settings/host/xml/settings_headers.xml @@ -1,22 +1,22 @@ - - - + + + - - - + + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/src/main/resources/music/settings/host/xml/settings_prefs_compat.xml b/src/main/resources/music/settings/host/xml/settings_prefs_compat.xml index fe08b30ab..312fe8dce 100644 --- a/src/main/resources/music/settings/host/xml/settings_prefs_compat.xml +++ b/src/main/resources/music/settings/host/xml/settings_prefs_compat.xml @@ -1,21 +1,21 @@ - - - + + + - - - + + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/src/main/resources/music/translate/values-ar-v21/strings.xml b/src/main/resources/music/translate/values-ar-v21/strings.xml deleted file mode 100644 index 226c93ba1..000000000 --- a/src/main/resources/music/translate/values-ar-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - زر البث - إخفاء زر البث في الجزء العلوي من الصفحة الرئيسية - الإعلانات - التصميم - الاستماع - التنقل - "إخفاء شريط فئة الموسيقى أعلى الصفحة الرئيسية -(يتطلب إعادة تشغيل التطبيق)" - تصغير الرأس - "احتفظ دائمًا ببرنامج الترميز 250/251 opus -(يتطلب إعادة تشغيل التطبيق)" - إبقاء المشغل مصغرًا بشكل دائم حتى إذا تم تشغيل مسار آخر - قم بمطابقة لون المشغل في وضع ملء الشاشة مع المشغل المصغر - مطابقة ألوان المشغل - تعيين لون شريط التنقل إلى اللون الأسود - شريط التنقل الأسود - (ReVanced) إعدادات - "إظهار الإعلانات قبل تشغيل المسار -(يتطلب إعادة تشغيل التطبيق)" - تمكين الإعلانات (لدعم الفنانين) - "فتح الوضع الأفقي -(يتطلب إعادة تشغيل التطبيق)" - وضع الجهاز اللوحي - diff --git a/src/main/resources/music/translate/values-az-rAZ-v21/strings.xml b/src/main/resources/music/translate/values-az-rAZ-v21/strings.xml deleted file mode 100644 index f94758e59..000000000 --- a/src/main/resources/music/translate/values-az-rAZ-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Yayım düyməsi - Əsas səhifənin yuxarısındakı Yayım düyməsini gizlədir - Reklamlar - Dizayn - Dinləmə - Naviqasiya - "Əsas səhifənin ən üstündəki musiqi kateqoriya sətrini gizlədir -(yenidən başlatma lazımdır)" - Yığcam başlıq - "250/251 opus kodekini daimi olaraq saxlayın -(tətbiqin yenidən başlaması tələb olunur)" - Codec ləğvi - Başqa bir trek çalınsa belə, pleyeri daima minimuma endirin - Daimi Minimallaşdırılmış Pleyer - Tam ekran oynadıcının rəngi, kiçildilmiş oynadıcının rəngiylə eyni olacaq - Eyni rəngli oynadıcılar - Hərəkət sətrinin rəngini qara olaraq tənzimləyir - Qara rəngli hərəkət xətti - ReVanced tənzimləmələri - "Bir musiqi oxudulmazdan əvvəl reklamın göstərilməsi -(yenidən başlatmaq lazımdır)" - Reklamları aktivləşdir (sənətkarları dəstəkləmək üçün) - "Üfüqi rejimin kilidini açar -(yenidən başlatma lazımdır)" - Planşet rejimi - Web sayt - diff --git a/src/main/resources/music/translate/values-bg-rBG-v21/strings.xml b/src/main/resources/music/translate/values-bg-rBG-v21/strings.xml deleted file mode 100644 index 10883f4d3..000000000 --- a/src/main/resources/music/translate/values-bg-rBG-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast button - Hides the Cast button at the top of the homepage - Реклами - Дизайн - Слушане - Навигация - "Скрива лентата с категории музика в горната част на началната страница -(изисква рестартиране на приложението)" - Компактна заглавка - "Permanently keep the 250/251 opus codec -(requires an app restart)" - Permanently keep player minimized even if another track is played - Цветът на плейъра на цял екран съответства с цвета на минимизирания - Еднакъв цвят на плейърите - Задава цвета на лентата за навигация на черен - Черна лента за навигация - Настройки на ReVanced - "Показва реклами преди пускане на песен -(изисква рестартиране на приложението)" - Активиране на рекламите (за подкрепа на изпълнителите) - "Отключва пейзажен режим -(изисква рестартиране на приложението)" - Режим на таблет - diff --git a/src/main/resources/music/translate/values-bn-rIN-v21/strings.xml b/src/main/resources/music/translate/values-bn-rIN-v21/strings.xml deleted file mode 100644 index e71eae027..000000000 --- a/src/main/resources/music/translate/values-bn-rIN-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - কাস্ট বোতাম - হোমপেইজ থেকে কাস্ট বাটন লুকাবে - বিজ্ঞাপন - ডিজাইন - শুনছেন - নেভিগেশন - "হোমপেজের উপরে মিউজিক ক্যাটাগরি বার লুকিয়ে রাখে -(অ্যাপটিকে রিস্টার্ট করা প্রয়োজন)" - সংকুচিত হেডার - "স্থায়ীভাবে 250/251 অপাস কোডেক রাখুন -(অ্যাপটিকে রিস্টার্ট করা প্রয়োজন)" - যদি অন্য ট্রাক বাজানো হয়, তাও প্লেয়ারকে স্থায়ীভাবে ছোট করে রাখুন - পূর্ণস্ক্রীন প্লেয়ারের রঙ মিনিমাইজড প্লেয়ারের রঙের সঙ্গে মিলবে - রঙ মিলিয়ে প্লেয়ার - নেভিগেশন বারের রঙ কালো সেট করবে - কালো নেভিগশন বার - রি ভেন্সড সেটিংস - "একটি ট্রাক শুরু হওয়ার আগে বিজ্ঞাপন দেখাবে -(অ্যাপটিকে রিস্টার্ট করা প্রয়োজন)" - বিজ্ঞাপন সক্রিয় করুন (শিল্পীদের সাহায্য করতে) - "ল্যান্ডস্কেপ মোড আনলক করুন -(অ্যাপটিকে রিস্টার্ট করা প্রয়োজন)" - ট্যাবলেট মোড - diff --git a/src/main/resources/music/translate/values-bn-v21/strings.xml b/src/main/resources/music/translate/values-bn-v21/strings.xml deleted file mode 100644 index 126742527..000000000 --- a/src/main/resources/music/translate/values-bn-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - কাস্ট বাটন - হোমপেইজ থেকে কাস্ট বাটন লুকান - অ্যাডস - ডিজাইন - শুনছেন - নেভিগেশন - "মিউজিক ক্যাটাগোরি বার হাইড রাখুন হোম পেজে -(অ্যাপ রিস্টার্ট প্রয়োজন)" - সংক্ষিপ্ত শিরোনাম - "স্থায়ীভাবে ২৫০/২৫১ অপাস কোডেক রাখুন -(অ্যাপটি রিস্টার্ট করেনিতে হবে)" - স্থায়ীভাবে প্লেয়ার ছোট রাখুন এমনকি যদি অন্য ট্র্যাক বাজানো হয় - পূর্ণস্ক্রীন প্লেয়ারের রঙের সাথে মিনিমাইজ করা রং মেলান - কালার ম্যাচ প্লেয়ার - নেভিগেশন বারের রঙ কালো সেট করুন - ব্যাক নেভিগেশন-বার - রিভ্যান্সড সেটিংস - "একটি ট্র্যাক প্লে করার আগে বিজ্ঞাপন দেখুন -(অ্যাপটি পুনরায় চালু করতে হবে)" - অ্যাডস চালু করুন (শিল্পীদের সমর্থন করতে) - "ল্যান্ডস্কেপ মোড আনলক করুন -(অ্যাপটি একবার রিস্টার্ট প্রয়োজন)" - ট্যাবলেট মোড - ওয়েবসাইট - diff --git a/src/main/resources/music/translate/values-cs-rCZ-v21/strings.xml b/src/main/resources/music/translate/values-cs-rCZ-v21/strings.xml deleted file mode 100644 index c90bdb490..000000000 --- a/src/main/resources/music/translate/values-cs-rCZ-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast button - Hides the Cast button at the top of the homepage - REKLAMY - Vzhled - Poslech - Navigace - "Skryje panel kategorií hudby v horní části domovské stránky -(vyžaduje restart aplikace)" - Kompaktní záhlaví - "Permanently keep the 250/251 opus codec -(requires an app restart)" - Permanently keep player minimized even if another track is played - Sjednotí barvu celoobrazovkového přehrávače s minimalizovaným přehrávačem v aplikaci - Barevné sjednocení přehrávačů - Nastaví barvu navigačního panelu na černou - Černý navigační panel - Nastavení ReVanced - "Před přehráváním skladby zobrazit reklamy -(vyžaduje restart aplikace)" - Povolit REKLAMY (pro podporu umělců) - "Odemkne režim na šířku -(vyžaduje restart aplikace)" - Režim tabletu - diff --git a/src/main/resources/music/translate/values-de-rDE-v21/strings.xml b/src/main/resources/music/translate/values-de-rDE-v21/strings.xml deleted file mode 100644 index 57db3610b..000000000 --- a/src/main/resources/music/translate/values-de-rDE-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - Cast-Symbol - Versteckt das Cast-Symbol oben auf der Startseite - Werbung - Design - Wird gehört - Navigation - "Versteckt die Leiste mit den Musikkategorien am oberen Ende der Startseite -(erfordert einen Neustart der App)" - Kompakte Überschriften - "Behalte den 250/251 Opus Codec dauerhaft -(erfordert einen Neustart der App)" - Den Player dauerhaft minimieren, selbst wenn ein anderer Track abgespielt wird - Gleicht die Farben des Vollbild- und des Miniplayers an - Farbe der Player angleichen - Setzt die Farbe der Navigationsleiste zu schwarz - Schwarze Navigationsleiste - ReVanced Einstellungen - "Werbung vor Start eines Liedes anzeigen -(erfordert einen Neustart der App)" - Werbung aktivieren (zur Unterstützung der Musiker) - "Schaltet Querformat frei -(erfordert einen Neustart der App)" - Tablet-Modus - Webseite - diff --git a/src/main/resources/music/translate/values-el-rGR-v21/strings.xml b/src/main/resources/music/translate/values-el-rGR-v21/strings.xml deleted file mode 100644 index bb615c3f0..000000000 --- a/src/main/resources/music/translate/values-el-rGR-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - Πλήκτρο μετάδοσης - Hides the Cast button at the top of the homepage - Διαφημίσεις - Σχεδίαση - Αναπαραγωγή - Πλοήγηση - "Απόκρυψη της γραμμής κορυφαίων κατηγοριών μουσικής στην κορυφή της αρχικής οθόνης -(απαιτείται επανεκκίνηση της εφαρμογής για να εφαρμοστεί η ρύθμιση)" - Απλούστευση άνω οθόνης - "Permanently keep the 250/251 opus codec -(requires an app restart)" - Permanently keep player minimized even if another track is played - Το χρώμα της πλήρους οθόνης αναπαραγωγής θα τεριάζει με το χρώμα της ελαχιστοποιημένης οθόνης αναπαραγωγής - Τέριασμα χρωμάτων οθόνης αναπαραγωγής - Ορισμός του χρώματος της γραμμής πλοήγησης σε μαύρο - Μαύρη Γραμμή Πλοήγησης - Ρυθμίσεις του ReVanced - "Εμφάνιση διαφημίσεων πριν την αναπαραγωγή ενός κομματιού -(για να υποστηρίξετε τους καλλιτέχνες, απαιτείται επανεκκίνηση της εφαρμογής)" - Ενεργοποίηση διαφημίσεων - "Ξεκλείδωμα λειτουργίας οριζόντιου προσανατολισμού -(απαιτείται επανεκκίνηση της εφαρμογής)" - Λειτουργία ως ταμπλετ - Ιστοσελίδα - diff --git a/src/main/resources/music/translate/values-es-rES-v21/strings.xml b/src/main/resources/music/translate/values-es-rES-v21/strings.xml deleted file mode 100644 index 3b533b6aa..000000000 --- a/src/main/resources/music/translate/values-es-rES-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Botón de transmisión - Oculta el botón Emitir en la parte superior de la página de inicio - Publicidad - Diseño - Escuchando - Navegación - "Oculta la barra de categoría de música en la parte superior de la página de inicio -(requiere reiniciar la aplicación)" - Encabezado compacto - "Mantener permanentemente el código de 250/251 opus -(requiere un reinicio de aplicación)" - Reemplazo de códecs - Mantener permanentemente el reproductor minimizado incluso si se reproduce otra pista - Reproductor minimizado permanente - Coincide el color del reproductor a pantalla completa con el de minimizado - Coincidir colores en el reproductor - Establece el color de la barra de navegación a negro - Barra de navegación negra - Ajustes ReVanced - "Muestra anuncios antes de reproducir una canción -(requiere reiniciar la aplicación)" - Activar anuncios (para apoyar artistas) - "Desbloquea el modo horizontal -(requiere reiniciar la aplicación)" - Modo tablet - Sitio web - diff --git a/src/main/resources/music/translate/values-fi-rFI-v21/strings.xml b/src/main/resources/music/translate/values-fi-rFI-v21/strings.xml deleted file mode 100644 index af1e05bed..000000000 --- a/src/main/resources/music/translate/values-fi-rFI-v21/strings.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - MAINOKSET - Tyyli - Kuunnellaan - Navigointi - "Piilottaa musiikin kategoriapalkin kotisivun yläreunassa -(vaatii sovelluksen uudelleenkäynnistyksen)" - Kompakti ylätunniste - Täsmää koko näytön soittimen värin pienennetyn kanssa - Täsmää soittimien värit - Asettaa navigointipalkin värin mustaksi - Musta navigointipalkki - ReVanced-asetukset - "Näytä mainokset ennen kappaleen soittamista -(vaatii sovelluksen uudelleenkäynnistyksen)" - Ota MAINOKSET käyttöön (artistien tukemista varten) - "Avaa vaakatilan lukituksen -(vaatii sovelluksen uudelleenkäynnistyksen)" - Tablettitila - diff --git a/src/main/resources/music/translate/values-fr-rFR-v21/strings.xml b/src/main/resources/music/translate/values-fr-rFR-v21/strings.xml deleted file mode 100644 index 9ea9d6164..000000000 --- a/src/main/resources/music/translate/values-fr-rFR-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Partager - Supprimer le bouton partage en haut de la page d\'accueil - Publicité - Design - En écoute - Navigation - "Supprimer la catégorie musique dans la barre du haut sur la page d'accueil -(redémarrage de l'application nécessaire)" - Barre du haut compacte - "Conserver en permanence le codec opus 250/251 -(nécessite un redémarrage de l'application)" - Remplacements de codecs - Garder en permanence le lecteur minimisé même si une autre piste est lue - Lecteur miniature permanent - Correspondre la couleur du lecteur plein écran avec celle réduite - Correspondance de la couleur des lecteurs - Changer la barre de navigation colorée en noire - Barre de navigation noire - Paramètres Revanced - "Montrer les publicités avant la lecture de la vidéo -(redémarrage de l'application nécessaire)" - Autoriser la publicité (pour supporter les artistes) - "Débloquer le mode paysage -(redémarrage de l'application nécessaire)" - Mode tablette - Site web - diff --git a/src/main/resources/music/translate/values-hi-rIN-v21/strings.xml b/src/main/resources/music/translate/values-hi-rIN-v21/strings.xml deleted file mode 100644 index 2813b8296..000000000 --- a/src/main/resources/music/translate/values-hi-rIN-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - कास्ट बटन - होमपेज के शीर्ष से कास्ट बटन छुपाएं - विज्ञापन - डिज़ाइन - सुनना - नेविगेशन - "मुखपृष्ठ के शीर्ष पर से संगीत श्रेणी बार को छुपाता है -(ऐप फिरसे चालू होगा)" - कॉम्पैक्ट हेडर - "Opus codec को 250/251 पर हमेशा के लिए सेट करे -(ऐप दुबारा खुलेगा)" - प्लेयर को स्थायी रूप से छोटा रखें, भले ही दूसरा ट्रैक चल जाए - फ़ुलस्क्रीन प्लेयर का रंग मिनिमाइज़ वाले से मेल खाता है - रंग मिलान प्लेयर - नेविगेशन बार का रंग काला सेट करता है - ब्लैक नवबार - ReVanced सेटिंग्स - "ट्रैक चलाने से पहले विज्ञापन दिखाए -(ऐप रीस्टार्ट करने की आवश्यकता है)" - विज्ञापन चालू करें (कलाकारों का समर्थन करने के लिए) - "लैंडस्केप मोड को अनलॉक करता है -(ऐप को पुनरारंभ करने की आवश्यकता है)" - टैबलेट मोड - वेबसाइट - diff --git a/src/main/resources/music/translate/values-hu-rHU-v21/strings.xml b/src/main/resources/music/translate/values-hu-rHU-v21/strings.xml deleted file mode 100644 index a8d382340..000000000 --- a/src/main/resources/music/translate/values-hu-rHU-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Átküldés gomb - Elrejti az Átküldés gombot a kezdőlap tetején - REKLÁMOK - Dizájn - Billenőkapcsolók - Navigáció - "Elrejti a zenei kategória sávot a kezdőlap tetején -(alkalmazás újraindítása szükséges)" - Kompakt fejléc - "A 250/251 opus kodek végleges megőrzése -(alkalmazás újraindítása szükséges)" - Tartsa a lejátszót minimalizálva, még akkor is, ha másik zeneszámot játszanak le - Megfelel a teljes képernyős lejátszó színének, a kicsinyített színnel - Színes lejátszó - A navigációs sáv színét feketére állíthatja - Fekete NavBar - ReVanced beállítások - "Reklámok megjelenítése a szám lejátszása előtt -(alkalmazás újraindítása szükséges)" - Reklámok megjelenítése (támogatssa a művészeket) - "Feloldja a fekvő módot -(alkalmazás újraindítása szükséges)" - Tablet Mód - diff --git a/src/main/resources/music/translate/values-id-rID-v21/strings.xml b/src/main/resources/music/translate/values-id-rID-v21/strings.xml deleted file mode 100644 index f9a103397..000000000 --- a/src/main/resources/music/translate/values-id-rID-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Tombol transmisi - Sembunyikan tombol transmisi di bagian atas beranda - Iklan - Desain - Mendengarkan - Navigasi - "Sembunyikan bilah kategori musik di bagian atas halaman utama -(memuat ulang aplikasi diperlukan)" - Header Sederhana - "Simpan codec 250/251 opus secara permanen -(muat ulang aplikasi diperlukan)" - Penggantian codec - Tetap buka pemutar minimal meski lagu lain dimainkan - Pemutar minimal permanen - Samakan warna pemutar layar penuh dengan warna pemutar yang diminimalkan - Penyamaan warna pemutar - Mengubah warna bilah navigasi menjadi hitam - Bilah navigasi hitam - Pengaturan ReVanced - "Tampilkan iklan sebelum memutar lagu -(memuat ulang aplikasi diperlukan)" - Aktifkan Iklan (untuk mendukung artis) - "Buka mode lanskap -(memuat ulang aplikasi diperlukan)" - Mode Tablet - Website - diff --git a/src/main/resources/music/translate/values-in-v21/strings.xml b/src/main/resources/music/translate/values-in-v21/strings.xml deleted file mode 100644 index f9a103397..000000000 --- a/src/main/resources/music/translate/values-in-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Tombol transmisi - Sembunyikan tombol transmisi di bagian atas beranda - Iklan - Desain - Mendengarkan - Navigasi - "Sembunyikan bilah kategori musik di bagian atas halaman utama -(memuat ulang aplikasi diperlukan)" - Header Sederhana - "Simpan codec 250/251 opus secara permanen -(muat ulang aplikasi diperlukan)" - Penggantian codec - Tetap buka pemutar minimal meski lagu lain dimainkan - Pemutar minimal permanen - Samakan warna pemutar layar penuh dengan warna pemutar yang diminimalkan - Penyamaan warna pemutar - Mengubah warna bilah navigasi menjadi hitam - Bilah navigasi hitam - Pengaturan ReVanced - "Tampilkan iklan sebelum memutar lagu -(memuat ulang aplikasi diperlukan)" - Aktifkan Iklan (untuk mendukung artis) - "Buka mode lanskap -(memuat ulang aplikasi diperlukan)" - Mode Tablet - Website - diff --git a/src/main/resources/music/translate/values-it-rIT-v21/strings.xml b/src/main/resources/music/translate/values-it-rIT-v21/strings.xml deleted file mode 100644 index c69950823..000000000 --- a/src/main/resources/music/translate/values-it-rIT-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Pulsante di trasmissione - Nascondi il pulsante di trasmissione in cima alla home - Pubblicità - Aspetto - Ascolto - Navigazione - "Nasconde la barra delle categorie musicali nella parte superiore della pagina principale -(richiede un riavvio dell'app)" - Intestazione Compatta - "Mantieni permanentemente il codec opus 250/251 -(richiede un riavvio dell'app)" - Sovrascrivi Codec - Mantieni il riproduttore minimizzato anche se venisse riprodotta una traccia differente - Pulsante Riproduttore Minimizzato permanente - Allinea il colore del lettore a schermo intero con quello in secondo piano - Corrispondenza Colore Lettori - Imposta il colore della barra di navigazione su nero - NavBar Nera - Impostazioni di ReVanced - "Mostra gli annunci prima di riprodurre una traccia -(richiede un riavvio dell'app)" - Attiva Pubblicità (per supportare gli artisti) - "Sblocca la modalità orizzontale -(richiede un riavvio dell'app)" - Modalità Tablet - Sito web - diff --git a/src/main/resources/music/translate/values-ja-rJP-v21/strings.xml b/src/main/resources/music/translate/values-ja-rJP-v21/strings.xml deleted file mode 100644 index 897344c10..000000000 --- a/src/main/resources/music/translate/values-ja-rJP-v21/strings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - キャストボタン - ページ上部のCastボタンを非表示 - 広告 - デザイン - 再生 - ナビゲーション - "ホームページの上部にある音楽カテゴリバーを非表示にします -(アプリの再起動が必要です)" - コンパクトなヘッダー - "\"250/251 opusコーデックを常に保持(要アプリ再起動)" - コーデックの上書き - 他のトラックが再生されてもプレイヤーを常に最小化 - 常に最小化されたプレイヤー - 全画面のプレイヤーとアプリ内のミニプレイヤーの色を同じにします - プレイヤーの色を統一 - ナビゲーションバーの色を黒に設定します - 黒いナビゲーションバー - ReVanced 設定 - "トラックを再生する前に広告を表示します -(アプリの再起動が必要です)" - 広告を有効にする (アーティストをサポートする) - "横向きモードを解除します -(アプリの再起動が必要です)" - タブレットモード - ウェブサイト - diff --git a/src/main/resources/music/translate/values-kn-rIN-v21/strings.xml b/src/main/resources/music/translate/values-kn-rIN-v21/strings.xml deleted file mode 100644 index 435c0534f..000000000 --- a/src/main/resources/music/translate/values-kn-rIN-v21/strings.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - ಕ್ಯಾಸ್ಟ್ ಬಟನ್ - ಮುಖಪುಟದ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಕಾಸ್ಟ್ ಬಟನ್ ಅನ್ನು ಮರೆಮಾಡುತ್ತದೆ - ಜಾಹೀರಾತುಗಳು - ವಿನ್ಯಾಸ - ಕೇಳುವ - ನ್ಯಾವಿಗೇಶನ್ - "ಮುಖಪುಟದ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಮ್ಯೂಸಿಕ್ ವರ್ಗದ ಪಟ್ಟಿಯನ್ನು ಮರೆಮಾಡುತ್ತದೆ (ಅಪ್ಲಿಕೇಶನ್ ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ)" - ಕಾಂಪ್ಯಾಕ್ಟ್ ಹೆಡರ್ - "ಶಾಶ್ವತವಾಗಿ 250/251 opus codec ಅನ್ನು ಉಳಿಸು (ಅಪ್ಲಿಕೇಶನ್ ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ)" - ಕೊಡೆಕ್ಸ್ ಅತಿಕ್ರಮಣ - ಮತ್ತೊಂದು ಟ್ರ್ಯಾಕ್ ಅನ್ನು ಪ್ಲೇ ಮಾಡಿದರೂ ಸಹ ಶಾಶ್ವತವಾಗಿ ಪ್ಲೇಯರ್ ಅನ್ನು ಮಿನಿಮೈಸ್ ಮಾಡು - ಶಾಶ್ವತ ಮಿನಿಮೈಸ್ಡ್ ಪ್ಲೇಯರ್ - ಫುಲ್‌ಸ್ಕ್ರೀನ್ ಪ್ಲೇಯರ್ ಬಣ್ಣವು ಮಿನಿಮೈಸ್ಡ್ ಬಣ್ಣಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವುದು - ಬಣ್ಣ ಹೊಂದಾಣಿಕೆಯ ಪ್ಲೇಯರ್ ಗಳು - ನ್ಯಾವಿಗೇಶನ್ ಬಾರ್ ಅನ್ನು ಕಪ್ಪು ಬಣ್ಣಕ್ಕೆ ಹೊಂದಿಸುತ್ತದೆ - ಕಪ್ಪು ಬಣ್ಣದ ನ್ಯಾವಿಗೇಶನ್ ಬಾರ್ - ರಿವ್ಯಾಂಸ್ಡ್ ಸೆಟ್ಟಿಂಗ್ಸ್ - "ಟ್ರ್ಯಾಕ್ ಪ್ಲೇ ಮಾಡುವ ಮೊದಲು ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುವುದು (ಅಪ್ಲಿಕೇಶನ್ ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ)" - ಜಾಹೀರಾತುಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು (ಕಲಾವಿದರನ್ನು ಬೆಂಬಲಿಸಲು) - "ಅನ್ಲಾಕ್ ಲ್ಯಾಂಡ್ಸ್ಕೇಪ್ ಮೋಡ್ (ಅಪ್ಲಿಕೇಶನ್ ಮರುಪ್ರಾರಂಭದ ಅಗತ್ಯವಿದೆ)" - ಟ್ಯಾಬ್ಲೆಟ್ ಮೋಡ್ - ವೆಬ್‌ಸೈಟ್‌ - diff --git a/src/main/resources/music/translate/values-ko-rKR-v21/strings.xml b/src/main/resources/music/translate/values-ko-rKR-v21/strings.xml deleted file mode 100644 index 1c73e1b2c..000000000 --- a/src/main/resources/music/translate/values-ko-rKR-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 크롬캐스트 버튼 - 홈페이지 상단에서 크롬캐스트 버튼을 숨깁니다 - 광고 - 디자인 - 청취 - 내비게이션 - "홈페이지 상단의 음악 카테고리 바를 숨깁니다 -(앱을 재시작해야 적용됨)" - 간략한 헤더 - "250/251 opus 코덱을 사용합니다 -(앱을 재시작해야 적용됨)" - 코덱 강제 설정 - 다른 트랙이 재생되더라도 플레이어를 항상 최소화 상태로 유지합니다 - 플레이어를 항상 최소화 상태로 유지 - 최소화 상태의 플레이어와 전체화면 플레이어의 색상을 통일시킵니다 - 플레이어 색상 통일 - 내비게이션 바 색상을 검정으로 설정합니다 - 검정 내비게이션 바 - ReVanced 설정 - "트랙을 재생하기 전 광고를 표시합니다 -(앱을 재시작해야 적용됨)" - 광고 활성화 (아티스트 지원) - "앱을 가로로 회전할 수 있도록 합니다 -(앱을 재시작해야 적용됨)" - 태블릿 모드 - 웹사이트 - diff --git a/src/main/resources/music/translate/values-ml-rIN-v21/strings.xml b/src/main/resources/music/translate/values-ml-rIN-v21/strings.xml deleted file mode 100644 index 24834b313..000000000 --- a/src/main/resources/music/translate/values-ml-rIN-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - കാസ്റ്റ് ബട്ടൺ - ഹോം പേജിന്റെ മുകളിലുള്ള കാസ്റ്റ് ബട്ടൺ മറയ്ക്കുന്നു - പരസ്യങ്ങൾ - ഡിസൈൻ - കേൾക്കുന്നു - നാവിഗേഷൻ - "ഹോം പേജിന്റെ മുകളിലുള്ള സംഗീത വിഭാഗ ബാർ മറയ്ക്കുന്നു -(ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്)" - ഒതുക്കമുള്ള തലക്കെട്ട് - "250/251 ഓപസ് കോഡെക് ശാശ്വതമായി സൂക്ഷിക്കുക -(ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്)" - മറ്റൊരു ട്രാക്ക് പ്ലേ ചെയ്‌താലും പ്ലെയറിനെ മിനിമൈസ് ആക്കി തന്നെ നിലനിര്‍ത്തുക - ഫുൾസ്‌ക്രീൻ പ്ലെയർ നിറം ചെറുതാക്കിയതുമായി യോജിക്കുന്നു - കളർ മാച്ച് പ്ലെയേഴ്സ് - നാവിഗേഷൻ ബാറിന്റെ നിറം കറുപ്പായി സജ്ജീകരിക്കുന്നു - കറുത്ത നാവിഗേഷൻ ബാർ - ReVanced ക്രമീകരണങ്ങൾ - "ഒരു ട്രാക്ക് പ്ലേ ചെയ്യുന്നതിന് മുമ്പ് പരസ്യങ്ങൾ കാണിക്കുന്നു -(ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്)" - പരസ്യങ്ങൾ വരുത്തുക (ആർട്ടിസ്റ്റുകളെ പിന്തുണയ്ക്കാൻ) - "ലാൻഡ്‌സ്‌കേപ്പ് മോഡ് അൺലോക്ക് ചെയ്യുന്നു -(ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്)" - ടാബ്ലെറ്റ് മോഡ് - വെബ്സൈറ്റ് - diff --git a/src/main/resources/music/translate/values-nl-rNL-v21/strings.xml b/src/main/resources/music/translate/values-nl-rNL-v21/strings.xml deleted file mode 100644 index c9bd5722f..000000000 --- a/src/main/resources/music/translate/values-nl-rNL-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast knop - Hides the Cast button at the top of the homepage - ADVERTENTIES - Ontwerp - Luisteren - Navigatie - "De muziekcategoriebalk bovenaan de startpagina verbergen -(vereist een herstart)" - Compacte koptekst - "Permanently keep the 250/251 opus codec -(requires an app restart)" - Permanently keep player minimized even if another track is played - Komt overeen met de kleur van de volledig scherm afspeler met de geminimaliseerde - Met afspelers overeenkomende kleuren - De kleur van de navigatiebalk instellen op zwart - Zwarte navigatiebalk - ReVanced instellingen - "Advertenties weergeven voor het afspelen van een nummer -(vereist dat de app opnieuw wordt opgestart)" - Advertenties inschakelen (om makers te ondersteunen) - "Liggende modus ontgrendelen -(vereist een herstart van de app)" - Tablet modus - diff --git a/src/main/resources/music/translate/values-pa-rIN-v21/strings.xml b/src/main/resources/music/translate/values-pa-rIN-v21/strings.xml deleted file mode 100644 index bc8b83930..000000000 --- a/src/main/resources/music/translate/values-pa-rIN-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - ਕਾਸਟ - ਹੋਮਪੇਜ ਦੇ ਸਿਖਰ \'ਤੇ ਕਾਸਟ ਬਟਨ ਨੂੰ ਲੁਕਾਉਂਦਾ ਹੈ - ਵਿਗਿਆਪਨ - ਡਿਜ਼ਾਈਨ - ਸੁਣ ਰਿਹਾ ਹੈ - ਨੇਵੀਗੇਸ਼ਨ - "ਹੋਮਪੇਜ ਦੇ ਸਿਖਰ 'ਤੇ ਸੰਗੀਤ ਸ਼੍ਰੇਣੀ ਪੱਟੀ ਨੂੰ ਲੁਕਾਉਂਦਾ ਹੈ -(ਇੱਕ ਐਪ ਰੀਸਟਾਰਟ ਦੀ ਲੋੜ ਹੈ)" - ਸੰਖੇਪ ਸਿਰਲੇਖ - "250/251 ਓਪਸ ਕੋਡੇਕ ਨੂੰ ਸਥਾਈ ਤੌਰ 'ਤੇ ਰੱਖੋ -(ਇੱਕ ਐਪ ਰੀਸਟਾਰਟ ਦੀ ਲੋੜ ਹੈ)" - ਪਲੇਅਰ ਨੂੰ ਸਥਾਈ ਤੌਰ \'ਤੇ ਘੱਟ ਤੋਂ ਘੱਟ ਰੱਖੋ ਭਾਵੇਂ ਕੋਈ ਹੋਰ ਟਰੈਕ ਚਲਾਇਆ ਜਾਵੇ - ਪੂਰੀ ਸਕਰੀਨ ਪਲੇਅਰ ਦੇ ਰੰਗ ਨੂੰ ਨਿਊਨਤਮ ਕੀਤੇ ਰੰਗ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ - ਰੰਗ ਮੈਚ ਖਿਡਾਰੀ - ਨੈਵੀਗੇਸ਼ਨ ਪੱਟੀ ਦੇ ਰੰਗ ਨੂੰ ਕਾਲੇ ਤੇ ਸੈੱਟ ਕਰਦਾ ਹੈ - ਕਾਲਾ ਨਵਬਾਰ - ReVanced ਸੈਟਿੰਗ - "ਇੱਕ ਟ੍ਰੈਕ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਵਿਗਿਆਪਨ ਦਿਖਾਉਂਦਾ ਹੈ -(ਇੱਕ ਐਪ ਰੀਸਟਾਰਟ ਦੀ ਲੋੜ ਹੈ)" - ADS ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ (ਕਲਾਕਾਰਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ) - "ਲੈਂਡਸਕੇਪ ਮੋਡ ਨੂੰ ਅਨਲੌਕ ਕਰਦਾ ਹੈ -(ਇੱਕ ਐਪ ਰੀਸਟਾਰਟ ਦੀ ਲੋੜ ਹੈ)" - ਟੈਬਲੇਟ ਮੋਡ - diff --git a/src/main/resources/music/translate/values-pl-rPL-v21/strings.xml b/src/main/resources/music/translate/values-pl-rPL-v21/strings.xml deleted file mode 100644 index e023897e6..000000000 --- a/src/main/resources/music/translate/values-pl-rPL-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Przycisk projekcji - Ukrywa przycisk projekcji znajdujący się na górnej części strony głównej - Reklamy - Design - Słuchanie - Nawigacja - "Ukrywa pasek kategorii muzyki na górze strony głównej -(wymaga ponownego uruchomienia aplikacji)" - Kompaktowy Nagłówek - "Utrzymuj kodek opus 250/251 -(wymagany restart aplikacji)" - Trwale utrzymuj odtwarzacz zminimalizowany, nawet jeśli odtwarzany jest inny utwór - Dopasuje kolor odtwarzacza w trybie pełnoekranowym do zminimalizowanego - Dopasowanie koloru odtwarzaczy - Ustawia kolor paska nawigacji na czarny - Czarny pasek nawigacji - Ustawienia ReVanced - "Pokaż reklamy przed odtwarzaniem utworu -(wymaga ponownego uruchomienia aplikacji)" - Włącz Reklamy (aby wspierać twórców) - "Odblokowuje tryb poziomy -(wymaga ponownego uruchomienia aplikacji)" - Tryb Tabletowy - diff --git a/src/main/resources/music/translate/values-pt-rBR-v21/strings.xml b/src/main/resources/music/translate/values-pt-rBR-v21/strings.xml deleted file mode 100644 index bdb89e6a0..000000000 --- a/src/main/resources/music/translate/values-pt-rBR-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Botão Transmitir - Oculta o botão de Transmissão no topo da página inicial - Anúncios - Aparência - Ouvindo - Navegação - "Oculta a barra de categorias de música no topo da página inicial -(requer a reinicialização do aplicativo)" - Cabeçalho compacto - "Manter permanentemente os codecs de opus 250/251 -(requer a reinicialização do aplicativo)" - Substituições de codecs - Manter o player minimizado permanentemente mesmo se outra música for reproduzida - Reprodutor minimizado permanente - Corresponder à cor do player de tela cheia com a minimizada - Igualar as cores dos \"players\" - Define a cor da barra de navegação para preto - Barra de Navegação Preta - Configurações do ReVanced - "Mostrar anúncios antes de tocar uma faixa -(requer a reinicialização do aplicativo)" - Ativar anúncios (para dar suporte aos artistas) - "Desbloqueia o modo paisagem -(requer a reinicialização do aplicativo)" - Modo Tablet - Site - diff --git a/src/main/resources/music/translate/values-pt-rPT-v21/strings.xml b/src/main/resources/music/translate/values-pt-rPT-v21/strings.xml deleted file mode 100644 index 5dffee4d4..000000000 --- a/src/main/resources/music/translate/values-pt-rPT-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Botão de transmissão - Oculta o botão Transmitir no topo da página inicial - ANÚNCIOS - Design - Ouvindo - Navegação - "Oculta a barra de categorias de música no topo da página inicial -(requer reinicialização da aplicação)" - Cabeçalho compacto - "Permanentemente mantenha o codec opus 250/251 -(requer reinicialização da aplicação)" - Sobrepor codificador - Mantenha o ‘player’ permanentemente minimizado mesmo se outra música for tocada - Alternar ‘player’ minimizado permanente - Corresponde à cor do ‘player’ em ecrã cheio com o minimizado - Colour Match Players - Define a cor da barra de navegação para negro - Barra de Navegação Negra - Configurações de ReVanced - "Mostra anúncios antes de tocar uma faixa -(requer reinicialização da aplicação)" - Activar ADS (para suportar artistas) - "Desbloqueia o modo horizontal -(requer reinicialização da aplicação)" - Modo Tablet - Site - diff --git a/src/main/resources/music/translate/values-ro-rRO-v21/strings.xml b/src/main/resources/music/translate/values-ro-rRO-v21/strings.xml deleted file mode 100644 index 63914fecf..000000000 --- a/src/main/resources/music/translate/values-ro-rRO-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast button - Hides the Cast button at the top of the homepage - Reclame - Design - Comutare Control - Navigare - "Ascunde bara de categorii pentru muzică din partea de sus a paginii de start -(necesită o repornire a aplicației)" - Antet compact - "Permanently keep the 250/251 opus codec -(requires an app restart)" - Permanently keep player minimized even if another track is played - Potrivește culoarea player-ului pe ecran întreg cu cea minimizată - Culoarea Corespunde Player-ului - Setează culoarea barei de navigare la negru - Navbar Negru - Setări ReVanced - "Arată reclame înainte de a rula o piesă -(necesită o repornire a aplicației)" - Activează Reclamele (pentru a susține artiștii) - "Deblochează modul peisaj -(necesită o repornire a aplicației)" - Mod Tabletă - diff --git a/src/main/resources/music/translate/values-ru-rRU-v21/strings.xml b/src/main/resources/music/translate/values-ru-rRU-v21/strings.xml deleted file mode 100644 index 23ab2d4e8..000000000 --- a/src/main/resources/music/translate/values-ru-rRU-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Кнопка трансляции - Скрывает кнопку трансляции в верхней части главной страницы - Реклама - Внешний вид - Прослушивание - Навигация - "Скрывает панель категорий музыки в верхней части главной страницы -(требуется перезапуск приложения)" - Компактная верхняя панель - "Постоянно использовать кодек opus 250/251 -(требуется перезапуск приложения)" - Переопределение кодека - Держать плеер свернутым, даже при переключении на другой трек - Держать плеер свернутым - Цвет свернутого плеера соответствует цвету полноэкранного плеера - Соответствие цвета плееров - Устанавливает черный цвет панели навигации - Черная панель навигации - Настройки ReVanced - "Показывает рекламу перед воспроизведением трека -(требуется перезапуск приложения)" - Включить рекламу (для поддержки исполнителей) - "Разблокирует альбомную ориентацию -(требуется перезапуск приложения)" - Режим планшета - Сайт - diff --git a/src/main/resources/music/translate/values-sk-rSK-v21/strings.xml b/src/main/resources/music/translate/values-sk-rSK-v21/strings.xml deleted file mode 100644 index 797a22b2c..000000000 --- a/src/main/resources/music/translate/values-sk-rSK-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Funkcia prenosu - Skryje tlačidlo Prenosu v hornej časti domovskej stránky - Reklama - Dizajn - Počúvanie - Navigácia - "Skryje panel s kategóriami hudby v hornej časti domovskej stránky -(vyžaduje reštart aplikácie)" - Kompaktné záhlavie - "Natrvalo ponechať kodek 250/251 opus -(vyžaduje reštart aplikácie)" - Prepisy kodekov - Natrvalo udržuj prehrávač minimalizovaný, aj keď sa prehráva iná skladba - Trvalý minimalizovaný prehrávač - Porovná farbu prehrávača na celú obrazovku s farbou minimalizovaného prehrávača - Porovnanie farby prehrávačov - Nastaví farbu navigačného panela na čiernu - Čierny NavBar - Nastavenia ReVanced - "Zobrazí reklamu pred prehratím skladby -(vyžaduje reštart aplikácie)" - Povoliť reklamu (na podporu umelcov) - "Odomkne režim na šírku -(vyžaduje reštart aplikácie)" - Režim tabletu - Webstránka - diff --git a/src/main/resources/music/translate/values-sv-rFI-v21/strings.xml b/src/main/resources/music/translate/values-sv-rFI-v21/strings.xml deleted file mode 100644 index 49341e0f2..000000000 --- a/src/main/resources/music/translate/values-sv-rFI-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast painike - Piilottaa Cast painikkeen aloitussivun yläosasta - MAINOKSET - Tyyli - Kuunnellaan - Navigointi - "Hides the music category bar at the top of the homepage -(requires an app restart)" - Kompakti ylätunniste - "Pidä pysyvästi 250/251 opus koodekki käytössä -( vaatii sovelluksen uudelleenkäynnistyksen)" - Pidä soitin pysyvästi pienennettynä toisen kappaleen aikana - Täsmää koko näytön soittimen värin pienennetyn kanssa - Täsmää soittimien värit - Asettaa navigointipalkin värin mustaksi - Musta navigointipalkki - ReVanced-asetukset - "Näytä mainokset ennen kappaleen soittamista -(vaatii sovelluksen uudelleenkäynnistyksen)" - Ota MAINOKSET käyttöön (artistien tukemista varten) - "Avaa vaakatilan lukituksen -(vaatii sovelluksen uudelleenkäynnistyksen)" - Tablettitila - diff --git a/src/main/resources/music/translate/values-sv-rSE-v21/strings.xml b/src/main/resources/music/translate/values-sv-rSE-v21/strings.xml deleted file mode 100644 index 6abf6a3ee..000000000 --- a/src/main/resources/music/translate/values-sv-rSE-v21/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - Cast knappen - Döljer Cast knappen högst upp på hemsidan - Annonser - Design - Lyssnande - Navigation - "Döljer musikkategorifältet högst upp på hemsidan -(kräver omstart av appen)" - Kompakt sidhuvud - "Behåll 250/251 opus-codec permanent -(kräver omstart av appen)" - Håll spelaren minimerad även om ett annat spår spelas - Matchar fullskärmsspelarens färg med den minimerade - Färg matcha spelare - Sätter navigeringsfältets färg till svart - Svart navigeringsfält - Vancerade inställningar - "Visar annonser innan det spelas ett spår -(kräver omstart av appen)" - Aktivera annonser (för att stödja artister) - "Låser upp landskapsläge -(kräver omstart av appen)" - Surfplatts läge - diff --git a/src/main/resources/music/translate/values-ta-rIN-v21/strings.xml b/src/main/resources/music/translate/values-ta-rIN-v21/strings.xml deleted file mode 100644 index 02938e309..000000000 --- a/src/main/resources/music/translate/values-ta-rIN-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - வார்ப்பு பொத்தான் - முகப்பு பக்கத்தில் மேலே உள்ள வார்ப்பு பொத்தானை மறைக்க - விளம்பரங்கள் - வடிவமைப்பு - கேட்கின்ற - வழிசெலுத்துதல் - "முகப்பு பக்கத்தின் மேலே உள்ள இசை வகைகளை மறைக்க -(செயலி மறு தொடக்கம் தேவைப்படும்)" - கச்சிதமான தலைப்பு - "250/251 ஓபஸ் கொடெக்கை நிரந்தரமாக வைக்க -(செயலி மறு தொடக்கம் தேவைப்படும்)" - கொடெக்ஸை மீறவும் - இன்னொரு ஒலிதடம் ஒலித்தாலும் பிளேயரை நிரந்தரமாகச் சுருக்கி வைக்கவும் - நிரந்தரமாகச் சுருக்கபட்ட பிளேயர் - முழு பிளேயரின் கலரை சுருக்கப்பட்ட ஒன்றுடன் பொருத்துவதற்கு - பிளேயருக்கு பொருத்தமான கலர் - வழிசெலுத்துதல் பட்டையின் கலரை கருப்பாக வைக்க - கருப்பு வழிசெலுத்துதல் பட்டை - ரீவான்ஸ்டு அமைப்புகள் - "ஒலிதடத்தின் முன்பாக விளம்பரங்களைக் காண்பிக்க -(செயலி மறுதொடக்கம் தேவைப்படும்)" - விளம்பரங்களைச் செயல்படுத்த(கலைஞர்களை ஊக்குவிப்பதற்காக) - "லேண்ட்ஸ்கேப் முறையைச் செயல்படுத்த -(செயலி மறுதொடக்கம் தேவைப்படும்)" - கைக்கணினி முறை - இணையதளம் - diff --git a/src/main/resources/music/translate/values-th-v21/strings.xml b/src/main/resources/music/translate/values-th-v21/strings.xml deleted file mode 100644 index d590372cd..000000000 --- a/src/main/resources/music/translate/values-th-v21/strings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - ปุ่มสตรีมสด - ซ่อนปุ่มสตรีมสดด้านบนในหน้าเเรก - โฆษณา - ออกเเบบหน้าต่าง - การฟังเสียง - เเทบสามปุ่มด้านล่างจอ - "ซ่อนเเทบหมวดหมู่เพลงด้านบนในหน้าเเรก -(จำเป็นต้องรีเเอพ)" - ส่วนของหน้าต่างด้านบน - "บังคับ 250/251 opus codec ในเเอพ -(จำเป็นต้องรีเเอพ)" - ปล่อยให้หน้าต่างย่อของเพลงเล่นต่อไประหว่างที่เเทร็คเพลงอื่นเเทรกเข้ามา - เปลี่ยนสีหน้าต่างตัวเล่นขนาดย่อให้เข้ากับสีตัวเต็มจอ - สีหน้าต่างตัวเล่น - เปลี่ยนสีเเทบสามปุ่มด้านล่างจอให้เป็นสีดำ - เเทบสามปุ่มสีดำ - ต้องค่า ReVanced เพิ่มเติม - "เปิดให้ดูโฆษณาก่อนที่จะเล่นเเทร็คเพลง -(จำเป็นต้องรีเเอพ)" - เปิดให้ดูโฆษณา (เพื่อสร้างรายได้ให้กับศิลปิน) - "ปลดล็อคโหมดเเนวนอนของเเอพ -(จำเป็นต้องรีเเอพ)" - โหมดสำหรับเเท็บเเล็ต - Website - diff --git a/src/main/resources/music/translate/values-tr-rTR-v21/strings.xml b/src/main/resources/music/translate/values-tr-rTR-v21/strings.xml deleted file mode 100644 index 9212a71db..000000000 --- a/src/main/resources/music/translate/values-tr-rTR-v21/strings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - Yayınlama butonu - Ana sayfanın üstündeki yayınlama butonunu gizle - Reklamlar - Tasarım - Dinleme - Gezinme - "Ana sayfanın üstündeki müzik kategorilerini kaldırır -(uygulamanın yeniden başlatılması gerekir)" - Kompakt Başlık - "Kalıcı olarak 250/251 opus kodeğini tut. -( Uygulamayı yeniden başlatmayı gerektirir)" - Kodek\'i geçersiz kılma - Başka bir parça çalınsa bile oynatıcıyı kalıcı olarak simge durumuna küçültün - Kalıcı küçültülmüş oynatıcı - Tam ekran oynatıcının rengi, küçültülmüş oynatıcının rengiyle eşleşir - Oynatıcılar Aynı Renkte - Gezinme çubuğunun rengini siyaha ayarlar - Siyah Gezinme Çubuğu - ReVanced Extended ayarları - "Bir parça çalınmadan önce reklama yer verir (uygulamanın yeniden başlatılması gerekir)" - Reklamlara İzin Ver (sanatçıları desteklemek için) - "Yatay ekran modunun kilidini kaldırır -(uygulamanın yeniden başlatılması gerekir)" - Tablet Modu - Web sitesi - diff --git a/src/main/resources/music/translate/values-uk-rUA-v21/strings.xml b/src/main/resources/music/translate/values-uk-rUA-v21/strings.xml deleted file mode 100644 index 6df336977..000000000 --- a/src/main/resources/music/translate/values-uk-rUA-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Кнопка трансляції - Приховує кнопку трансляції у верхній частині домашньої сторінки - Реклама - Дизайн - Слухає - Навігація - "Приховує панель категорій музики у верхній частині головної сторінки -(потрібен перезапуск програми)" - Компактний Заголовок - "Постійно тримати кодек opus 250/251 -(потрібне перезавантаження програми)" - Перевизначення кодека - Постійно тримати згорнутим плеєр, навіть якщо грає інший трек - Постійний мінімізований програвач - Колір згорнутого плеєра відповідає кольору повноекранного плеєра - Гравці з підбором кольору - Встановлює чорний колір навігаційної панелі - Чорна навігаційна панель - Налаштування ReVanced - "Показує рекламу перед відтворенням треку -(потрібно перезапустити додаток)" - Увімкнути ADS (для підтримки виконавців) - "Розблокує ландшафтний режим -(потрібний перезапуск програми)" - Режим планшету - Вебсайт - diff --git a/src/main/resources/music/translate/values-vi-rVN-v21/strings.xml b/src/main/resources/music/translate/values-vi-rVN-v21/strings.xml deleted file mode 100644 index c9fa74f13..000000000 --- a/src/main/resources/music/translate/values-vi-rVN-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Truyền - Ẩn nút Truyền ở đầu trang chủ - Quảng cáo - Thiết kế - Nghe - Điều hướng - "Ẩn thanh danh mục nhạc ở đầu trang chủ -(yêu cầu khởi động lại ứng dụng)" - Tiêu đề nhỏ gọn - "Giữ vĩnh viễn mã opus 250/251 -(yêu cầu khởi động lại ứng dụng)" - Ghi đè codec - Luôn thu nhỏ trình phát ngay cả khi một bản nhạc khác được phát - Chuyển đổi trình phát thu nhỏ - Khớp màu trình phát toàn màn hình với màu thu nhỏ - Trình phát kết hợp màu sắc - Đặt màu thanh điều hướng thành màu đen - NavBar màu đen - Cài đặt ReVanced - "Hiển thị quảng cáo trước khi phát một bản nhạc -(yêu cầu khởi động lại ứng dụng)" - Bật ADS (để hỗ trợ nghệ sĩ) - "Cho phép màn hình xoay ngang -(yêu cầu khởi động lại ứng dụng)" - Chế độ máy tính bảng - Trang Web - diff --git a/src/main/resources/music/translate/values-zh-rCN-v21/strings.xml b/src/main/resources/music/translate/values-zh-rCN-v21/strings.xml deleted file mode 100644 index 5d1787fd2..000000000 --- a/src/main/resources/music/translate/values-zh-rCN-v21/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - 投屏按钮 - 隐藏主页顶部的投屏按钮 - 广告 - 外观 - 音乐偏好 - 界面 - "隐藏主页顶部的音乐分类 -(需要重启应用)" - 简洁顶栏 - "始终保持 250/251 opus 编码 -(需要重启应用)" - 编码覆盖 - 即使播放另一曲目也始终保持导航栏播放器 - 始终保持导航栏播放器 - 使导航栏播放器与全屏播放器颜色一致 - 播放器颜色统一 - 将导航栏设为黑色 - 黑色导航栏 - ReVanced 设置 - "播放曲目之前显示广告 -(需要重启应用)" - 启用广告(以支持作者) - "解锁横屏模式 -(需要重启应用)" - 平板模式 - 网站 - diff --git a/src/main/resources/music/translate/values-zh-rTW-v21/strings.xml b/src/main/resources/music/translate/values-zh-rTW-v21/strings.xml deleted file mode 100644 index 88c2d8329..000000000 --- a/src/main/resources/music/translate/values-zh-rTW-v21/strings.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - 投放按鈕 - 隱藏首頁頂部的投放按鈕 - 廣告 - 版面 - 聆聽 - 介面 - "隱藏位於主畫面上方的音樂分類列 -(需要重新啟動程式)" - 緊湊標題 - "永久保留 250/251 opus 編解碼器(需要重新啟動程式)" - 解碼器覆寫 - 就算播放另一首曲目時也持續使用最小化播放器 - 永遠使用最小化播放器 - 讓播放列顏色和全螢幕播放器一致 - 與播放器顏色一致 - 將導航列設成黑色 - 黑色導航欄 - ReVanced 設定 - "在播放歌曲以前播放廣告 -(需要重新啟動程式)" - 啟用廣告(可以支持創作者們) - "啟用橫向模式 -(需要重新啟動程式)" - 平板模式 - 網站 - diff --git a/src/main/resources/music/translations/be-rBY/strings.xml b/src/main/resources/music/translations/be-rBY/strings.xml new file mode 100644 index 000000000..8070a48e0 --- /dev/null +++ b/src/main/resources/music/translations/be-rBY/strings.xml @@ -0,0 +1,32 @@ + + + Рэклама + Афармленне + Праслухванне + Навігацыя + Перафарбоўвае навігацыйную панэль у чорны цвет. + Ўключыць чорную навігацыйную панэль + Адпавядае колеру поўнаэкраннага плэера з згорнутым. + Ўключыць каляровае адпаведнасць прайгравальніка + Трымаць плэер заўсёды згорнутым, нават калі прайграецца іншы трэк. + Ўключыць прымусова згорнуты плэер + "Ўключыць пастаяннае перамешванне, нават калі прайграецца іншы трэк. +(недаступна ў Канадзе)" + Ўключыць пастаяннае перамешванне + "Ўключыць 250/251 Opus кодэк пры прайграванні гуку. +(патрабуецца перазапуск прыкладання)" + Ўключыць Opus кодэк + "Разблакіруе рэжым планшэту на тэлефоне. (патрабуе перазапуск праграмы)" + Уключыць рэжым планшэту + Дадае шэрае адценне да плэеру, каб зменшыць нагрузку для вачэй. + Дзэн-рэжым + Хавае кнопку прайгравання ў верхняй частцы хатняй старонкі і ў верхняй частцы плэера. + Схаваць кнопку трансляцыі + "Схаваць панэль катэгорый музыкі ў верхняй частцы галоўнай старонкі. +(патрабуецца перазапуск прыкладання)" + Схаваць кампактныя загаловак + "Схаваць рэкламу перад прайграваннем трэка. +(патрабуецца перазапуск прыкладання)" + Схаваць рэкламу ў музыцы + Налады ReVanced + diff --git a/src/main/resources/music/translations/bn/strings.xml b/src/main/resources/music/translations/bn/strings.xml new file mode 100644 index 000000000..34fdc953c --- /dev/null +++ b/src/main/resources/music/translations/bn/strings.xml @@ -0,0 +1,31 @@ + + + বিজ্ঞাপন + নকশা + শুনছেন + নেভিগেশন + নেভিগেশন বার এর রং কালো সেট করে। + কালো নেভিগেশন বার সক্রিয় করুন + পূর্ণস্ক্রীন প্লেয়ারের রং মিনিমাইজ করা প্লেয়ারের রং এর সাথে মিলবে। + প্লেয়ারের রং মিলানো সক্রিয় করুন + প্লেয়ারকে স্থায়ীভাবে মিনিমাইজ করে রাখুন এমনকি যদি অন্য ট্র্যাক চালানো হয়। + জোরপূর্বক মিনিমাইজড প্লেয়ার সক্রিয় করুন + "অন্য ট্র্যাক বাজানো হলেও জোরপূর্বক শাফেল সক্রিয় করুন করুন৷ +(কানাডায় কাজ করবে না)" + জোরপূর্বক শাফেল সক্রিয় করুন + "অডিও চালানোর সময় ২৫০/২৫১ opus কোডেক সক্রিয় করুন। (অ্যাপ পুনঃচালু করতে হবে)" + Opus কোডেক সক্রিয় করুন + "ফোনে আড়াআড়ি মোড সক্রিয় করুন। (অ্যাপ পুনঃচালু করতে হবে)" + ট্যাবলেট মোড সক্রিয় করুন + চোখের চাপ কমাতে ভিডিও প্লেয়ারে ধূসর আভা যোগ করুন। + জেন মোড সক্রিয় করুন + মূল পাতা এবং প্লেয়ারের উপর থেকে কাস্ট বাটন লুকিয়ে রাখে। + কাস্ট বাটন লুকান + "হোমপেজের উপরে মিউজিক ক্যাটাগরি বার লুকিয়ে রাখে। +(অ্যাপ পুনঃচালু করতে হবে)" + কমপ্যাক্ট ব্যানার লুকান + "একটি ট্র্যাক প্লে করার আগে বিজ্ঞাপন লুকান। +(অ্যাপ পুনঃচালু করতে হবে)" + সঙ্গীতের বিজ্ঞাপন লুকান + ReVanced সেটিং + diff --git a/src/main/resources/music/translations/de-rDE/strings.xml b/src/main/resources/music/translations/de-rDE/strings.xml new file mode 100644 index 000000000..05e7094e5 --- /dev/null +++ b/src/main/resources/music/translations/de-rDE/strings.xml @@ -0,0 +1,33 @@ + + + Werbung + Design + Wird gehört + Navigation + Ändert die Farbe der Navigationsleiste zu schwarz. + Aktiviere schwarze Navigationsleiste + Gleicht die Farben des Vollbild- und des Miniplayers an. + Aktiviere farbanpassende Player + Lasse den Player minimiert, selbst wenn ein neuer Track abgespielt wird. + Minimierten Player erzwingen + "Aktiviere erzwungene Zufallswiedergabe, auch wenn ein anderer Titel abgespielt wird. +(Nicht verfügbar in Kanada)" + Erzwungene Zufallswiedergabe aktivieren + "Aktiviere den 250/251-Opus-Codec bei der Audiowiedergabe. +(erfordert einen Neustart der App)" + Opus Codec aktivieren + "Querformat auf dem Telefon aktivieren. +(erfordert einen Neustart der App)" + Tablet-Modus aktivieren + Fügt dem Videoplayer einen grauen Farbton hinzu, um die Augenbelastung zu reduzieren. + Zen-Modus aktivieren + Versteckt den Cast-Button oben auf der Homepage und oben auf dem Player. + Verstecke Cast-Button + "Versteckt die Musikkategorieleiste oben auf der Homepage. +(erfordert einen Neustart der App)" + Verstecke kompakte Kopfzeile + "Werbung vor dem Abspielen eines Titels ausblenden. +(erfordert Neustart der App)" + Musikwerbung ausblenden + ReVanced Einstellungen + diff --git a/src/main/resources/music/translations/es-rES/strings.xml b/src/main/resources/music/translations/es-rES/strings.xml new file mode 100644 index 000000000..5b231f23b --- /dev/null +++ b/src/main/resources/music/translations/es-rES/strings.xml @@ -0,0 +1,33 @@ + + + Anuncios + Diseño + Escuchando + Navegación + Establece el color de la barra de navegación en negro. + Activar barra de navegación negra + Hace coincidir el color del reproductor a pantalla completa con el de minimizado. + Activar coincidencia de color de reproductores + Mantiene el reproductor permanentemente minimizado incluso si se reproduce otra pista. + Activar reproductor minimizado forzado + "Activa la reproducción aleatoria incluso si se reproduce otra pista. +(No disponible en Canadá)" + Activar reproducción aleatoria forzada + "Activa el códec opus 250/251 al reproducir audio. +(requiere reiniciar la aplicación)" + Activar códec opus + "Activa el modo horizontal en el teléfono. +(requiere reiniciar la aplicación)" + Activar modo tableta + Añade un tinte gris al reproductor de vídeo para reducir la fatiga visual. + Activar modo zen + Oculta el botón de trasmisión en la parte superior de la página de inicio y en la parte superior del reproductor. + Ocultar botón de transmisión + "Oculta la barra de categorías de música en la parte superior de la página de inicio. +(requiere reiniciar la aplicación)" + Ocultar encabezado compacto + "Oculta los anuncios antes de reproducir una pista. +(requiere reiniciar la aplicación)" + Ocultar anuncios de música + Ajustes de ReVanced + diff --git a/src/main/resources/music/translations/fr-rFR/strings.xml b/src/main/resources/music/translations/fr-rFR/strings.xml new file mode 100644 index 000000000..420dddd94 --- /dev/null +++ b/src/main/resources/music/translations/fr-rFR/strings.xml @@ -0,0 +1,33 @@ + + + Publicité + Design + En écoute + Navigation + Définit la couleur de la barre de navigation en noir. + Activer la barre de navigation noire + Correspondre la couleur du lecteur plein écran avec celle réduite. + Activer les lecteurs qui correspondent aux couleurs + Gardez le lecteur en permanence minimisé même si une autre piste est jouée. + Activer le forcage du lecteur minimisée + "Activer la lecture aléatoire forcée même si une autre piste est jouée. +(Non disponible au Canada)" + Activer le glissement de force + "Activer le codec opus 250/251 lors de la lecture audio. +(nécessite un redémarrage de l’application)" + Activer le codec opus + "Activer le mode paysage sur le téléphone. +(nécessite un redémarrage de l'application)" + Activer la mise en page tablette + Ajoute une teinte grise au lecteur vidéo pour réduire la fatigue oculaire. + Activer le mode zen + Cache le bouton de Cast en haut de la page d’accueil et en haut du lecteur. + Cacher le bouton de Cast + "Cache la de catégorie de musique en haut de la page d’accueil. +(nécessite un redémarrage de l’application)" + Cacher l\'en-tête compact + "Cache les publicités avant de jouer une piste. +(nécessite un redémarrage de l’application)" + Cacher les publicités musicales + Paramètres ReVanced Music + diff --git a/src/main/resources/music/translations/hi-rIN/strings.xml b/src/main/resources/music/translations/hi-rIN/strings.xml new file mode 100644 index 000000000..3d2b663a6 --- /dev/null +++ b/src/main/resources/music/translations/hi-rIN/strings.xml @@ -0,0 +1,33 @@ + + + विज्ञापन + डिज़ाइन + सुन रहे हैं + नेविगेशन + नेविगेशन-बार का रंग काला सेट करें + काला नेविगेशन-बार चालू करें + फुलस्क्रीन प्लेयर का रंग मिनीमाइज वाले के जैसा कर देता है। + टाइटल-प्लेयर रंग का आपस मे मेल चालू करें + प्लेयर को मिनीमाइज ही रखें भले ही दूसरा ट्रैक चल रहा हो + मिनीमाइज प्लेयर को फोर्स करें + "शफ़ल को फोर्स करें तब भी जब दूसरा ट्रैक बज रहा हो +(कनाडा में उपलब्ध नहीं)" + शफ़ल को फ़ोर्स करें + "250/251 ओपस कोडेक को चालू करें जब गाना बज रहा हो +(एप्प रीस्टार्ट करना होगा)" + ओपस कोडेक चालू करें + "लैंडस्केप मोड को चालू करें +(एप्प रीस्टार्ट करना होगा)" + टैबलेट मोड चालू करें + आंखों पर जोर कम करने के लिए वीडियो प्लेयर में ग्रे-टिंट जोड़ता है + \'ज़ेन-मोड\' चालू करें + \'कास्ट-बटन\' को प्लेयर और होमपेज से छुपाएं + \'कास्ट बटन\' छुपाएं + "होम पेज के शुरुआत में मौजूद 'म्यूजिक-कैटेगरी' को छिपाएं +(एप्प रिस्टार्ट करना होगा)" + \'कॉम्पैक्ट हैडर\' छिपाएं + "गाना चलाने से पहले विज्ञापन बन्द करें +(एप्प रीस्टार्ट करना होगा)" + म्यूजिक विज्ञापन बन्द करें + ReVanced सेटिंग्स + diff --git a/src/main/resources/music/translations/id-rID/strings.xml b/src/main/resources/music/translations/id-rID/strings.xml new file mode 100644 index 000000000..d4ee2409c --- /dev/null +++ b/src/main/resources/music/translations/id-rID/strings.xml @@ -0,0 +1,33 @@ + + + Iklan + Desain + Listening + Navigasi + Mengatur warna bar navigasi menjadi hitam. + Aktifkan navbar hitam + Mencocokkan warna pemutar fullscreen dengan yang diperkecil. + Aktifkan pencocokan warna pemutar + Mempertahankan pemutar agar tetap diminimalkan secara permanen meskipun trek lain diputar. + Aktifkan paksa pemutar yang diminimalkan + "Mengaktifkan paksa shuffle meskipun trek lain diputar. +(Tidak tersedia di Kanada)" + Aktifkan paksa shuffle + "Mengaktifkan codec opus 250/251 saat memutar audio. +(memerlukan muat ulang aplikasi)" + Aktifkan codec opus + "Mengaktifkan mode lanskap di ponsel. +(memerlukan muat ulang aplikasi)" + Aktifkan mode tablet + Menambahkan rona abu-abu ke pemutar video untuk mengurangi ketegangan mata. + Aktifkan mode zen + Menyembunyikan tombol cast di bagian atas beranda dan di bagian atas pemutar. + Sembunyikan tombol cast + "Menyembunyikan bar kategori musik di bagian atas beranda. +(memerlukan muat ulang aplikasi)" + Sembunyikan spanduk compact + "Menyembunyikan iklan sebelum memutar trek. +(memerlukan muat ulang aplikasi)" + Sembunyikan iklan musik + Pengaturan ReVanced + diff --git a/src/main/resources/music/translations/in/strings.xml b/src/main/resources/music/translations/in/strings.xml new file mode 100644 index 000000000..d4ee2409c --- /dev/null +++ b/src/main/resources/music/translations/in/strings.xml @@ -0,0 +1,33 @@ + + + Iklan + Desain + Listening + Navigasi + Mengatur warna bar navigasi menjadi hitam. + Aktifkan navbar hitam + Mencocokkan warna pemutar fullscreen dengan yang diperkecil. + Aktifkan pencocokan warna pemutar + Mempertahankan pemutar agar tetap diminimalkan secara permanen meskipun trek lain diputar. + Aktifkan paksa pemutar yang diminimalkan + "Mengaktifkan paksa shuffle meskipun trek lain diputar. +(Tidak tersedia di Kanada)" + Aktifkan paksa shuffle + "Mengaktifkan codec opus 250/251 saat memutar audio. +(memerlukan muat ulang aplikasi)" + Aktifkan codec opus + "Mengaktifkan mode lanskap di ponsel. +(memerlukan muat ulang aplikasi)" + Aktifkan mode tablet + Menambahkan rona abu-abu ke pemutar video untuk mengurangi ketegangan mata. + Aktifkan mode zen + Menyembunyikan tombol cast di bagian atas beranda dan di bagian atas pemutar. + Sembunyikan tombol cast + "Menyembunyikan bar kategori musik di bagian atas beranda. +(memerlukan muat ulang aplikasi)" + Sembunyikan spanduk compact + "Menyembunyikan iklan sebelum memutar trek. +(memerlukan muat ulang aplikasi)" + Sembunyikan iklan musik + Pengaturan ReVanced + diff --git a/src/main/resources/music/translations/it-rIT/strings.xml b/src/main/resources/music/translations/it-rIT/strings.xml new file mode 100644 index 000000000..72693c45a --- /dev/null +++ b/src/main/resources/music/translations/it-rIT/strings.xml @@ -0,0 +1,33 @@ + + + Pubblicità + Aspetto + Ascolto + Navigazione + Imposta il colore della barra di navigazione su nero. + Abilita la barra di navigazione nera + Allinea il colore del lettore a schermo intero con quello in secondo piano. + Abilita l\'abbinamento di colore dei Riproduttori + Mantieni il riproduttore in secondo piano anche se un\'altra traccia viene riprodotta. + Abilita il riproduttore in secondo piano forzato + "Abilita la riproduzione casuale forzata anche se un altro brano sta venendo riprodotto. +(Non disponibile in Canada)" + Abilita la riproduzione casuale forzata + "Abilita il codec opus 250/251 quando durante la riproduzione audio. +(Richiede il riavvio dell'app)" + Abilita il codec opus + "Abilita la modalità orizzontale sul telefono. +(Richiede il riavvio dell'app)" + Abilita la modalità tablet + Aggiunge una sfumatura grigia al riproduttore video per ridurre l\'affaticamento degli occhi. + Abilita la modalità zen + Nascondo il pulsante cast nella parte superiore della homepage e in cima al riproduttore. + Nascondi il bottone cast + "Nascondi la barra delle categorie musicali in cima alla homepage. +(richiede il riavvio dell'app)" + Nascondi l\'intestazione compatta + "Nascondi le pubblicità prima di riprodurre un brano. +(richiede il riavvio dell'app)" + Nascondi le pubblicità musicali + Impostazioni ReVanced + diff --git a/src/main/resources/music/translations/ko-rKR/strings.xml b/src/main/resources/music/translations/ko-rKR/strings.xml new file mode 100644 index 000000000..6a5e9364b --- /dev/null +++ b/src/main/resources/music/translations/ko-rKR/strings.xml @@ -0,0 +1,34 @@ + + + 광고 + 디자인 + 청취 + 내비게이션 + 내비게이션 바 색상을 검정으로 설정합니다. + 검정 내비게이션 바 활성화 + 최소화 상태의 플레이어와 전체화면 플레이어의 색상을 통일시킵니다. + 색상 일치 플레이어 활성화 + 다른 트랙이 재생되더라도 플레이어를 항상 최소화 상태로 유지합니다. + 플레이어를 항상 최소화 상태로 유지 + "다른 트랙이 재생되더라도 셔플을 활성화 합니다. +(캐나다에서는 사용할수 없음)" + 항상 셔플 활성화 + "음악을 재생할 때 250/251 opus 코덱을 사용합니다. +(앱을 재시작해야 적용됨)" + opus 코덱 활성화 + "앱을 가로로 회전할 수 있도록 합니다 . +(앱을 재시작해야 적용됨)" + 태블릿 모드 활성화 + 동영상 플레이어의 색상을 회색조로 설정해 눈의 피로를 줄입니다. + 집중 모드 활성화 + 홈페이지 상단과 플레이어 상단에 있는 크롬 캐스트 버튼을 숨깁니다. + 크롬캐스트 버튼 제거 + "홈페이지 상단의 음악 카테고리 바를 숨깁니다 . +(앱을 재시작해야 적용됨)" + 음악 카테고리 바 제거 + "트랙을 재생하기 전 광고를 제거합니다. +(앱을 재시작해야 적용됨)" + 음악 광고 제거 + ReVanced 설정 + + diff --git a/src/main/resources/music/translations/pt-rBR/strings.xml b/src/main/resources/music/translations/pt-rBR/strings.xml new file mode 100644 index 000000000..06785a1a8 --- /dev/null +++ b/src/main/resources/music/translations/pt-rBR/strings.xml @@ -0,0 +1,33 @@ + + + Anúncios + Aparência + Ouvindo + Navegação + Defina a cor da barra de navegação para preto. + Ativar a barra de navegação preta + Corresponder à cor do player de tela cheia com a minimizada. + Ativar players de combinação de cores + Manter o player permanentemente minimizado mesmo se outra faixa for tocada. + Forçar o reprodutor minimizado + "Ativar o modo aleatório mesmo que outra faixa seja reproduzida. +(não está disponível no Canadá)" + Forçar o modo aleatório + "Ative o codec de opus 250/251 ao reproduzir áudio. +(requer uma reinicialização do aplicativo)" + Ativar codec opus + "Ativa o modo paisagem no celular. +(requer uma reinicialização do aplicativo)" + Ativar modo tablet + Adiciona uma tonalidade cinza ao reprodutor de vídeo para reduzir o cansaço visual. + Habilitar o modo calmo + Oculta o botão transmitir no topo da página inicial e no topo do reprodutor. + Ocultar o botão de transmissão + "Oculta a barra de categorias de música no topo da página inicial. +(requer uma reinicialização do aplicativo)" + Ocultar banners compactos + "Esconder os anúncios antes de tocar uma faixa +(requer uma reinicialização do aplicativo)" + Ocultar os anúncios nas músicas + Configurações do ReVanced + diff --git a/src/main/resources/music/translations/ru-rRU/strings.xml b/src/main/resources/music/translations/ru-rRU/strings.xml new file mode 100644 index 000000000..4bba4ec4a --- /dev/null +++ b/src/main/resources/music/translations/ru-rRU/strings.xml @@ -0,0 +1,33 @@ + + + Реклама + Внешний вид + Прослушивание + Навигация + Устанавливает черный цвет панели навигации. + Включить черную панель навигации + Цвет свернутого плеера соответствует цвету полноэкранного плеера. + Включить цветовое соответствие плееров + Держать плеер всегда свернутым, даже если проигрывается другой трек. + Включить постоянный свёрнутый проигрыватель + "Включить постоянное перемешивание, даже если проигрывается другой трек. +(недоступно в Канаде)" + Включить постоянное перемешивание + "Включить 250/251 opus кодек при воспроизведении звука. +(требуется перезапуск приложения)" + Включить opus кодек + "Включить альбомную ориентацию для телефона +(требуется перезапуск приложения)" + Планшетный режим + Добавляет серый оттенок в видеоплеер, чтобы уменьшить нагрузку на глаза. + Включить режим Дзен + Скрывает кнопку проигрывания в верхней части домашней страницы и в верхней части плеера. + Скрыть кнопку трансляции + "Скрыть панель категорий музыки в верхней части главной страницы +(требуется перезапуск приложения)" + Скрыть компактный заголовок + "Скрыть рекламу перед воспроизведением трека +(требуется перезапуск приложения)" + Скрыть музыкальную рекламу + Настройки ReVanced + diff --git a/src/main/resources/music/translations/tr-rTR/strings.xml b/src/main/resources/music/translations/tr-rTR/strings.xml new file mode 100644 index 000000000..326321506 --- /dev/null +++ b/src/main/resources/music/translations/tr-rTR/strings.xml @@ -0,0 +1,13 @@ + + + Reklamlar + Tasarım + Dinleme + Gezinme + Gezinme çubuğunun rengini siyaha ayarlar. + Siyah gezinme çubuğunu aktifleştir + Tam ekran oynatıcının rengi, küçültülmüş oynatıcının rengiyle eşleşir. + Oynatıcı renk eşlemesini aktifleştir + Başka bir kayıt oynatılıyor ise oynatıcıyi tamamen küçült. + Zorla küçültülmüş pencereyi aktifleştir + diff --git a/src/main/resources/music/translations/uk-rUA/strings.xml b/src/main/resources/music/translations/uk-rUA/strings.xml new file mode 100644 index 000000000..32ed9d31a --- /dev/null +++ b/src/main/resources/music/translations/uk-rUA/strings.xml @@ -0,0 +1,33 @@ + + + Реклама + Дизайн + Прослуховування + Навігація + Встановлює чорний колір навігаційної панелі. + Включає чорну навігаційну панель + Колір згорнутого програвача відповідає кольору повноекранного програвача. + Увімкнути колір, які відповідають програвач + Тримати програвач в згорнутому вигляді, навіть якщо відтворюється інший трек. + Увімкнути примусово згорнутий програвач + "Увімкнути перемішування без перемикання треків, навіть якщо відтворюється інша пісня. +(не доступно в Канаді)" + Увімкнути примусове перемішування + "Увімкнути 250/251 Opus кодек при відтворенні аудіо. +(потрібен перезапуск програми)" + Увімкнути Opus кодек + "Розблокує ландшафтний режим на телефоні. +(потрібний перезапуск програми)" + Увімкнути планшетний інтерфейс + Додає сірий відтінок у відеоплеєр, щоб зменшити навантаження на очі. + Дзен-режим + Приховує кнопку трансляції в верхній частині головної сторінки та в верхній частині плеєра. + Сховати кнопку трансляції + "Приховує панель категорій музики у верхній частині головної сторінки. +(потрібен перезапуск програми)" + Вилучення компактного заголовка + "Приховати рекламу перед відтворенням треку. +(потрібен перезапуск програми)" + Приховати рекламу в музиці + Налаштування ReVanced + diff --git a/src/main/resources/music/translations/zh-rCN/strings.xml b/src/main/resources/music/translations/zh-rCN/strings.xml new file mode 100644 index 000000000..e37087d6a --- /dev/null +++ b/src/main/resources/music/translations/zh-rCN/strings.xml @@ -0,0 +1,33 @@ + + + 广告 + 外观 + 音乐偏好 + 界面 + 将导航栏设为黑色 + 黑色导航栏 + 使导航栏播放器与全屏播放器颜色一致. + 匹配播放器颜色 + 保持播放器最小化,即使播放另一首曲目 + 强制最小化播放器 + "强制随机播放,即使播放另一曲目 +(在加拿大不可用)" + 强制随机播放 + "播放音频时启用 250/251 OPUS 编解码器 +(需要重启应用)" + OPUS 编解码器 + "在手机启用横屏模式 +(需要重启应用)" + 平板模式 + 在视频播放器上添加灰色阴影以减少眼睛疲劳 + 禅定模式 + 隐藏主页顶部和播放器顶部的投屏按钮 + 投屏按钮 + "隐藏主页顶部的音乐分类 +(需要重启应用)" + 紧凑横幅 + "隐藏播放曲目前的广告 +(需要重启应用)" + 音乐广告 + ReVanced 设置 + diff --git a/src/main/resources/music/translations/zh-rTW/strings.xml b/src/main/resources/music/translations/zh-rTW/strings.xml new file mode 100644 index 000000000..21d958892 --- /dev/null +++ b/src/main/resources/music/translations/zh-rTW/strings.xml @@ -0,0 +1,10 @@ + + + 廣告 + 版面設計 + 正在收聽 + 導覽列 + 將導航列設成黑色. + 啟用黑色導覽列 + 讓播放列顏色和全螢幕播放器一致. +