diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/BasePreference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/BasePreference.kt similarity index 88% rename from src/main/kotlin/app/revanced/patches/shared/settings/BasePreference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/BasePreference.kt index 364d5d04b..1853a97c6 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/BasePreference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/BasePreference.kt @@ -1,6 +1,6 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.StringResource import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/BaseResource.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/BaseResource.kt similarity index 92% rename from src/main/kotlin/app/revanced/patches/shared/settings/BaseResource.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/BaseResource.kt index 8ce5b6c72..5c5e4174b 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/BaseResource.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/BaseResource.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/ComponentsExtensions.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/ComponentsExtensions.kt similarity index 91% rename from src/main/kotlin/app/revanced/patches/shared/settings/ComponentsExtensions.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/ComponentsExtensions.kt index 6221ed953..b0e8ddbd6 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/ComponentsExtensions.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/ComponentsExtensions.kt @@ -1,6 +1,6 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.StringResource import org.w3c.dom.Element import org.w3c.dom.Node diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/IPreference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/IPreference.kt similarity index 67% rename from src/main/kotlin/app/revanced/patches/shared/settings/IPreference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/IPreference.kt index 3674b5db0..ec31835ba 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/IPreference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/IPreference.kt @@ -1,6 +1,6 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.StringResource /** * Preference diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/IResource.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/IResource.kt similarity index 77% rename from src/main/kotlin/app/revanced/patches/shared/settings/IResource.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/IResource.kt index 9d865c204..dc3fe610e 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/IResource.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/IResource.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference /** * Resource diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/SummaryType.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/SummaryType.kt similarity index 65% rename from src/main/kotlin/app/revanced/patches/shared/settings/SummaryType.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/SummaryType.kt index fb857d239..006f6986c 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/SummaryType.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/SummaryType.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.settings +package app.revanced.patches.shared.settings.preference enum class SummaryType(val type: String) { DEFAULT("summary"), ON("summaryOn"), OFF("summaryOff") diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/ArrayResource.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ArrayResource.kt similarity index 81% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/ArrayResource.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ArrayResource.kt index 19a841800..5bdaa5abb 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/ArrayResource.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ArrayResource.kt @@ -1,7 +1,7 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BaseResource -import app.revanced.patches.shared.settings.IResource +import app.revanced.patches.shared.settings.preference.BaseResource +import app.revanced.patches.shared.settings.preference.IResource import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/InputType.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/InputType.kt similarity index 58% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/InputType.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/InputType.kt index 5b7599e9f..09432143b 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/InputType.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/InputType.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl enum class InputType(val type: String) { STRING("text"), diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/ListPreference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ListPreference.kt similarity index 78% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/ListPreference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ListPreference.kt index 5ddf0ce3b..9f2f9f84e 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/ListPreference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/ListPreference.kt @@ -1,9 +1,9 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addDefault -import app.revanced.patches.shared.settings.addSummary +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addDefault +import app.revanced.patches.shared.settings.preference.addSummary import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/Preference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/Preference.kt similarity index 83% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/Preference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/Preference.kt index 59370167a..fcacd61d7 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/Preference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/Preference.kt @@ -1,8 +1,8 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addSummary +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addSummary import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceCategory.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceCategory.kt similarity index 80% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceCategory.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceCategory.kt index 2bba02921..e37710a1e 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceCategory.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceCategory.kt @@ -1,7 +1,7 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceScreen.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceScreen.kt similarity index 78% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceScreen.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceScreen.kt index 0990aa53c..462be9e02 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/PreferenceScreen.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/PreferenceScreen.kt @@ -1,8 +1,8 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addSummary +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addSummary import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/StringResource.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/StringResource.kt similarity index 81% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/StringResource.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/StringResource.kt index 6fc22251b..49471faa8 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/StringResource.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/StringResource.kt @@ -1,7 +1,7 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BaseResource -import app.revanced.patches.shared.settings.IResource +import app.revanced.patches.shared.settings.preference.BaseResource +import app.revanced.patches.shared.settings.preference.IResource import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/SwitchPreference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/SwitchPreference.kt similarity index 72% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/SwitchPreference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/SwitchPreference.kt index f6abd1a6d..78d9f1d38 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/SwitchPreference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/SwitchPreference.kt @@ -1,10 +1,10 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.* -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addDefault -import app.revanced.patches.shared.settings.addSummary +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addDefault +import app.revanced.patches.shared.settings.preference.addSummary +import app.revanced.patches.shared.settings.preference.SummaryType import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/impl/TextPreference.kt b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/TextPreference.kt similarity index 75% rename from src/main/kotlin/app/revanced/patches/shared/settings/impl/TextPreference.kt rename to src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/TextPreference.kt index 5eca4a69c..907a4a160 100644 --- a/src/main/kotlin/app/revanced/patches/shared/settings/impl/TextPreference.kt +++ b/src/main/kotlin/app/revanced/patches/shared/settings/preference/impl/TextPreference.kt @@ -1,9 +1,9 @@ -package app.revanced.patches.shared.settings.impl +package app.revanced.patches.shared.settings.preference.impl -import app.revanced.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addDefault -import app.revanced.patches.shared.settings.addSummary +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addDefault +import app.revanced.patches.shared.settings.preference.addSummary import org.w3c.dom.Document import org.w3c.dom.Element diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/resource/patch/AbstractSettingsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/shared/settings/resource/patch/AbstractSettingsResourcePatch.kt new file mode 100644 index 000000000..cf7c5bbda --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/shared/settings/resource/patch/AbstractSettingsResourcePatch.kt @@ -0,0 +1,124 @@ +package app.revanced.patches.shared.settings.resource.patch + +import app.revanced.patcher.data.DomFileEditor +import app.revanced.patcher.data.ResourceContext +import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patcher.patch.ResourcePatch +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.IResource +import app.revanced.patches.shared.settings.preference.addPreference +import app.revanced.patches.shared.settings.preference.addResource +import app.revanced.patches.shared.settings.preference.impl.ArrayResource +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.util.resources.ResourceUtils +import app.revanced.util.resources.ResourceUtils.copyResources +import org.w3c.dom.Node + +/** + * Abstract settings resource patch + * + * @param preferenceFileName Name of the settings preference xml file + * @param sourceDirectory Source directory to copy the preference template from + */ +abstract class AbstractSettingsResourcePatch( + private val preferenceFileName: String, + private val sourceDirectory: String, +) : ResourcePatch { + override fun execute(context: ResourceContext): PatchResult { + /* copy preference template from source dir */ + context.copyResources( + sourceDirectory, + ResourceUtils.ResourceGroup( + "xml", "$preferenceFileName.xml" + ) + ) + + /* prepare xml editors */ + stringsEditor = context.xmlEditor["res/values/strings.xml"] + arraysEditor = context.xmlEditor["res/values/arrays.xml"] + revancedPreferencesEditor = context.xmlEditor["res/xml/$preferenceFileName.xml"] + + return PatchResultSuccess() + } + + internal companion object { + private var revancedPreferenceNode: Node? = null + private var stringsNode: Node? = null + private var arraysNode: Node? = null + + private var strings = mutableListOf() + + private var revancedPreferencesEditor: DomFileEditor? = null + set(value) { + field = value + revancedPreferenceNode = value.getNode("PreferenceScreen") + } + private var stringsEditor: DomFileEditor? = null + set(value) { + field = value + stringsNode = value.getNode("resources") + } + private var arraysEditor: DomFileEditor? = null + set(value) { + field = value + arraysNode = value.getNode("resources") + } + + /** + * Add a new string to the resources. + * + * @param identifier The key of the string. + * @param value The value of the string. + * @throws IllegalArgumentException if the string already exists. + */ + fun addString(identifier: String, value: String, formatted: Boolean) = + StringResource(identifier, value, formatted).include() + + /** + * Add an array to the resources. + * + * @param arrayResource The array resource to add. + */ + fun addArray(arrayResource: ArrayResource) = + arraysNode!!.addResource(arrayResource) + + /** + * Add a preference to the settings. + * + * @param preference The preference to add. + */ + fun addPreference(preference: BasePreference) = + revancedPreferenceNode!!.addPreference(preference) { it.include() } + + /** + * Add a new resource to the resources. + * + * @throws IllegalArgumentException if the resource already exists. + */ + internal fun IResource.include() { + when (this) { + is StringResource -> { + if (strings.any { it.name == name }) return + strings.add(this) + } + + is ArrayResource -> addArray(this) + else -> throw NotImplementedError("Unsupported resource type") + } + } + + internal fun DomFileEditor?.getNode(tagName: String) = this!!.file.getElementsByTagName(tagName).item(0) + } + + override fun close() { + // merge all strings, skip duplicates + strings.forEach { + stringsNode!!.addResource(it) + } + + revancedPreferencesEditor?.close() + stringsEditor?.close() + arraysEditor?.close() + } +} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/shared/settings/util/AbstractPreferenceScreen.kt b/src/main/kotlin/app/revanced/patches/shared/settings/util/AbstractPreferenceScreen.kt new file mode 100644 index 000000000..a257af9a2 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/shared/settings/util/AbstractPreferenceScreen.kt @@ -0,0 +1,89 @@ +package app.revanced.patches.shared.settings.util + +import app.revanced.patches.shared.settings.preference.BasePreference +import app.revanced.patches.shared.settings.preference.impl.PreferenceCategory +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import java.io.Closeable + +internal abstract class AbstractPreferenceScreen( + private val root: MutableList = mutableListOf() +) : Closeable { + + override fun close() { + if (root.isEmpty()) + return + + for (preference in root.sortedBy { it.title }) { + commit(preference.transform()) + } + } + + /** + * Finalize and insert root preference into resource patch + */ + abstract fun commit(screen: PreferenceScreen) + + open inner class Screen( + key: String, + title: String, + val summary: String? = null, + preferences: MutableList = mutableListOf(), + val categories: MutableList = mutableListOf() + ) : BasePreferenceCollection(key, title, preferences) { + override fun transform(): PreferenceScreen { + return PreferenceScreen( + key, + StringResource("${key}_title", title), + preferences.sortedBy { it.title.value } + + categories.sortedBy { it.title }.map { it.transform() }, + summary?.let { summary -> + StringResource("${key}_summary", summary) + } + ) + } + + private fun ensureScreenInserted() { + // Add to screens if not yet done + if(!this@AbstractPreferenceScreen.root.contains(this)) + this@AbstractPreferenceScreen.root.add(this) + } + + fun addPreferences(vararg preferences: BasePreference) { + ensureScreenInserted() + this.preferences.addAll(preferences) + } + + open inner class Category( + key: String, + title: String, + preferences: MutableList = mutableListOf() + ): BasePreferenceCollection(key, title, preferences) { + override fun transform(): PreferenceCategory { + return PreferenceCategory( + key, + StringResource("${key}_title", title), + preferences.sortedBy { it.title.value } + ) + } + + fun addPreferences(vararg preferences: BasePreference) { + ensureScreenInserted() + + // Add to categories if not yet done + if(!this@Screen.categories.contains(this)) + this@Screen.categories.add(this) + + this.preferences.addAll(preferences) + } + } + } + + abstract class BasePreferenceCollection( + val key: String, + val title: String, + val preferences: MutableList = mutableListOf() + ) { + abstract fun transform(): BasePreference + } +} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/general/resource/patch/GeneralAdsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/general/resource/patch/GeneralAdsResourcePatch.kt index 1628eb32e..af5afeafb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ad/general/resource/patch/GeneralAdsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ad/general/resource/patch/GeneralAdsResourcePatch.kt @@ -7,10 +7,10 @@ import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch -import app.revanced.patches.shared.settings.impl.InputType -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference -import app.revanced.patches.shared.settings.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.InputType +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.TextPreference import app.revanced.patches.youtube.ad.general.annotation.GeneralAdsCompatibility import app.revanced.patches.youtube.misc.litho.filter.patch.LithoFilterPatch import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch @@ -187,7 +187,7 @@ class GeneralAdsResourcePatch : ResourcePatch { "Chapter teasers are shown" ) ), - app.revanced.patches.shared.settings.impl.PreferenceScreen( + app.revanced.patches.shared.settings.preference.impl.PreferenceScreen( "revanced_adremover_custom", StringResource("revanced_adremover_custom_title", "Custom filter"), listOf( diff --git a/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt index 340f00f78..c7ebb4383 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/ad/video/patch/VideoAdsPatch.kt @@ -17,8 +17,8 @@ import app.revanced.patches.youtube.ad.video.fingerprints.LoadVideoAdsFingerprin import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.playback.fix.patch.FixPlaybackPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class, FixPlaybackPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/resource/patch/DownloadsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/resource/patch/DownloadsResourcePatch.kt index c85f76851..e757cd2c7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/resource/patch/DownloadsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/downloads/resource/patch/DownloadsResourcePatch.kt @@ -8,10 +8,11 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotations.DependsOn -import app.revanced.patches.shared.settings.impl.* -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference -import app.revanced.patches.shared.settings.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.InputType +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen import app.revanced.patches.youtube.interaction.downloads.annotation.DownloadsCompatibility import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch import app.revanced.patches.youtube.misc.playercontrols.resource.patch.BottomControlsResourcePatch diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/patch/EnableSeekbarTappingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/patch/EnableSeekbarTappingPatch.kt index 7c197652e..fed792408 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/patch/EnableSeekbarTappingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/seekbar/patch/EnableSeekbarTappingPatch.kt @@ -16,8 +16,8 @@ import app.revanced.patches.youtube.interaction.seekbar.fingerprints.SeekbarTapp import app.revanced.patches.youtube.interaction.seekbar.fingerprints.SeekbarTappingParentFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.Opcode import org.jf.dexlib2.builder.instruction.BuilderInstruction21t import org.jf.dexlib2.iface.Method diff --git a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/resource/SwipeControlsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/resource/SwipeControlsResourcePatch.kt index cc5f52060..01cfffd5d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/resource/SwipeControlsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/patch/resource/SwipeControlsResourcePatch.kt @@ -7,11 +7,11 @@ import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotations.DependsOn -import app.revanced.patches.shared.settings.impl.* -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference -import app.revanced.patches.shared.settings.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.InputType import app.revanced.patches.youtube.interaction.swipecontrols.annotation.SwipeControlsCompatibility import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch import app.revanced.util.resources.ResourceUtils diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/patch/AutoCaptionsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/patch/AutoCaptionsPatch.kt index 10f79df8e..38c12c992 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/patch/AutoCaptionsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autocaptions/patch/AutoCaptionsPatch.kt @@ -16,8 +16,8 @@ import app.revanced.patches.youtube.layout.autocaptions.fingerprints.SubtitleBut import app.revanced.patches.youtube.layout.autocaptions.fingerprints.SubtitleTrackFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/patch/HideAutoplayButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/patch/HideAutoplayButtonPatch.kt index 9b73c6206..3a30a5062 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/patch/HideAutoplayButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/autoplaybutton/patch/HideAutoplayButtonPatch.kt @@ -17,8 +17,8 @@ import app.revanced.patches.youtube.layout.autoplaybutton.fingerprints.LayoutCon import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.Instruction import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.instruction.WideLiteralInstruction diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/patch/HideButtonsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/patch/HideButtonsPatch.kt index d5e2673ee..b45897170 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/patch/HideButtonsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/patch/HideButtonsPatch.kt @@ -13,9 +13,9 @@ import app.revanced.patches.youtube.misc.litho.filter.patch.LithoFilterPatch import app.revanced.patches.youtube.layout.buttons.annotations.HideButtonsCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([ResourceMappingPatch::class, LithoFilterPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/patch/HideCastButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/patch/HideCastButtonPatch.kt index 3487189d3..7a56ab2f1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/patch/HideCastButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/castbutton/patch/HideCastButtonPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.youtube.layout.castbutton.annotations.CastButtonCompatibility import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/comments/resource/patch/CommentsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/comments/resource/patch/CommentsResourcePatch.kt index 52bba0d81..7d15197f7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/comments/resource/patch/CommentsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/comments/resource/patch/CommentsResourcePatch.kt @@ -10,9 +10,9 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.comments.annotations.CommentsCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Name("comments-resource-patch") @CommentsCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/patch/FullscreenPanelsRemoverPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/patch/FullscreenPanelsRemoverPatch.kt index 4faa41e2f..75485120d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/patch/FullscreenPanelsRemoverPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/fullscreenpanels/patch/FullscreenPanelsRemoverPatch.kt @@ -18,8 +18,8 @@ import app.revanced.patches.youtube.layout.fullscreenpanels.fingerprints.Fullscr import app.revanced.patches.youtube.layout.fullscreenpanels.fingerprints.FullscreenViewAdderParentFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @Name("disable-fullscreen-panels") diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/resource/patch/AlbumCardsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/resource/patch/AlbumCardsResourcePatch.kt index 329835ad1..c0a2ae155 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/resource/patch/AlbumCardsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hidealbumcards/resource/patch/AlbumCardsResourcePatch.kt @@ -10,8 +10,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.hidealbumcards.annotations.AlbumCardsCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Name("hide-album-cards-resource-patch") @AlbumCardsCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/patch/HideArtistCardPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/patch/HideArtistCardPatch.kt index d2c89c659..9b7ff77e1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/patch/HideArtistCardPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hideartistcard/patch/HideArtistCardPatch.kt @@ -13,8 +13,8 @@ import app.revanced.patches.youtube.misc.litho.filter.patch.LithoFilterPatch import app.revanced.patches.youtube.layout.buttons.annotations.HideArtistCardCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([ResourceMappingPatch::class, LithoFilterPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hidecaptionsbutton/patch/HideCaptionsButtonPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hidecaptionsbutton/patch/HideCaptionsButtonPatch.kt index ba163b459..a2500367b 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hidecaptionsbutton/patch/HideCaptionsButtonPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hidecaptionsbutton/patch/HideCaptionsButtonPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.layout.autocaptions.annotations.AutoCaptions import app.revanced.patches.youtube.layout.autocaptions.fingerprints.SubtitleButtonControllerFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.Opcode @Patch diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/resource/patch/CrowdfundingBoxResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/resource/patch/CrowdfundingBoxResourcePatch.kt index fd61e472f..1ae6eea25 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/resource/patch/CrowdfundingBoxResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hidecrowdfundingbox/resource/patch/CrowdfundingBoxResourcePatch.kt @@ -10,8 +10,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.hidecrowdfundingbox.annotations.CrowdfundingBoxCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Name("crowdfunding-box-resource-patch") @CrowdfundingBoxCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/resource/patch/HideEndscreenCardsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/resource/patch/HideEndscreenCardsResourcePatch.kt index adac71781..949e5847a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/resource/patch/HideEndscreenCardsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hideendscreencards/resource/patch/HideEndscreenCardsResourcePatch.kt @@ -10,8 +10,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.hideendscreencards.annotations.HideEndscreenCardsCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Name("hide-endscreen-cards-resource-patch") @HideEndscreenCardsCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/resource/patch/HideInfocardsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/resource/patch/HideInfocardsResourcePatch.kt index bbb1b0e27..ff58fb573 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/resource/patch/HideInfocardsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hideinfocards/resource/patch/HideInfocardsResourcePatch.kt @@ -9,8 +9,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.hideinfocards.annotations.HideInfocardsCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @HideInfocardsCompatibility @DependsOn([SettingsPatch::class, ResourceMappingPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/patch/MixPlaylistsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/patch/MixPlaylistsPatch.kt index b1de97af0..d44b0598a 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/patch/MixPlaylistsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hidemixplaylists/patch/MixPlaylistsPatch.kt @@ -17,8 +17,8 @@ import app.revanced.patches.youtube.layout.hidemixplaylists.fingerprints.CreateM import app.revanced.patches.youtube.layout.hidemixplaylists.fingerprints.SecondCreateMixPlaylistFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Patch diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/patch/HideTimeAndSeekbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/patch/HideTimeAndSeekbarPatch.kt index 67dddb43b..31bf1fab7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/patch/HideTimeAndSeekbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/hidetimeandseekbar/patch/HideTimeAndSeekbarPatch.kt @@ -15,8 +15,8 @@ import app.revanced.patches.youtube.layout.hidetimeandseekbar.fingerprints.TimeC import app.revanced.patches.youtube.layout.sponsorblock.bytecode.fingerprints.CreateVideoPlayerSeekbarFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt index 0fc946236..68b1b2f6d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/oldqualitylayout/patch/OldQualityLayoutPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.layout.oldqualitylayout.annotations.OldQuali import app.revanced.patches.youtube.layout.oldqualitylayout.fingerprints.QualityMenuViewInflateFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.FiveRegisterInstruction @Patch diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/resource/patch/HideEmailAddressResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/resource/patch/HideEmailAddressResourcePatch.kt index 181553ef0..917ab4563 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/resource/patch/HideEmailAddressResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/personalinformation/resource/patch/HideEmailAddressResourcePatch.kt @@ -10,8 +10,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.personalinformation.annotations.HideEmailAddressCompatibility import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Name("hide-email-address-resource-patch") @HideEmailAddressCompatibility diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/patch/CreateButtonRemoverPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/patch/CreateButtonRemoverPatch.kt index bea19f524..86c5f8b2f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/patch/CreateButtonRemoverPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/createbutton/patch/CreateButtonRemoverPatch.kt @@ -20,8 +20,8 @@ import app.revanced.patches.youtube.layout.pivotbar.utils.InjectionUtils.injectH import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, ResourceMappingPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/patch/ShortsButtonRemoverPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/patch/ShortsButtonRemoverPatch.kt index 8e4c370b1..86b71e4cd 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/patch/ShortsButtonRemoverPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/pivotbar/shortsbutton/patch/ShortsButtonRemoverPatch.kt @@ -20,8 +20,8 @@ import app.revanced.patches.youtube.layout.pivotbar.utils.InjectionUtils.REGISTE import app.revanced.patches.youtube.layout.pivotbar.utils.InjectionUtils.injectHook import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/patch/PlayerPopupPanelsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/patch/PlayerPopupPanelsPatch.kt index 8712edb62..9aca33f4f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/patch/PlayerPopupPanelsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/playerpopuppanels/patch/PlayerPopupPanelsPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.layout.playerpopuppanels.annotations.PlayerP import app.revanced.patches.youtube.layout.playerpopuppanels.fingerprints.EngagementPanelControllerFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/reels/patch/HideReelsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/reels/patch/HideReelsPatch.kt index fa7e15979..89e6de800 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/reels/patch/HideReelsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/reels/patch/HideReelsPatch.kt @@ -12,8 +12,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.reels.annotations.HideReelsCompatibility import app.revanced.patches.youtube.layout.reels.fingerprints.HideReelsFingerprint import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference //@Patch TODO: this is currently in the general-bytecode-ads patch due to the integrations having a preference for including reels or not. Move it here. @Name("hide-reels") diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/resource/patch/ReturnYouTubeDislikeResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/resource/patch/ReturnYouTubeDislikeResourcePatch.kt index 581454369..5f0c90753 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/resource/patch/ReturnYouTubeDislikeResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/resource/patch/ReturnYouTubeDislikeResourcePatch.kt @@ -11,8 +11,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patches.youtube.layout.returnyoutubedislike.annotations.ReturnYouTubeDislikeCompatibility import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.Preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.Preference +import app.revanced.patches.shared.settings.preference.impl.StringResource import app.revanced.util.resources.ResourceUtils.Settings.mergeStrings @DependsOn([FixLocaleConfigErrorPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/resource/patch/SponsorBlockResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/resource/patch/SponsorBlockResourcePatch.kt index fd391a276..51b1e08c7 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/resource/patch/SponsorBlockResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/sponsorblock/resource/patch/SponsorBlockResourcePatch.kt @@ -11,8 +11,8 @@ import app.revanced.patches.youtube.layout.sponsorblock.annotations.SponsorBlock import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.Preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.Preference +import app.revanced.patches.shared.settings.preference.impl.StringResource import app.revanced.util.resources.ResourceUtils import app.revanced.util.resources.ResourceUtils.Settings.mergeStrings import app.revanced.util.resources.ResourceUtils.copyResources diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/patch/DisableShortsOnStartupPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/patch/DisableShortsOnStartupPatch.kt index 3e6dc9a13..924c07899 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/patch/DisableShortsOnStartupPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/startupshortsreset/patch/DisableShortsOnStartupPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.layout.startupshortsreset.annotations.Startu import app.revanced.patches.youtube.layout.startupshortsreset.fingerprints.UserWasInShortsFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/patch/TabletMiniPlayerPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/patch/TabletMiniPlayerPatch.kt index 410983790..6f0b2a5f1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/patch/TabletMiniPlayerPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/tabletminiplayer/patch/TabletMiniPlayerPatch.kt @@ -20,8 +20,8 @@ import app.revanced.patches.youtube.layout.tabletminiplayer.fingerprints.MiniPla import app.revanced.patches.youtube.layout.tabletminiplayer.fingerprints.MiniPlayerResponseModelSizeCheckFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.OneRegisterInstruction @Patch diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/patch/WatchinVRPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/patch/WatchinVRPatch.kt index 70c88c73e..89de127f8 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/patch/WatchinVRPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/watchinvr/patch/WatchinVRPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.layout.watchinvr.annotations.WatchinVRCompat import app.revanced.patches.youtube.layout.watchinvr.fingerprints.WatchinVRFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/watermark/patch/HideWatermarkPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/watermark/patch/HideWatermarkPatch.kt index eae453c4c..909ccd247 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/watermark/patch/HideWatermarkPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/watermark/patch/HideWatermarkPatch.kt @@ -18,8 +18,8 @@ import app.revanced.patches.youtube.layout.watermark.fingerprints.HideWatermarkF import app.revanced.patches.youtube.layout.watermark.fingerprints.HideWatermarkParentFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/patch/WideSearchbarPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/patch/WideSearchbarPatch.kt index 5c2d1ff03..ed5e83ded 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/patch/WideSearchbarPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/layout/widesearchbar/patch/WideSearchbarPatch.kt @@ -20,8 +20,8 @@ import app.revanced.patches.youtube.layout.widesearchbar.fingerprints.WideSearch import app.revanced.patches.youtube.layout.widesearchbar.fingerprints.WideSearchbarTwoParentFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class, SettingsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/patch/AutoRepeatPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/patch/AutoRepeatPatch.kt index b90ceb5ad..38617967d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/patch/AutoRepeatPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/autorepeat/patch/AutoRepeatPatch.kt @@ -18,8 +18,8 @@ import app.revanced.patches.youtube.misc.autorepeat.fingerprints.AutoRepeatFinge import app.revanced.patches.youtube.misc.autorepeat.fingerprints.AutoRepeatParentFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference @Patch @DependsOn([IntegrationsPatch::class]) diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/patch/DebuggingPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/patch/DebuggingPatch.kt index b2ac5f609..01eba6508 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/patch/DebuggingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/debugging/patch/DebuggingPatch.kt @@ -10,8 +10,8 @@ import app.revanced.patcher.patch.annotations.Patch import app.revanced.patches.youtube.misc.debugging.annotations.DebuggingCompatibility import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.w3c.dom.Element @Patch diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch.kt index 64e066292..f84efbee9 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch.kt @@ -14,8 +14,8 @@ import app.revanced.patches.youtube.misc.hdrbrightness.annotations.HDRBrightness import app.revanced.patches.youtube.misc.hdrbrightness.fingerprints.HDRBrightnessFingerprint import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.instruction.TwoRegisterInstruction import org.jf.dexlib2.iface.reference.FieldReference diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/resource/MicroGResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/resource/MicroGResourcePatch.kt index a57236a0d..1cdc47f49 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/resource/MicroGResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/microg/patch/resource/MicroGResourcePatch.kt @@ -16,8 +16,8 @@ import app.revanced.patches.youtube.misc.microg.shared.Constants.REVANCED_PACKAG import app.revanced.patches.youtube.misc.microg.shared.Constants.SPOOFED_PACKAGE_NAME import app.revanced.patches.youtube.misc.microg.shared.Constants.SPOOFED_PACKAGE_SIGNATURE import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.Preference -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.Preference +import app.revanced.patches.shared.settings.preference.impl.StringResource import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsResourcePatch import app.revanced.util.microg.Constants.MICROG_VENDOR import app.revanced.util.microg.MicroGManifestHelper diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt index 8d2f2ee50..94e992464 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/minimizedplayback/patch/MinimizedPlaybackPatch.kt @@ -18,8 +18,8 @@ import app.revanced.patches.youtube.misc.minimizedplayback.fingerprints.Minimize import app.revanced.patches.youtube.misc.minimizedplayback.fingerprints.MinimizedPlaybackManagerFingerprint import app.revanced.patches.youtube.misc.minimizedplayback.fingerprints.MinimizedPlaybackSettingsFingerprint import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.reference.MethodReference diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt index c4497c246..a15da9b2e 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/patch/OpenLinksDirectlyPatch.kt @@ -16,8 +16,8 @@ import app.revanced.patches.youtube.misc.openlinksdirectly.annotations.OpenLinks import app.revanced.patches.youtube.misc.openlinksdirectly.fingerprints.OpenLinksDirectlyFingerprintPrimary import app.revanced.patches.youtube.misc.openlinksdirectly.fingerprints.OpenLinksDirectlyFingerprintSecondary import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import org.jf.dexlib2.iface.instruction.Instruction import org.jf.dexlib2.iface.instruction.formats.Instruction11x import org.jf.dexlib2.iface.instruction.formats.Instruction35c diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/patch/FixPlaybackPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/patch/FixPlaybackPatch.kt index c3ded142f..fc7c05eb1 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/patch/FixPlaybackPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/playback/fix/patch/FixPlaybackPatch.kt @@ -12,8 +12,8 @@ import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.playback.fix.annotations.FixPlaybackCompatibility import app.revanced.patches.youtube.misc.video.information.patch.VideoInformationPatch import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import app.revanced.patches.youtube.misc.video.videoid.patch.VideoIdPatch @DependsOn([ diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsPatch.kt index 9d9732ef0..9cac0592d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/bytecode/patch/SettingsPatch.kt @@ -11,10 +11,8 @@ 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.patches.shared.settings.BasePreference -import app.revanced.patches.shared.settings.impl.Preference -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.Preference +import app.revanced.patches.shared.settings.util.AbstractPreferenceScreen import app.revanced.patches.youtube.misc.integrations.patch.IntegrationsPatch import app.revanced.patches.youtube.misc.settings.annotations.SettingsCompatibility import app.revanced.patches.youtube.misc.settings.bytecode.fingerprints.LicenseActivityFingerprint @@ -22,7 +20,6 @@ import app.revanced.patches.youtube.misc.settings.bytecode.fingerprints.ThemeSet import app.revanced.patches.youtube.misc.settings.bytecode.fingerprints.ThemeSetterSystemFingerprint import app.revanced.patches.youtube.misc.settings.resource.patch.SettingsResourcePatch import org.jf.dexlib2.util.MethodUtil -import java.io.Closeable @Patch @DependsOn( @@ -134,7 +131,7 @@ class SettingsPatch : BytecodePatch( fun addString(identifier: String, value: String, formatted: Boolean = true) = SettingsResourcePatch.addString(identifier, value, formatted) - fun addPreferenceScreen(preferenceScreen: app.revanced.patches.shared.settings.impl.PreferenceScreen) = + fun addPreferenceScreen(preferenceScreen: app.revanced.patches.shared.settings.preference.impl.PreferenceScreen) = SettingsResourcePatch.addPreferenceScreen(preferenceScreen) fun addPreference(preference: Preference) = @@ -148,38 +145,16 @@ class SettingsPatch : BytecodePatch( /** * Preference screens patches should add their settings to. */ - internal enum class PreferenceScreen( - private val key: String, - private val title: String, - private val summary: String? = null, - private val preferences: MutableList = mutableListOf() - ) : Closeable { - ADS("ads", "Ads", "Ad related settings"), - INTERACTIONS("interactions", "Interaction", "Settings related to interactions"), - LAYOUT("layout", "Layout", "Settings related to the layout"), - MISC("misc", "Miscellaneous", "Miscellaneous patches"); + internal object PreferenceScreen : AbstractPreferenceScreen() { + val ADS = Screen("ads", "Ads", "Ad related settings") + val INTERACTIONS = Screen("interactions", "Interaction", "Settings related to interactions") + val LAYOUT = Screen("layout", "Layout", "Settings related to the layout") + val MISC = Screen("misc", "Misc", "Miscellaneous patches") - override fun close() { - if (preferences.size == 0) return - - addPreferenceScreen( - PreferenceScreen( - key, - StringResource("${key}_title", title), - preferences, - summary?.let { summary -> - StringResource("${key}_summary", summary) - } - ) - ) + override fun commit(screen: app.revanced.patches.shared.settings.preference.impl.PreferenceScreen) { + addPreferenceScreen(screen) } - - /** - * Add preferences to the preference screen. - */ - fun addPreferences(vararg preferences: BasePreference) = this.preferences.addAll(preferences) } - override fun close() = PreferenceScreen.values().forEach(PreferenceScreen::close) - + override fun close() = PreferenceScreen.close() } diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/resource/patch/SettingsResourcePatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/resource/patch/SettingsResourcePatch.kt index 364701d77..7bad39653 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/settings/resource/patch/SettingsResourcePatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/settings/resource/patch/SettingsResourcePatch.kt @@ -1,34 +1,49 @@ package app.revanced.patches.youtube.misc.settings.resource.patch +import app.revanced.patcher.annotation.Description import app.revanced.patcher.annotation.Name import app.revanced.patcher.annotation.Version import app.revanced.patcher.data.DomFileEditor import app.revanced.patcher.data.ResourceContext import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResultSuccess -import app.revanced.patcher.patch.ResourcePatch import app.revanced.patcher.patch.annotations.DependsOn -import app.revanced.patches.youtube.misc.manifest.patch.FixLocaleConfigErrorPatch import app.revanced.patches.shared.mapping.misc.patch.ResourceMappingPatch +import app.revanced.patches.shared.settings.preference.addPreference +import app.revanced.patches.shared.settings.preference.impl.ArrayResource +import app.revanced.patches.shared.settings.preference.impl.Preference +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.resource.patch.AbstractSettingsResourcePatch import app.revanced.patches.youtube.misc.settings.annotations.SettingsCompatibility import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.IResource -import app.revanced.patches.shared.settings.addPreference -import app.revanced.patches.shared.settings.addResource -import app.revanced.patches.shared.settings.impl.ArrayResource -import app.revanced.patches.shared.settings.impl.Preference -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource import app.revanced.util.resources.ResourceUtils import app.revanced.util.resources.ResourceUtils.copyResources import org.w3c.dom.Node @Name("settings-resource-patch") +@DependsOn([ResourceMappingPatch::class]) @SettingsCompatibility -@DependsOn([FixLocaleConfigErrorPatch::class, ResourceMappingPatch::class]) +@Description("Applies mandatory patches to implement ReVanced settings into the application.") @Version("0.0.1") -class SettingsResourcePatch : ResourcePatch { +class SettingsResourcePatch : AbstractSettingsResourcePatch( + "revanced_prefs", + "settings" +) { override fun execute(context: ResourceContext): PatchResult { + super.execute(context) + + /* + * used for self-restart + */ + context.xmlEditor["AndroidManifest.xml"].use { editor -> + editor.file.getElementsByTagName("manifest").item(0).also { + it.appendChild(it.ownerDocument.createElement("uses-permission").also { element -> + element.setAttribute("android:name", "android.permission.SCHEDULE_EXACT_ALARM") + }) + } + } + /* * used by a fingerprint of SettingsPatch */ @@ -50,8 +65,6 @@ class SettingsResourcePatch : ResourcePatch { "revanced_settings_toolbar.xml", "revanced_settings_with_toolbar.xml", "revanced_settings_with_toolbar_layout.xml" - ), ResourceUtils.ResourceGroup( - "xml", "revanced_prefs.xml" // template for new preferences ), ResourceUtils.ResourceGroup( // required resource for back button, because when the base APK is used, this resource will not exist "drawable-xxxhdpi", "quantum_ic_arrow_back_white_24.png" @@ -63,20 +76,8 @@ class SettingsResourcePatch : ResourcePatch { context.copyResources("settings", resourceGroup) } - context.xmlEditor["AndroidManifest.xml"].use { editor -> - editor.file.getElementsByTagName("manifest").item(0).also { - it.appendChild(it.ownerDocument.createElement("uses-permission").also { element -> - element.setAttribute("android:name", "android.permission.SCHEDULE_EXACT_ALARM") - }) - } - } - - revancedPreferencesEditor = context.xmlEditor["res/xml/revanced_prefs.xml"] preferencesEditor = context.xmlEditor["res/xml/settings_fragment.xml"] - stringsEditor = context.xmlEditor["res/values/strings.xml"] - arraysEditor = context.xmlEditor["res/values/arrays.xml"] - // Add the ReVanced settings to the YouTube settings val youtubePackage = "com.google.android.youtube" SettingsPatch.addPreference( @@ -103,35 +104,23 @@ class SettingsResourcePatch : ResourcePatch { // if this is not null, all intents will be renamed to this var overrideIntentsTargetPackage: String? = null - private var revancedPreferenceNode: Node? = null private var preferencesNode: Node? = null - private var stringsNode: Node? = null - private var arraysNode: Node? = null - - private var strings = mutableListOf() - - private var revancedPreferencesEditor: DomFileEditor? = null - set(value) { - field = value - revancedPreferenceNode = value.getNode("PreferenceScreen") - } private var preferencesEditor: DomFileEditor? = null set(value) { field = value preferencesNode = value.getNode("PreferenceScreen") } - private var stringsEditor: DomFileEditor? = null - set(value) { - field = value - stringsNode = value.getNode("resources") - } - private var arraysEditor: DomFileEditor? = null - set(value) { - field = value - arraysNode = value.getNode("resources") - } + /* Companion delegates */ + + /** + * Add a preference fragment to the main preferences. + * + * @param preference The preference to add. + */ + fun addPreference(preference: Preference) = + preferencesNode!!.addPreference(preference) { it.include() } /** * Add a new string to the resources. @@ -141,60 +130,25 @@ class SettingsResourcePatch : ResourcePatch { * @throws IllegalArgumentException if the string already exists. */ fun addString(identifier: String, value: String, formatted: Boolean) = - StringResource(identifier, value, formatted).include() + AbstractSettingsResourcePatch.addString(identifier, value, formatted) /** * Add an array to the resources. * * @param arrayResource The array resource to add. */ - fun addArray(arrayResource: ArrayResource) { - arraysNode!!.appendChild(arrayResource.serialize(arraysNode!!.ownerDocument) { it.include() }) - } + fun addArray(arrayResource: ArrayResource) = AbstractSettingsResourcePatch.addArray(arrayResource) /** - * Add a preference screen to the settings. + * Add a preference to the settings. * * @param preferenceScreen The name of the preference screen. */ - fun addPreferenceScreen(preferenceScreen: PreferenceScreen) = - revancedPreferenceNode!!.addPreference(preferenceScreen) { it.include() } - - /** - * Add a preference fragment to the preferences. - * - * @param preference The preference to add. - */ - fun addPreference(preference: Preference) { - preferencesNode!!.addPreference(preference) { it.include() } - } - - /** - * Add a new resource to the resources. - * - * @throws IllegalArgumentException if the resource already exists. - */ - private fun IResource.include() { - when(this) { - is StringResource -> { - if (strings.any { it.name == name }) return - strings.add(this) - } - is ArrayResource -> addArray(this) - else -> throw NotImplementedError("Unsupported resource type") - } - } - - private fun DomFileEditor?.getNode(tagName: String) = this!!.file.getElementsByTagName(tagName).item(0) - - private fun Node?.createElement(tagName: String) = this!!.ownerDocument.createElement(tagName) + fun addPreferenceScreen(preferenceScreen: PreferenceScreen) = addPreference(preferenceScreen) } override fun close() { - // merge all strings, skip duplicates - strings.forEach { - stringsNode!!.addResource(it) - } + super.close() // rename the intent package names if it was set overrideIntentsTargetPackage?.let { packageName -> @@ -221,9 +175,6 @@ class SettingsResourcePatch : ResourcePatch { } } - revancedPreferencesEditor?.close() preferencesEditor?.close() - stringsEditor?.close() - arraysEditor?.close() } } \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/patch/RememberVideoQualityPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/patch/RememberVideoQualityPatch.kt index a0a9f6130..4c090dcee 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/patch/RememberVideoQualityPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/video/quality/patch/RememberVideoQualityPatch.kt @@ -18,8 +18,8 @@ import app.revanced.patches.youtube.misc.video.quality.fingerprints.VideoQuality import app.revanced.patches.youtube.misc.video.quality.fingerprints.VideoQualitySetterFingerprint import app.revanced.patches.youtube.misc.video.quality.fingerprints.VideoUserQualityChangeFingerprint import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import app.revanced.patches.youtube.misc.video.videoid.patch.VideoIdPatch import org.jf.dexlib2.iface.instruction.ReferenceInstruction import org.jf.dexlib2.iface.reference.FieldReference diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/patch/CustomVideoBufferPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/patch/CustomVideoBufferPatch.kt index aada9f994..4562f93b3 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/patch/CustomVideoBufferPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/videobuffer/patch/CustomVideoBufferPatch.kt @@ -14,10 +14,10 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.InputType -import app.revanced.patches.shared.settings.impl.PreferenceScreen -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.TextPreference +import app.revanced.patches.shared.settings.preference.impl.InputType +import app.revanced.patches.shared.settings.preference.impl.PreferenceScreen +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.TextPreference import app.revanced.patches.youtube.misc.videobuffer.annotations.CustomVideoBufferCompatibility import app.revanced.patches.youtube.misc.videobuffer.fingerprints.MaxBufferFingerprint import app.revanced.patches.youtube.misc.videobuffer.fingerprints.PlaybackBufferFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/patch/ZoomHapticsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/patch/ZoomHapticsPatch.kt index c5f650dfe..89cccda3c 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/patch/ZoomHapticsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/misc/zoomhaptics/patch/ZoomHapticsPatch.kt @@ -13,8 +13,8 @@ import app.revanced.patcher.patch.annotations.DependsOn import app.revanced.patcher.patch.annotations.Patch import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource -import app.revanced.patches.shared.settings.impl.SwitchPreference +import app.revanced.patches.shared.settings.preference.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.SwitchPreference import app.revanced.patches.youtube.misc.zoomhaptics.annotations.ZoomHapticsCompatibility import app.revanced.patches.youtube.misc.zoomhaptics.fingerprints.ZoomHapticsFingerprint diff --git a/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt b/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt index eb79befc3..7acb9fcb0 100644 --- a/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt +++ b/src/main/kotlin/app/revanced/util/resources/ResourceUtils.kt @@ -3,7 +3,7 @@ package app.revanced.util.resources import app.revanced.patcher.data.DomFileEditor import app.revanced.patcher.data.ResourceContext import app.revanced.patches.youtube.misc.settings.bytecode.patch.SettingsPatch -import app.revanced.patches.shared.settings.impl.StringResource +import app.revanced.patches.shared.settings.preference.impl.StringResource import org.w3c.dom.Node import java.nio.file.Files import java.nio.file.StandardCopyOption