mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-06-12 21:27:43 +02:00
refactor(music-settings): rebase integrations
This commit is contained in:
7
src/main/kotlin/app/revanced/util/enum/CategoryType.kt
Normal file
7
src/main/kotlin/app/revanced/util/enum/CategoryType.kt
Normal file
@ -0,0 +1,7 @@
|
||||
package app.revanced.util.enum
|
||||
|
||||
internal enum class CategoryType(val value: String) {
|
||||
ADS("ads"),
|
||||
LAYOUT("layout"),
|
||||
MISC("misc")
|
||||
}
|
@ -5,9 +5,7 @@ internal object Constants {
|
||||
const val PATCHES_PATH = "$INTEGRATIONS_PATH/patches"
|
||||
|
||||
const val ADS_PATH = "$PATCHES_PATH/ads"
|
||||
|
||||
const val SWIPE_PATH = "$PATCHES_PATH/swipe"
|
||||
|
||||
const val BOTTOM_PLAYER = "$PATCHES_PATH/layout/BottomPlayerPatch;"
|
||||
const val FLYOUT_PANEL = "$PATCHES_PATH/layout/FlyoutPanelPatch;"
|
||||
const val FULLSCREEN = "$PATCHES_PATH/layout/FullscreenPatch;"
|
||||
@ -16,15 +14,16 @@ internal object Constants {
|
||||
const val PLAYER = "$PATCHES_PATH/layout/PlayerPatch;"
|
||||
const val SEEKBAR = "$PATCHES_PATH/layout/SeekBarPatch;"
|
||||
const val SHORTS = "$PATCHES_PATH/layout/ShortsPatch;"
|
||||
|
||||
const val MISC_PATH = "$PATCHES_PATH/misc"
|
||||
|
||||
const val MUSIC_PATH = "$PATCHES_PATH/music"
|
||||
|
||||
const val BUTTON_PATH = "$PATCHES_PATH/button"
|
||||
const val VIDEO_PATH = "$PATCHES_PATH/video"
|
||||
|
||||
const val UTILS_PATH = "$PATCHES_PATH/utils"
|
||||
|
||||
const val MUSIC_SETTINGS_PATH = "$INTEGRATIONS_PATH/settings/MusicSettings;"
|
||||
const val MUSIC_INTEGRATIONS_PATH = "Lapp/revanced/music"
|
||||
private const val MUSIC_PATCHES_PATH = "$MUSIC_INTEGRATIONS_PATH/patches"
|
||||
|
||||
const val MUSIC_ADS_PATH = "$MUSIC_PATCHES_PATH/ads"
|
||||
const val MUSIC_LAYOUT = "$MUSIC_PATCHES_PATH/layout/LayoutPatch;"
|
||||
const val MUSIC_MISC_PATH = "$MUSIC_PATCHES_PATH/misc"
|
||||
const val MUSIC_UTILS_PATH = "$MUSIC_PATCHES_PATH/utils"
|
||||
}
|
@ -34,8 +34,17 @@ internal object MusicResourceHelper {
|
||||
|
||||
private const val YOUTUBE_MUSIC_PREFERENCE_TAG_NAME = "com.google.android.apps.youtube.music.ui.preference.SwitchCompatPreference"
|
||||
|
||||
private const val YOUTUBE_MUSIC_PREFERENCE_TARGET_CLASS = "com.google.android.libraries.strictmode.penalties.notification.FullStackTraceActivity"
|
||||
|
||||
private var currentMusicPreferenceCategory = emptyArray<String>()
|
||||
|
||||
private var targetPackage = "com.google.android.apps.youtube.music"
|
||||
|
||||
internal fun ResourceContext.setMicroG (newPackage: String) {
|
||||
targetPackage = newPackage
|
||||
replacePackageName()
|
||||
}
|
||||
|
||||
private fun setMusicPreferenceCategory (newCategory: String) {
|
||||
currentMusicPreferenceCategory += listOf(newCategory)
|
||||
}
|
||||
@ -59,20 +68,27 @@ internal object MusicResourceHelper {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun ResourceContext.sortMusicPreferenceCategory() {
|
||||
internal fun ResourceContext.sortMusicPreferenceCategory(
|
||||
category: String
|
||||
) {
|
||||
this.xmlEditor[YOUTUBE_MUSIC_SETTINGS_PATH].use { editor ->
|
||||
editor.file.doRecursively loop@{
|
||||
if (it !is Element) return@loop
|
||||
|
||||
currentMusicPreferenceCategory.forEach { category ->
|
||||
it.getAttributeNode("android:key")?.let { attribute ->
|
||||
if (attribute.textContent == "revanced_settings_$category") {
|
||||
it.cloneNodes(it.parentNode)
|
||||
}
|
||||
it.getAttributeNode("android:key")?.let { attribute ->
|
||||
if (attribute.textContent == "revanced_settings_$category") {
|
||||
it.cloneNodes(it.parentNode)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
replacePackageName()
|
||||
}
|
||||
|
||||
private fun ResourceContext.replacePackageName(){
|
||||
this[YOUTUBE_MUSIC_SETTINGS_PATH].writeText(
|
||||
this[YOUTUBE_MUSIC_SETTINGS_PATH].readText().replace("\"com.google.android.apps.youtube.music", "\"" + targetPackage)
|
||||
)
|
||||
}
|
||||
|
||||
internal fun ResourceContext.addMusicPreference(
|
||||
@ -95,6 +111,54 @@ internal object MusicResourceHelper {
|
||||
}
|
||||
}
|
||||
|
||||
internal fun ResourceContext.addMusicPreferenceAlt(
|
||||
category: String,
|
||||
key: String,
|
||||
defaultValue: String,
|
||||
dependencyKey: String
|
||||
) {
|
||||
this.xmlEditor[YOUTUBE_MUSIC_SETTINGS_PATH].use { editor ->
|
||||
val tags = editor.file.getElementsByTagName(YOUTUBE_MUSIC_CATEGORY_TAG_NAME)
|
||||
List(tags.length) { tags.item(it) as Element }
|
||||
.filter { it.getAttribute("android:key").contains("revanced_settings_$category") }
|
||||
.forEach {
|
||||
it.adoptChild(YOUTUBE_MUSIC_PREFERENCE_TAG_NAME) {
|
||||
setAttribute("android:title", "@string/$key" + "_title")
|
||||
setAttribute("android:summaryOn", "@string/$key" + "_summary_on")
|
||||
setAttribute("android:summaryOff", "@string/$key" + "_summary_off")
|
||||
setAttribute("android:key", key)
|
||||
setAttribute("android:defaultValue", defaultValue)
|
||||
setAttribute("android:dependency", dependencyKey)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun ResourceContext.addMusicPreferenceWithIntent(
|
||||
category: String,
|
||||
key: String,
|
||||
dependencyKey: String
|
||||
) {
|
||||
this.xmlEditor[YOUTUBE_MUSIC_SETTINGS_PATH].use { editor ->
|
||||
val tags = editor.file.getElementsByTagName(YOUTUBE_MUSIC_CATEGORY_TAG_NAME)
|
||||
List(tags.length) { tags.item(it) as Element }
|
||||
.filter { it.getAttribute("android:key").contains("revanced_settings_$category") }
|
||||
.forEach {
|
||||
it.adoptChild("Preference") {
|
||||
setAttribute("android:title", "@string/$key" + "_title")
|
||||
setAttribute("android:summary", "@string/$key" + "_summary")
|
||||
setAttribute("android:key", key)
|
||||
setAttribute("android:dependency", dependencyKey)
|
||||
this.adoptChild("intent") {
|
||||
setAttribute("android:targetPackage", targetPackage)
|
||||
setAttribute("android:data", key)
|
||||
setAttribute("android:targetClass", YOUTUBE_MUSIC_PREFERENCE_TARGET_CLASS)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun ResourceContext.addReVancedMusicPreference() {
|
||||
this.xmlEditor[YOUTUBE_MUSIC_SETTINGS_PATH].use { editor ->
|
||||
with (editor.file) {
|
||||
|
Reference in New Issue
Block a user