mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-16 15:53:58 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cba04cf5a6 | ||
|
|
5e358c7319 | ||
|
|
ce69471684 | ||
|
|
a0981dda9d | ||
|
|
6073181ee1 | ||
|
|
522587321c | ||
|
|
b16748794e | ||
|
|
01e9a396d6 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,3 +1,19 @@
|
||||
## [2.51.2](https://github.com/revanced/revanced-patches/compare/v2.51.1...v2.51.2) (2022-09-08)
|
||||
|
||||
## [2.51.1](https://github.com/revanced/revanced-patches/compare/v2.51.0...v2.51.1) (2022-09-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* wrap theme option ([150c173](https://github.com/revanced/revanced-patches/commit/150c173adce31d9984d6feca694b472649233056))
|
||||
|
||||
# [2.51.0](https://github.com/revanced/revanced-patches/compare/v2.50.8...v2.51.0) (2022-09-08)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* Theme Patch ([#440](https://github.com/revanced/revanced-patches/issues/440)) ([f3b92ca](https://github.com/revanced/revanced-patches/commit/f3b92cab5a057ce605b6d9e75e3b99161bf1422c))
|
||||
|
||||
## [2.50.8](https://github.com/revanced/revanced-patches/compare/v2.50.7...v2.50.8) (2022-09-08)
|
||||
|
||||
## [2.50.7](https://github.com/revanced/revanced-patches/compare/v2.50.6...v2.50.7) (2022-09-08)
|
||||
|
||||
@@ -81,6 +81,7 @@ The official Patch bundle provided by ReVanced and the community.
|
||||
| `custom-branding` | Changes the YouTube launcher icon and name to your choice (defaults to ReVanced). | all |
|
||||
| `disable-fullscreen-panels` | Disables video description and comments panel in fullscreen view. | 17.33.42 |
|
||||
| `old-quality-layout` | Enables the original quality flyout menu. | 17.33.42 |
|
||||
| `theme` | Enables a custom theme. | all |
|
||||
| `hide-shorts-button` | Hides the shorts button on the navigation bar. | 17.33.42 |
|
||||
| `hide-watermark` | Hides creator's watermarks on videos. | 17.33.42 |
|
||||
| `sponsorblock` | Integrate SponsorBlock. | 17.33.42 |
|
||||
|
||||
@@ -20,7 +20,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("app.revanced:revanced-patcher:4.1.4")
|
||||
implementation("app.revanced:revanced-patcher:4.2.2")
|
||||
implementation("app.revanced:multidexlib2:2.5.2.r2")
|
||||
|
||||
// Required for meta
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
kotlin.code.style = official
|
||||
version = 2.50.8
|
||||
version = 2.51.2
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,16 +2,16 @@ package app.revanced.patches.youtube.layout.amoled.patch
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.annotation.PatchDeprecated
|
||||
import app.revanced.patcher.annotation.Version
|
||||
import app.revanced.patcher.data.impl.ResourceData
|
||||
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.patcher.patch.impl.ResourcePatch
|
||||
import app.revanced.patches.youtube.layout.amoled.annotations.AmoledCompatibility
|
||||
import app.revanced.patches.youtube.layout.theme.patch.ThemePatch
|
||||
import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Patch
|
||||
@DependsOn([FixLocaleConfigErrorPatch::class])
|
||||
@@ -19,24 +19,10 @@ import org.w3c.dom.Element
|
||||
@Description("Enables pure black theme.")
|
||||
@AmoledCompatibility
|
||||
@Version("0.0.1")
|
||||
@PatchDeprecated("Theme patch already includes the Amoled theme.", ThemePatch::class)
|
||||
class AmoledPatch : ResourcePatch() {
|
||||
override fun execute(data: ResourceData): PatchResult {
|
||||
data.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)
|
||||
if (node !is Element) continue
|
||||
|
||||
val element = resourcesNode.childNodes.item(i) as Element
|
||||
element.textContent = when (element.getAttribute("name")) {
|
||||
"yt_black1", "yt_black1_opacity95", "yt_black2", "yt_black3", "yt_black4", "yt_status_bar_background_dark" -> "@android:color/black"
|
||||
"yt_selected_nav_label_dark" -> "#ffdf0000"
|
||||
else -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return PatchResultSuccess()
|
||||
ThemePatch.theme = ThemePatch.Themes.Amoled.name
|
||||
return ThemePatch().execute(data)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ class CustomBrandingPatch : ResourcePatch() {
|
||||
}
|
||||
|
||||
companion object : OptionsContainer() {
|
||||
private var appName: String by option(
|
||||
private var appName: String? by option(
|
||||
PatchOption.StringOption(
|
||||
key = "appName",
|
||||
default = "YouTube ReVanced",
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package app.revanced.patches.youtube.layout.theme.annotations
|
||||
|
||||
import app.revanced.patcher.annotation.Compatibility
|
||||
import app.revanced.patcher.annotation.Package
|
||||
|
||||
@Compatibility([Package("com.google.android.youtube")])
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@Retention(AnnotationRetention.RUNTIME)
|
||||
internal annotation class ThemeCompatibility
|
||||
@@ -0,0 +1,65 @@
|
||||
package app.revanced.patches.youtube.layout.theme.patch
|
||||
|
||||
import app.revanced.patcher.annotation.Description
|
||||
import app.revanced.patcher.annotation.Name
|
||||
import app.revanced.patcher.annotation.Version
|
||||
import app.revanced.patcher.data.impl.ResourceData
|
||||
import app.revanced.patcher.patch.*
|
||||
import app.revanced.patcher.patch.annotations.DependsOn
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patcher.patch.impl.ResourcePatch
|
||||
import app.revanced.patches.youtube.layout.theme.annotations.ThemeCompatibility
|
||||
import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Patch
|
||||
@DependsOn([FixLocaleConfigErrorPatch::class])
|
||||
@Name("theme")
|
||||
@Description("Enables a custom theme.")
|
||||
@ThemeCompatibility
|
||||
@Version("0.0.1")
|
||||
class ThemePatch : ResourcePatch() {
|
||||
override fun execute(data: ResourceData): PatchResult {
|
||||
val theme = Themes.of(theme!!) ?: return PatchResultError("Theme '$theme' not found.")
|
||||
|
||||
data.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 = theme.apply(node.getAttribute("name")) ?: continue
|
||||
}
|
||||
}
|
||||
|
||||
return PatchResultSuccess()
|
||||
}
|
||||
|
||||
companion object : OptionsContainer() {
|
||||
var theme: String? by option(
|
||||
PatchOption.StringListOption(
|
||||
key = "theme",
|
||||
default = null,
|
||||
options = Themes.names,
|
||||
title = "Theme",
|
||||
description = "Select a theme.",
|
||||
required = true
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
enum class Themes(val apply: (String) -> String?) {
|
||||
Amoled({ attr ->
|
||||
when (attr) {
|
||||
"yt_black1", "yt_black1_opacity95", "yt_black2", "yt_black3", "yt_black4", "yt_status_bar_background_dark" -> "@android:color/black"
|
||||
"yt_selected_nav_label_dark" -> "#ffdf0000"
|
||||
else -> null
|
||||
}
|
||||
});
|
||||
|
||||
companion object {
|
||||
val names = values().map { it.name }
|
||||
|
||||
fun of(name: String) = values().firstOrNull { it.name == name }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user