mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-29 13:20:19 +02:00
feat(YouTube/Theme): add set of dark themes to chose from
This commit is contained in:
parent
d535ab3df7
commit
98e386ec51
@ -71,7 +71,7 @@ object MaterialYouPatch : ResourcePatch() {
|
|||||||
/**
|
/**
|
||||||
* Add settings
|
* Add settings
|
||||||
*/
|
*/
|
||||||
context.updatePatchStatusTheme("materialyou")
|
context.updatePatchStatusTheme("MaterialYou")
|
||||||
|
|
||||||
isMonetPatchIncluded = true
|
isMonetPatchIncluded = true
|
||||||
|
|
||||||
|
@ -44,50 +44,73 @@ import org.w3c.dom.Element
|
|||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
object ThemePatch : ResourcePatch() {
|
object ThemePatch : ResourcePatch() {
|
||||||
private const val AMOLED_BLACK_COLOR = "@android:color/black"
|
private const val AMOLED_BLACK_COLOR = "@android:color/black"
|
||||||
override fun execute(context: ResourceContext) {
|
private const val CATPPUCCIN_COLOR = "#FF181825"
|
||||||
|
private const val DARK_PINK_COLOR = "#FF290025"
|
||||||
|
private const val DARK_BLUE_COLOR = "#FF001029"
|
||||||
|
private const val DARK_GREEN_COLOR = "#FF002905"
|
||||||
|
private const val DARK_YELLOW_COLOR = "#FF282900"
|
||||||
|
private const val DARK_ORANGE_COLOR = "#FF291800"
|
||||||
|
private const val DARK_RED_COLOR = "#FF290000"
|
||||||
|
|
||||||
arrayOf("values", "values-v31").forEach { context.setTheme(it) }
|
|
||||||
|
|
||||||
val currentTheme = if (isMonetPatchIncluded) "mix" else "amoled"
|
internal var DarkThemeBackgroundColor by stringPatchOption(
|
||||||
|
|
||||||
context.updatePatchStatusTheme(currentTheme)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun ResourceContext.setTheme(valuesPath: String) {
|
|
||||||
val darkThemeColor = darkThemeBackgroundColor
|
|
||||||
?: throw PatchException("Invalid color.")
|
|
||||||
|
|
||||||
this.xmlEditor["res/$valuesPath/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")) {
|
|
||||||
"yt_black0", "yt_black1", "yt_black1_opacity95", "yt_black1_opacity98", "yt_black2", "yt_black3",
|
|
||||||
"yt_black4", "yt_status_bar_background_dark", "material_grey_850" -> darkThemeColor
|
|
||||||
|
|
||||||
else -> continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal var darkThemeBackgroundColor by stringPatchOption(
|
|
||||||
key = "DarkThemeBackgroundColor",
|
key = "DarkThemeBackgroundColor",
|
||||||
default = AMOLED_BLACK_COLOR,
|
default = AMOLED_BLACK_COLOR,
|
||||||
values = mapOf(
|
values = mapOf(
|
||||||
"Amoled black" to AMOLED_BLACK_COLOR,
|
"Amoled Black" to AMOLED_BLACK_COLOR,
|
||||||
"Catppuccin (Mocha)" to "#FF181825",
|
"Catppuccin (Mocha)" to CATPPUCCIN_COLOR,
|
||||||
"Dark pink" to "#FF290025",
|
"Dark Pink" to DARK_PINK_COLOR,
|
||||||
"Dark blue" to "#FF001029",
|
"Dark Blue" to DARK_BLUE_COLOR,
|
||||||
"Dark green" to "#FF002905",
|
"Dark Green" to DARK_GREEN_COLOR,
|
||||||
"Dark yellow" to "#FF282900",
|
"Dark Yellow" to DARK_YELLOW_COLOR,
|
||||||
"Dark orange" to "#FF291800",
|
"Dark Orange" to DARK_ORANGE_COLOR,
|
||||||
"Dark red" to "#FF290000"
|
"Dark Red" to DARK_RED_COLOR
|
||||||
),
|
),
|
||||||
title = "Dark theme background color",
|
title = "Dark theme background color",
|
||||||
description = "Can be a hex color (#AARRGGBB) or a color resource reference.",
|
description = "Can be a hex color (#AARRGGBB) or a color resource reference.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private fun getThemeString(darkThemeColor: String) =
|
||||||
|
when (darkThemeColor) {
|
||||||
|
AMOLED_BLACK_COLOR -> "Amoled Black"
|
||||||
|
CATPPUCCIN_COLOR -> "Catppuccin (Mocha)"
|
||||||
|
DARK_PINK_COLOR -> "Dark Pink"
|
||||||
|
DARK_BLUE_COLOR -> "Dark Blue"
|
||||||
|
DARK_GREEN_COLOR -> "Dark Green"
|
||||||
|
DARK_YELLOW_COLOR -> "Dark Yellow"
|
||||||
|
DARK_ORANGE_COLOR -> "Dark Orange"
|
||||||
|
DARK_RED_COLOR -> "Dark Red"
|
||||||
|
else -> "Custom"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun execute(context: ResourceContext) {
|
||||||
|
|
||||||
|
val darkThemeColor = DarkThemeBackgroundColor
|
||||||
|
?: throw PatchException("Invalid color.")
|
||||||
|
|
||||||
|
arrayOf("values", "values-v31").forEach { path ->
|
||||||
|
context.xmlEditor["res/$path/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")) {
|
||||||
|
"yt_black0", "yt_black1", "yt_black1_opacity95", "yt_black1_opacity98", "yt_black2", "yt_black3",
|
||||||
|
"yt_black4", "yt_status_bar_background_dark", "material_grey_850" -> darkThemeColor
|
||||||
|
|
||||||
|
else -> continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val currentTheme = if (isMonetPatchIncluded)
|
||||||
|
"MaterialYou + " + getThemeString(darkThemeColor)
|
||||||
|
else
|
||||||
|
getThemeString(darkThemeColor)
|
||||||
|
|
||||||
|
context.updatePatchStatusTheme(currentTheme)
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,16 +66,20 @@ internal object ResourceHelper {
|
|||||||
updatePatchStatusSettings(patchTitle, "@string/revanced_patches_included")
|
updatePatchStatusSettings(patchTitle, "@string/revanced_patches_included")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun ResourceContext.updatePatchStatusHeader(headerName: String) {
|
||||||
|
updatePatchStatusSettings("Header", headerName)
|
||||||
|
}
|
||||||
|
|
||||||
internal fun ResourceContext.updatePatchStatusLabel(appName: String) {
|
internal fun ResourceContext.updatePatchStatusLabel(appName: String) {
|
||||||
updatePatchStatusSettings("Labels", appName)
|
updatePatchStatusSettings("Label", appName)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun ResourceContext.updatePatchStatusIcon(iconName: String) {
|
internal fun ResourceContext.updatePatchStatusIcon(iconName: String) {
|
||||||
updatePatchStatusSettings("Icons", "@string/revanced_icons_$iconName")
|
updatePatchStatusSettings("Icon", "@string/revanced_icon_$iconName")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun ResourceContext.updatePatchStatusTheme(themeName: String) {
|
internal fun ResourceContext.updatePatchStatusTheme(themeName: String) {
|
||||||
updatePatchStatusSettings("Themes", "@string/revanced_themes_$themeName")
|
updatePatchStatusSettings("Theme", themeName)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ResourceContext.updatePatchStatusSettings(
|
private fun ResourceContext.updatePatchStatusSettings(
|
||||||
|
@ -64,11 +64,11 @@
|
|||||||
<string name="revanced_hide_subscriptions_button_title">@string/revanced_hide_shorts_player_subscriptions_button_title</string>
|
<string name="revanced_hide_subscriptions_button_title">@string/revanced_hide_shorts_player_subscriptions_button_title</string>
|
||||||
|
|
||||||
<string name="revanced_header_default">Stock</string>
|
<string name="revanced_header_default">Stock</string>
|
||||||
<string name="revanced_icons_default">Stock</string>
|
<string name="revanced_icon_default">Stock</string>
|
||||||
<string name="revanced_icons_mmt">MMT</string>
|
<string name="revanced_icon_mmt">MMT</string>
|
||||||
<string name="revanced_icons_revancify_blue">Revancify Blue</string>
|
<string name="revanced_icon_revancify_blue">Revancify Blue</string>
|
||||||
<string name="revanced_icons_revancify_red">Revancify Red</string>
|
<string name="revanced_icon_revancify_red">Revancify Red</string>
|
||||||
<string name="revanced_labels_default">Stock</string>
|
<string name="revanced_label_default">Stock</string>
|
||||||
<string name="revanced_patches_excluded">Excluded</string>
|
<string name="revanced_patches_excluded">Excluded</string>
|
||||||
<string name="revanced_patches_included">Included</string>
|
<string name="revanced_patches_included">Included</string>
|
||||||
|
|
||||||
@ -83,10 +83,7 @@
|
|||||||
|
|
||||||
<string name="revanced_sponsorblock_settings_title">SponsorBlock</string>
|
<string name="revanced_sponsorblock_settings_title">SponsorBlock</string>
|
||||||
|
|
||||||
<string name="revanced_themes_amoled">Amoled</string>
|
<string name="revanced_theme_default">Stock</string>
|
||||||
<string name="revanced_themes_default">Stock</string>
|
|
||||||
<string name="revanced_themes_materialyou">MaterialYou</string>
|
|
||||||
<string name="revanced_themes_mix">MaterialYou + Amoled</string>
|
|
||||||
|
|
||||||
<string name="sb_about">@string/pref_about_category</string>
|
<string name="sb_about">@string/pref_about_category</string>
|
||||||
<string name="sb_about_api">sponsor.ajay.app</string>
|
<string name="sb_about_api">sponsor.ajay.app</string>
|
||||||
|
@ -439,12 +439,12 @@
|
|||||||
<Preference android:title="Header" android:summary="@string/revanced_header_default" android:selectable="false"/>
|
<Preference android:title="Header" android:summary="@string/revanced_header_default" android:selectable="false"/>
|
||||||
<Preference android:title="Hide double tap overlay filter" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Hide double tap overlay filter" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Hide tooltip content" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Hide tooltip content" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Icons" android:summary="@string/revanced_icons_default" android:selectable="false"/>
|
<Preference android:title="Icon" android:summary="@string/revanced_icon_default" android:selectable="false"/>
|
||||||
<Preference android:title="Labels" android:summary="@string/revanced_labels_default" android:selectable="false"/>
|
<Preference android:title="Label" android:summary="@string/revanced_label_default" android:selectable="false"/>
|
||||||
<Preference android:title="MicroG support" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="MicroG support" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Return YouTube Dislike" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Return YouTube Dislike" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="SponsorBlock" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="SponsorBlock" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
<Preference android:title="Themes" android:summary="@string/revanced_themes_default" android:selectable="false"/>
|
<Preference android:title="Theme" android:summary="@string/revanced_themes_default" android:selectable="false"/>
|
||||||
<Preference android:title="Translations" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
<Preference android:title="Translations" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user