diff --git a/src/main/kotlin/app/revanced/patches/music/player/newplayerbackground/NewPlayerBackgroundPatch.kt b/src/main/kotlin/app/revanced/patches/music/player/newplayerbackground/NewPlayerBackgroundPatch.kt index 0dabfeb4c..f6741dc6a 100644 --- a/src/main/kotlin/app/revanced/patches/music/player/newplayerbackground/NewPlayerBackgroundPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/player/newplayerbackground/NewPlayerBackgroundPatch.kt @@ -7,7 +7,6 @@ import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.music.player.newplayerbackground.fingerprints.NewPlayerBackgroundFingerprint -import app.revanced.patches.music.utils.playerlayouthook.PlayerLayoutHookPatch import app.revanced.patches.music.utils.settings.SettingsPatch import app.revanced.util.enum.CategoryType import app.revanced.util.integrations.Constants.MUSIC_PLAYER @@ -15,11 +14,7 @@ import app.revanced.util.integrations.Constants.MUSIC_PLAYER @Patch( name = "Enable new player background", description = "Enable new player background.", - dependencies = - [ - PlayerLayoutHookPatch::class, - SettingsPatch::class - ], + dependencies = [SettingsPatch::class], compatiblePackages = [ CompatiblePackage( "com.google.android.apps.youtube.music", diff --git a/src/main/kotlin/app/revanced/patches/music/player/newplayerlayout/NewPlayerLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/music/player/newplayerlayout/NewPlayerLayoutPatch.kt deleted file mode 100644 index 90f8347ce..000000000 --- a/src/main/kotlin/app/revanced/patches/music/player/newplayerlayout/NewPlayerLayoutPatch.kt +++ /dev/null @@ -1,51 +0,0 @@ -package app.revanced.patches.music.player.newplayerlayout - -import app.revanced.patcher.data.ResourceContext -import app.revanced.patcher.patch.ResourcePatch -import app.revanced.patcher.patch.annotation.CompatiblePackage -import app.revanced.patcher.patch.annotation.Patch -import app.revanced.patches.music.utils.playerlayouthook.PlayerLayoutHookPatch -import app.revanced.patches.music.utils.settings.SettingsPatch -import app.revanced.util.enum.CategoryType - -@Patch( - name = "Enable new player layout", - description = "Enable new player layouts.", - [ - PlayerLayoutHookPatch::class, - SettingsPatch::class - ], - compatiblePackages = [ - CompatiblePackage( - "com.google.android.apps.youtube.music", - [ - "6.15.52", - "6.20.51", - "6.21.51", - "6.22.51" - ] - ) - ] -) -@Suppress("unused") -object NewPlayerLayoutPatch : ResourcePatch() { - private const val YOUTUBE_MUSIC_SETTINGS_PATH = "res/xml/settings_headers.xml" - override fun execute(context: ResourceContext) { - - SettingsPatch.addMusicPreference( - CategoryType.PLAYER, - "revanced_enable_new_player_layout", - "true" - ) - - val prefs = context[YOUTUBE_MUSIC_SETTINGS_PATH] - - prefs.writeText( - prefs.readText() - .replace( - "revanced_enable_new_player_background\"", - "revanced_enable_new_player_background\" android:dependency=\"revanced_enable_new_player_layout\"" - ) - ) - } -} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/PlayerLayoutHookPatch.kt b/src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/PlayerLayoutHookPatch.kt deleted file mode 100644 index 4b349330f..000000000 --- a/src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/PlayerLayoutHookPatch.kt +++ /dev/null @@ -1,32 +0,0 @@ -package app.revanced.patches.music.utils.playerlayouthook - -import app.revanced.extensions.exception -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstructions -import app.revanced.patcher.extensions.InstructionExtensions.getInstruction -import app.revanced.patcher.patch.BytecodePatch -import app.revanced.patches.music.utils.playerlayouthook.fingerprints.NewPlayerLayoutFingerprint -import app.revanced.util.integrations.Constants.MUSIC_PLAYER -import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction - -object PlayerLayoutHookPatch : BytecodePatch( - setOf(NewPlayerLayoutFingerprint) -) { - override fun execute(context: BytecodeContext) { - - NewPlayerLayoutFingerprint.result?.let { - it.mutableMethod.apply { - val insertIndex = implementation!!.instructions.size - 1 - val targetRegister = getInstruction(insertIndex).registerA - - addInstructions( - insertIndex, """ - invoke-static {}, $MUSIC_PLAYER->enableNewPlayerLayout()Z - move-result v$targetRegister - """ - ) - } - } ?: throw NewPlayerLayoutFingerprint.exception - - } -} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/music/utils/settings/SettingsBytecodePatch.kt b/src/main/kotlin/app/revanced/patches/music/utils/settings/SettingsBytecodePatch.kt index fa889d522..685f7289e 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/settings/SettingsBytecodePatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/settings/SettingsBytecodePatch.kt @@ -7,6 +7,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patches.music.utils.integrations.IntegrationsPatch +import app.revanced.patches.music.utils.settings.fingerprints.NewPlayerLayoutFingerprint import app.revanced.patches.music.utils.settings.fingerprints.PreferenceFingerprint import app.revanced.patches.music.utils.settings.fingerprints.SettingsHeadersFragmentFingerprint import app.revanced.util.bytecode.BytecodeHelper.injectInit @@ -20,12 +21,25 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction ) object SettingsBytecodePatch : BytecodePatch( setOf( + NewPlayerLayoutFingerprint, PreferenceFingerprint, SettingsHeadersFragmentFingerprint ) ) { override fun execute(context: BytecodeContext) { + NewPlayerLayoutFingerprint.result?.let { + it.mutableMethod.apply { + val insertIndex = implementation!!.instructions.size - 1 + val targetRegister = getInstruction(insertIndex).registerA + + addInstruction( + insertIndex, + "const/4 v$targetRegister, 0x1" + ) + } + } ?: throw NewPlayerLayoutFingerprint.exception + SettingsHeadersFragmentFingerprint.result?.let { it.mutableMethod.apply { val targetIndex = it.scanResult.patternScanResult!!.endIndex diff --git a/src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/fingerprints/NewPlayerLayoutFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/utils/settings/fingerprints/NewPlayerLayoutFingerprint.kt similarity index 81% rename from src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/fingerprints/NewPlayerLayoutFingerprint.kt rename to src/main/kotlin/app/revanced/patches/music/utils/settings/fingerprints/NewPlayerLayoutFingerprint.kt index 88e0fe4b7..2ddc28fb2 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/playerlayouthook/fingerprints/NewPlayerLayoutFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/settings/fingerprints/NewPlayerLayoutFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.music.utils.playerlayouthook.fingerprints +package app.revanced.patches.music.utils.settings.fingerprints import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint import app.revanced.util.bytecode.isWide32LiteralExists diff --git a/src/main/resources/music/settings/host/values/strings.xml b/src/main/resources/music/settings/host/values/strings.xml index 1163df47b..07e53195e 100644 --- a/src/main/resources/music/settings/host/values/strings.xml +++ b/src/main/resources/music/settings/host/values/strings.xml @@ -36,8 +36,6 @@ Enable landscape mode Enables new player background. Enable new player background - Enable new player layouts. - Enable new player layout Return the library shelf to old style. (Experimental) Enable old style library shelf Return the mini players to old style.