build(Needs bump): Bump dependencies (#2946)
Co-authored-by: Ushie <ushiekane@gmail.com> Co-authored-by: aAbed <aabedhkhan@gmail.com> Co-authored-by: CnC-Robert <CnC.Rob3rt@gmail.com>
This commit is contained in:
co-authored by
Ushie
aAbed
CnC-Robert
parent
fe3a6fd4a4
commit
8c8dff9078
@@ -0,0 +1,54 @@
|
||||
package app.revanced.patches.spotify.layout.theme
|
||||
|
||||
import app.revanced.patcher.data.ResourceContext
|
||||
import app.revanced.patcher.patch.ResourcePatch
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patcher.patch.options.types.StringPatchOption.Companion.stringPatchOption
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Patch(
|
||||
name = "Custom theme",
|
||||
description = "Applies a custom theme.",
|
||||
compatiblePackages = [CompatiblePackage("com.spotify.music")]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object CustomThemePatch : ResourcePatch() {
|
||||
private var backgroundColor by stringPatchOption(
|
||||
key = "backgroundColor",
|
||||
default = "@android:color/black",
|
||||
title = "Background color",
|
||||
description = "The background color. Can be a hex color or a resource reference.",
|
||||
)
|
||||
|
||||
private var accentColor by stringPatchOption(
|
||||
key = "accentColor",
|
||||
default = "#ff1ed760",
|
||||
title = "Accent color",
|
||||
description = "The accent color ('spotify green' by default). Can be a hex color or a resource reference.",
|
||||
)
|
||||
|
||||
private var accentPressedColor by stringPatchOption(
|
||||
key = "accentPressedColor",
|
||||
default = "#ff169c46",
|
||||
title = "Pressed accent for the dark theme",
|
||||
description = "The color when accented buttons are pressed, by default slightly darker than accent. Can be a hex color or a resource reference."
|
||||
)
|
||||
|
||||
override fun execute(context: ResourceContext) {
|
||||
context.xmlEditor["res/values/colors.xml"].use { editor ->
|
||||
val resourcesNode = editor.file.getElementsByTagName("resources").item(0) as Element
|
||||
|
||||
for (i in 0 until resourcesNode.childNodes.length) {
|
||||
val node = resourcesNode.childNodes.item(i) as? Element ?: continue
|
||||
|
||||
node.textContent = when (node.getAttribute("name")) {
|
||||
"gray_7" -> backgroundColor!!
|
||||
"dark_brightaccent_background_base", "dark_base_text_brightaccent", "green_light" -> accentColor!!
|
||||
"dark_brightaccent_background_press" -> accentPressedColor!!
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
package app.revanced.patches.spotify.layout.theme.annotations
|
||||
|
||||
import app.revanced.patcher.annotation.Compatibility
|
||||
import app.revanced.patcher.annotation.Package
|
||||
|
||||
@Compatibility([Package("com.spotify.music")])
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
internal annotation class ThemeCompatibility
|
||||
@@ -1,61 +0,0 @@
|
||||
package app.revanced.patches.spotify.layout.theme.patch
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.data.ResourceContext
|
||||
import app.revanced.patcher.patch.OptionsContainer
|
||||
import app.revanced.patcher.patch.PatchOption
|
||||
import app.revanced.patcher.patch.ResourcePatch
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.spotify.layout.theme.annotations.ThemeCompatibility
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Patch
|
||||
@Name("Spotify theme")
|
||||
@Description("Applies a custom theme.")
|
||||
@ThemeCompatibility
|
||||
class ThemePatch : ResourcePatch {
|
||||
override fun execute(context: ResourceContext) {
|
||||
context.xmlEditor["res/values/colors.xml"].use { editor ->
|
||||
val resourcesNode = editor.file.getElementsByTagName("resources").item(0) as Element
|
||||
|
||||
for (i in 0 until resourcesNode.childNodes.length) {
|
||||
val node = resourcesNode.childNodes.item(i) as? Element ?: continue
|
||||
|
||||
node.textContent = when (node.getAttribute("name")) {
|
||||
"gray_7" -> backgroundColor!!
|
||||
"dark_brightaccent_background_base", "dark_base_text_brightaccent", "green_light" -> accentColor!!
|
||||
"dark_brightaccent_background_press" -> accentPressedColor!!
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object : OptionsContainer() {
|
||||
var backgroundColor: String? by option(
|
||||
PatchOption.StringOption(
|
||||
key = "backgroundColor",
|
||||
default = "@android:color/black",
|
||||
title = "Background color",
|
||||
description = "The background color. Can be a hex color or a resource reference.",
|
||||
)
|
||||
)
|
||||
var accentColor: String? by option(
|
||||
PatchOption.StringOption(
|
||||
key = "accentColor",
|
||||
default = "#ff1ed760",
|
||||
title = "Accent color",
|
||||
description = "The accent color ('spotify green' by default). Can be a hex color or a resource reference.",
|
||||
)
|
||||
)
|
||||
var accentPressedColor: String? by option(
|
||||
PatchOption.StringOption(
|
||||
key = "accentPressedColor",
|
||||
default = "#ff169c46",
|
||||
title = "Pressed accent for the dark theme",
|
||||
description = "The color when accented buttons are pressed, by default slightly darker than accent. Can be a hex color or a resource reference.",
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
+10
-14
@@ -1,24 +1,20 @@
|
||||
package app.revanced.patches.spotify.lite.ondemand.patch
|
||||
package app.revanced.patches.spotify.lite.ondemand
|
||||
|
||||
import app.revanced.extensions.exception
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.spotify.lite.ondemand.annotations.OnDemandCompatibility
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.spotify.lite.ondemand.fingerprints.OnDemandFingerprint
|
||||
|
||||
@Patch
|
||||
@Name("Enable on demand")
|
||||
@Description("Enables listening to songs on-demand, allowing to play any song from playlists, albums or artists without limitations. This does not remove ads.")
|
||||
@OnDemandCompatibility
|
||||
class OnDemandPatch : BytecodePatch(
|
||||
listOf(
|
||||
OnDemandFingerprint
|
||||
)
|
||||
) {
|
||||
@Patch(
|
||||
name = "Enable on demand",
|
||||
description = "Enables listening to songs on-demand, allowing to play any song from playlists, albums or artists without limitations. This does not remove ads.",
|
||||
compatiblePackages = [CompatiblePackage("com.spotify.lite")]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object OnDemandPatch : BytecodePatch(setOf(OnDemandFingerprint)) {
|
||||
override fun execute(context: BytecodeContext) {
|
||||
OnDemandFingerprint.result?.apply {
|
||||
val insertIndex = scanResult.patternScanResult!!.endIndex - 1
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
package app.revanced.patches.spotify.lite.ondemand.annotations
|
||||
|
||||
import app.revanced.patcher.annotation.Compatibility
|
||||
import app.revanced.patcher.annotation.Package
|
||||
|
||||
@Compatibility(
|
||||
[Package("com.spotify.lite")]
|
||||
)
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
internal annotation class OnDemandCompatibility
|
||||
+14
-19
@@ -1,30 +1,25 @@
|
||||
package app.revanced.patches.spotify.premium_navbar_tab.patch
|
||||
package app.revanced.patches.spotify.navbar
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
|
||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint.Companion.resolve
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotations.DependsOn
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.spotify.premium_navbar_tab.annotations.PremiumNavbarTabCompatibility
|
||||
import app.revanced.patches.spotify.premium_navbar_tab.fingerprints.AddPremiumNavbarTabFingerprint
|
||||
import app.revanced.patches.spotify.premium_navbar_tab.fingerprints.AddPremiumNavbarTabParentFingerprint
|
||||
import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.shared.mapping.misc.ResourceMappingPatch
|
||||
import app.revanced.patches.spotify.navbar.fingerprints.AddPremiumNavbarTabFingerprint
|
||||
import app.revanced.patches.spotify.navbar.fingerprints.AddPremiumNavbarTabParentFingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
|
||||
|
||||
@Patch
|
||||
@Name("Hide premium navbar")
|
||||
@Description("Removes the premium tab from the navbar.")
|
||||
@PremiumNavbarTabCompatibility
|
||||
@DependsOn([ResourceMappingPatch::class])
|
||||
class PremiumNavbarTabPatch : BytecodePatch(
|
||||
listOf(
|
||||
AddPremiumNavbarTabParentFingerprint
|
||||
)
|
||||
) {
|
||||
@Patch(
|
||||
name = "Hide premium navbar",
|
||||
description = "Removes the premium tab from the navbar.",
|
||||
dependencies = [ResourceMappingPatch::class],
|
||||
compatiblePackages = [CompatiblePackage("com.spotify.music")]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object PremiumNavbarTabPatch : BytecodePatch(setOf(AddPremiumNavbarTabParentFingerprint)) {
|
||||
override fun execute(context: BytecodeContext) {
|
||||
val parentResult = AddPremiumNavbarTabParentFingerprint.result!!
|
||||
AddPremiumNavbarTabFingerprint.resolve(context, parentResult.classDef)
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package app.revanced.patches.spotify.premium_navbar_tab.fingerprints
|
||||
package app.revanced.patches.spotify.navbar.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package app.revanced.patches.spotify.premium_navbar_tab.fingerprints
|
||||
package app.revanced.patches.spotify.navbar.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
package app.revanced.patches.spotify.premium_navbar_tab.annotations
|
||||
|
||||
import app.revanced.patcher.annotation.Compatibility
|
||||
import app.revanced.patcher.annotation.Package
|
||||
|
||||
@Compatibility([Package("com.spotify.music")])
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
internal annotation class PremiumNavbarTabCompatibility
|
||||
Reference in New Issue
Block a user