mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-08 10:23:55 +01:00
Compare commits
21 Commits
v3.2.0-dev
...
v3.2.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d3dd4d50a | ||
|
|
1ecb6b2a6c | ||
|
|
21136d76cd | ||
|
|
c4b3d0fde0 | ||
|
|
9148bdfd1c | ||
|
|
e2b2b7424b | ||
|
|
b12a14c4d0 | ||
|
|
44082095ba | ||
|
|
987e4e7e91 | ||
|
|
4fd77b130a | ||
|
|
47aa56a06e | ||
|
|
47f2de4bc8 | ||
|
|
36b929c3b3 | ||
|
|
7109d8e088 | ||
|
|
c91df0f29c | ||
|
|
2c83b86297 | ||
|
|
5ceda29fce | ||
|
|
fcacd0f30d | ||
|
|
4f0c756b36 | ||
|
|
8ad9d7dedd | ||
|
|
b81c99920b |
59
CHANGELOG.md
59
CHANGELOG.md
@@ -1,3 +1,62 @@
|
||||
# [3.2.0-dev.9](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.8...v3.2.0-dev.9) (2023-12-27)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube - Theme:** Add classic dark color to presets ([#2542](https://github.com/ReVanced/revanced-patches/issues/2542)) ([4e1dc00](https://github.com/ReVanced/revanced-patches/commit/4e1dc0041d6693fba08e78514787407f933a6e41))
|
||||
* **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](https://github.com/ReVanced/revanced-patches/commit/a07f83fe89ce577fc8bd904eacad5383a639b09b))
|
||||
|
||||
# [3.2.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.7...v3.2.0-dev.8) (2023-12-26)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube:** Fix grammer mistakes in patch descriptions ([#2543](https://github.com/ReVanced/revanced-patches/issues/2543)) ([ebf5993](https://github.com/ReVanced/revanced-patches/commit/ebf599349c508067a28526267d82030b679df045))
|
||||
|
||||
# [3.2.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.6...v3.2.0-dev.7) (2023-12-24)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](https://github.com/ReVanced/revanced-patches/commit/bdc9a129eff3a5051b8b37665b3243a8b61cbbac))
|
||||
* **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](https://github.com/ReVanced/revanced-patches/commit/55cc7f1c7722f56af6d33ea2bd09a1b99d635209))
|
||||
|
||||
# [3.2.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.5...v3.2.0-dev.6) (2023-12-24)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Spoof SIM country:** Validate patch option value correctly ([8105463](https://github.com/ReVanced/revanced-patches/commit/81054637915a5399d15f546b2290b5d939e15732))
|
||||
|
||||
# [3.2.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.4...v3.2.0-dev.5) (2023-12-23)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([#2531](https://github.com/ReVanced/revanced-patches/issues/2531)) ([828abb0](https://github.com/ReVanced/revanced-patches/commit/828abb0558926cd6557c79abcf1a04bfe2c719e6))
|
||||
|
||||
# [3.2.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.3...v3.2.0-dev.4) (2023-12-21)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Tiktok - Remember clear display:** Use correct name ([d7e44cb](https://github.com/ReVanced/revanced-patches/commit/d7e44cb887396bba27ee81c70c006f0cc247c56d))
|
||||
|
||||
# [3.2.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.2...v3.2.0-dev.3) (2023-12-21)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **Tiktok:** Add `Remember clear mode` patch ([#2509](https://github.com/ReVanced/revanced-patches/issues/2509)) ([048bf59](https://github.com/ReVanced/revanced-patches/commit/048bf592ef93ee5138aa1886be1644501f88964a))
|
||||
|
||||
# [3.2.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v3.2.0-dev.1...v3.2.0-dev.2) (2023-12-19)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](https://github.com/ReVanced/revanced-patches/commit/866bcebdd990b964d3dfd5aea792e7fffaedbf44))
|
||||
* **YouTube:** Remove `Hide email address` patch ([3b84305](https://github.com/ReVanced/revanced-patches/commit/3b84305a6b97800cb147f86c642f19689548aca5))
|
||||
|
||||
# [3.2.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v3.1.0...v3.2.0-dev.1) (2023-12-18)
|
||||
|
||||
|
||||
|
||||
@@ -818,6 +818,12 @@ public final class app/revanced/patches/tiktok/feedfilter/FeedFilterPatch : app/
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/tiktok/interaction/cleardisplay/RememberClearDisplayPatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/tiktok/interaction/cleardisplay/RememberClearDisplayPatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/tiktok/interaction/downloads/DownloadsPatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/tiktok/interaction/downloads/DownloadsPatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
@@ -1082,6 +1088,12 @@ public final class app/revanced/patches/youtube/interaction/copyvideourl/CopyVid
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/dialog/RemoveViewerDiscretionDialogPatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/youtube/interaction/downloads/ExternalDownloadsBytecodePatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/youtube/interaction/downloads/ExternalDownloadsBytecodePatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
org.gradle.parallel = true
|
||||
org.gradle.caching = true
|
||||
kotlin.code.style = official
|
||||
version = 3.2.0-dev.1
|
||||
version = 3.2.0-dev.9
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3,7 +3,6 @@ package app.revanced.patches.all.telephony.sim.spoof
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patcher.patch.options.PatchOption
|
||||
import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
|
||||
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
||||
import app.revanced.patches.all.misc.transformation.AbstractTransformInstructionsPatch
|
||||
@@ -25,26 +24,29 @@ import java.util.*
|
||||
)
|
||||
@Suppress("unused")
|
||||
object SpoofSimCountryPatch : AbstractTransformInstructionsPatch<Pair<Int, String>>() {
|
||||
private val isoValidator: PatchOption<String>.(String?) -> Boolean =
|
||||
{ it: String? -> it?.uppercase() in Locale.getISOCountries() || it == null }
|
||||
private val countries = Locale.getISOCountries().associateBy { Locale("", it).displayCountry }
|
||||
|
||||
private val networkCountryIso by stringPatchOption(
|
||||
private val networkCountryIso by isoCountryPatchOption(
|
||||
"networkCountryIso",
|
||||
null,
|
||||
null,
|
||||
"Network ISO Country Code",
|
||||
"ISO-3166-1 alpha-2 country code equivalent of the MCC (Mobile Country Code) " +
|
||||
"of the current registered operator or the cell nearby.",
|
||||
validator = isoValidator
|
||||
)
|
||||
|
||||
private val simCountryIso by stringPatchOption(
|
||||
private val simCountryIso by isoCountryPatchOption(
|
||||
"simCountryIso",
|
||||
null,
|
||||
null,
|
||||
"Sim ISO Country Code",
|
||||
)
|
||||
|
||||
private fun isoCountryPatchOption(
|
||||
key: String,
|
||||
title: String,
|
||||
) = stringPatchOption(
|
||||
key,
|
||||
null,
|
||||
countries,
|
||||
title,
|
||||
"ISO-3166-1 alpha-2 country code equivalent for the SIM provider's country code.",
|
||||
validator = isoValidator
|
||||
false,
|
||||
validator = { it: String? -> it == null || it.uppercase() in countries.values }
|
||||
)
|
||||
|
||||
override fun filterMap(
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package app.revanced.patches.tiktok.interaction.cleardisplay
|
||||
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patcher.util.smali.ExternalLabel
|
||||
import app.revanced.patches.tiktok.interaction.cleardisplay.fingerprints.OnClearDisplayEventFingerprint
|
||||
import app.revanced.patches.tiktok.interaction.cleardisplay.fingerprints.OnRenderFirstFrameFingerprint
|
||||
import app.revanced.util.exception
|
||||
import app.revanced.util.indexOfFirstInstruction
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction22c
|
||||
|
||||
@Patch(
|
||||
name = "Remember clear display",
|
||||
description = "Remembers the clear display configurations in between videos.",
|
||||
compatiblePackages = [
|
||||
CompatiblePackage("com.ss.android.ugc.trill", ["32.5.3"]),
|
||||
CompatiblePackage("com.zhiliaoapp.musically", ["32.5.3"])
|
||||
]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object RememberClearDisplayPatch : BytecodePatch(
|
||||
setOf(
|
||||
OnClearDisplayEventFingerprint,
|
||||
OnRenderFirstFrameFingerprint
|
||||
)
|
||||
) {
|
||||
override fun execute(context: BytecodeContext) {
|
||||
OnClearDisplayEventFingerprint.result?.mutableMethod?.let {
|
||||
// region Hook the "Clear display" configuration save event to remember the state of clear display.
|
||||
|
||||
val isEnabledIndex = it.indexOfFirstInstruction { opcode == Opcode.IGET_BOOLEAN } + 1
|
||||
val isEnabledRegister = it.getInstruction<Instruction22c>(isEnabledIndex - 1).registerA
|
||||
|
||||
it.addInstructions(
|
||||
isEnabledIndex,
|
||||
"invoke-static { v$isEnabledRegister }, " +
|
||||
"Lapp/revanced/tiktok/cleardisplay/RememberClearDisplayPatch;->rememberClearDisplayState(Z)V"
|
||||
)
|
||||
|
||||
// endregion
|
||||
|
||||
// region Override the "Clear display" configuration load event to load the state of clear display.
|
||||
|
||||
val clearDisplayEventClass = it.parameters[0].type
|
||||
OnRenderFirstFrameFingerprint.result?.mutableMethod?.apply {
|
||||
addInstructionsWithLabels(
|
||||
0,
|
||||
"""
|
||||
# Create a new clearDisplayEvent and post it to the EventBus (https://github.com/greenrobot/EventBus)
|
||||
|
||||
# The state of clear display.
|
||||
invoke-static { }, Lapp/revanced/tiktok/cleardisplay/RememberClearDisplayPatch;->getClearDisplayState()Z
|
||||
move-result v3
|
||||
if-eqz v3, :clear_display_disabled
|
||||
|
||||
# Clear display type such as 0 = LONG_PRESS, 1 = SCREEN_RECORD etc.
|
||||
const/4 v1, 0x0
|
||||
|
||||
# Name of the clear display type which is equivalent to the clear display type.
|
||||
const-string v2, "long_press"
|
||||
|
||||
new-instance v0, $clearDisplayEventClass
|
||||
invoke-direct { v0, v1, v2, v3 }, $clearDisplayEventClass-><init>(ILjava/lang/String;Z)V
|
||||
invoke-virtual { v0 }, $clearDisplayEventClass->post()Lcom/ss/android/ugc/governance/eventbus/IEvent;
|
||||
""",
|
||||
ExternalLabel("clear_display_disabled", getInstruction(0))
|
||||
)
|
||||
} ?: throw OnRenderFirstFrameFingerprint.exception
|
||||
|
||||
// endregion
|
||||
} ?: throw OnClearDisplayEventFingerprint.exception
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package app.revanced.patches.tiktok.interaction.cleardisplay.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
|
||||
internal object OnClearDisplayEventFingerprint : MethodFingerprint(
|
||||
customFingerprint = { methodDef, _ ->
|
||||
// Internally the feature is called "Clear mode".
|
||||
methodDef.definingClass.endsWith("/ClearModePanelComponent;") && methodDef.name == "onClearModeEvent"
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,9 @@
|
||||
package app.revanced.patches.tiktok.interaction.cleardisplay.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
|
||||
internal object OnRenderFirstFrameFingerprint : MethodFingerprint(
|
||||
customFingerprint = { methodDef, _ ->
|
||||
methodDef.definingClass.endsWith("/BaseListFragmentPanel;") && methodDef.name == "onRenderFirstFrame"
|
||||
}
|
||||
)
|
||||
@@ -31,6 +31,12 @@ object HideAdsResourcePatch : ResourcePatch() {
|
||||
StringResource("revanced_hide_general_ads_summary_on", "General ads are hidden"),
|
||||
StringResource("revanced_hide_general_ads_summary_off", "General ads are shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_hide_fullscreen_ads",
|
||||
StringResource("revanced_hide_fullscreen_ads_title", "Hide fullscreen ads"),
|
||||
StringResource("revanced_hide_fullscreen_ads_summary_on", "Fullscreen ads are hidden"),
|
||||
StringResource("revanced_hide_fullscreen_ads_summary_off", "Fullscreen ads are shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_hide_buttoned_ads",
|
||||
StringResource("revanced_hide_buttoned_ads_title", "Hide buttoned ad"),
|
||||
|
||||
@@ -45,11 +45,11 @@ object HideGetPremiumPatch : BytecodePatch(setOf(GetPremiumViewFingerprint)) {
|
||||
),
|
||||
StringResource(
|
||||
"revanced_hide_get_premium_summary_on",
|
||||
"YouTube Premium promotions under video player is hidden"
|
||||
"YouTube Premium promotions under video player are hidden"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_hide_get_premium_summary_off",
|
||||
"YouTube Premium promotions under video player is shown"
|
||||
"YouTube Premium promotions under video player are shown"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package app.revanced.patches.youtube.interaction.dialog
|
||||
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.shared.settings.preference.impl.StringResource
|
||||
import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
|
||||
import app.revanced.patches.youtube.interaction.dialog.fingerprints.CreateDialogFingerprint
|
||||
import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch
|
||||
import app.revanced.patches.youtube.misc.settings.SettingsPatch
|
||||
import app.revanced.util.exception
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||
|
||||
@Patch(
|
||||
name = "Remove viewer discretion dialog",
|
||||
description = "Removes the dialog that appears when you try to watch a video that has been age-restricted " +
|
||||
"by accepting it automatically. This does not bypass the age restriction.",
|
||||
dependencies = [IntegrationsPatch::class, SettingsPatch::class],
|
||||
compatiblePackages = [
|
||||
CompatiblePackage(
|
||||
"com.google.android.youtube"
|
||||
)
|
||||
]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object RemoveViewerDiscretionDialogPatch : BytecodePatch(
|
||||
setOf(CreateDialogFingerprint)
|
||||
) {
|
||||
private const val INTEGRATIONS_METHOD_DESCRIPTOR =
|
||||
"Lapp/revanced/integrations/patches/RemoveViewerDiscretionDialogPatch;->" +
|
||||
"confirmDialog(Landroid/app/AlertDialog;)V"
|
||||
|
||||
override fun execute(context: BytecodeContext) {
|
||||
SettingsPatch.PreferenceScreen.INTERACTIONS.addPreferences(
|
||||
SwitchPreference(
|
||||
"revanced_remove_viewer_discretion_dialog",
|
||||
StringResource(
|
||||
"revanced_remove_viewer_discretion_dialog_title",
|
||||
"Remove viewer discretion dialog"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_remove_viewer_discretion_dialog_summary_on",
|
||||
"Dialog will be removed"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_remove_viewer_discretion_dialog_summary_off",
|
||||
"Dialog will be shown"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_remove_viewer_discretion_dialog_user_dialog_message",
|
||||
"This does not bypass the age restriction, it just accepts it automatically."
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
CreateDialogFingerprint.result?.mutableMethod?.apply {
|
||||
val showDialogIndex = implementation!!.instructions.lastIndex - 2
|
||||
val dialogRegister = getInstruction<FiveRegisterInstruction>(showDialogIndex).registerC
|
||||
|
||||
replaceInstructions(
|
||||
showDialogIndex,
|
||||
"invoke-static { v$dialogRegister }, $INTEGRATIONS_METHOD_DESCRIPTOR",
|
||||
)
|
||||
} ?: throw CreateDialogFingerprint.exception
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package app.revanced.patches.youtube.interaction.dialog.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal object CreateDialogFingerprint : MethodFingerprint(
|
||||
"V",
|
||||
AccessFlags.PROTECTED.value,
|
||||
listOf("L", "L", "Ljava/lang/String;"),
|
||||
listOf(
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.IPUT_OBJECT,
|
||||
Opcode.IGET_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL // dialog.show()
|
||||
)
|
||||
)
|
||||
@@ -1,6 +1,5 @@
|
||||
package app.revanced.patches.youtube.layout.hide.general
|
||||
|
||||
import app.revanced.util.exception
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
|
||||
@@ -18,6 +17,7 @@ import app.revanced.patches.youtube.layout.hide.general.fingerprints.ShowWaterma
|
||||
import app.revanced.patches.youtube.misc.litho.filter.LithoFilterPatch
|
||||
import app.revanced.patches.youtube.misc.settings.SettingsPatch
|
||||
import app.revanced.patches.youtube.misc.settings.SettingsPatch.PreferenceScreen
|
||||
import app.revanced.util.exception
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
@@ -93,6 +93,21 @@ object HideLayoutComponentsPatch : BytecodePatch(
|
||||
StringResource("revanced_hide_timed_reactions_summary_on", "Timed reactions are hidden"),
|
||||
StringResource("revanced_hide_timed_reactions_summary_off", "Timed reactions are shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_hide_search_result_recommendations",
|
||||
StringResource(
|
||||
"revanced_hide_search_result_recommendations_title",
|
||||
"Hide search result recommendations (e.g People also watched)"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_hide_search_result_recommendations_summary_on",
|
||||
"Recommendations are hidden"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_hide_search_result_recommendations_summary_off",
|
||||
"Recommendations are shown"
|
||||
)
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_hide_search_result_shelf_header",
|
||||
StringResource(
|
||||
@@ -285,8 +300,8 @@ object HideLayoutComponentsPatch : BytecodePatch(
|
||||
SwitchPreference(
|
||||
"revanced_hide_artist_cards",
|
||||
StringResource("revanced_hide_artist_cards_title", "Hide artist cards"),
|
||||
StringResource("revanced_hide_artist_cards_on", "Artist cards is hidden"),
|
||||
StringResource("revanced_hide_artist_cards_off", "Artist cards is shown")
|
||||
StringResource("revanced_hide_artist_cards_on", "Artist cards are hidden"),
|
||||
StringResource("revanced_hide_artist_cards_off", "Artist cards are shown")
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_hide_chips_shelf",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package app.revanced.patches.youtube.layout.hide.personalinformation
|
||||
|
||||
import app.revanced.util.exception
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
@@ -9,10 +8,11 @@ import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.youtube.layout.hide.personalinformation.fingerprints.AccountSwitcherAccessibilityLabelFingerprint
|
||||
import app.revanced.patches.youtube.misc.integrations.IntegrationsPatch
|
||||
import app.revanced.util.exception
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Deprecated("This patch is no longer working and will be removed in a future release.")
|
||||
@Patch(
|
||||
name = "Hide email address",
|
||||
description = "Hides the email address in the account switcher.",
|
||||
dependencies = [IntegrationsPatch::class, HideEmailAddressResourcePatch::class],
|
||||
compatiblePackages = [
|
||||
|
||||
@@ -59,6 +59,7 @@ object ThemeBytecodePatch : BytecodePatch(
|
||||
values = mapOf(
|
||||
"Amoled black" to AMOLED_BLACK_COLOR,
|
||||
"Material You" to "@android:color/system_neutral1_900",
|
||||
"Classic (old YouTube)" to "#FF212121",
|
||||
"Catppuccin (Mocha)" to "#FF181825",
|
||||
"Dark pink" to "#FF290025",
|
||||
"Dark blue" to "#FF001029",
|
||||
|
||||
@@ -119,9 +119,9 @@ object AlternativeThumbnailsPatch : BytecodePatch(
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_alt_thumbnail_dearrow",
|
||||
StringResource("revanced_alt_thumbnail_dearrow_title", "Enable DeArrow"),
|
||||
StringResource("revanced_alt_thumbnail_dearrow_summary_on", "Using DeArrow"),
|
||||
StringResource("revanced_alt_thumbnail_dearrow_summary_off", "Not using DeArrow")
|
||||
StringResource("revanced_alt_thumbnail_dearrow_title", "Enable DeArrow thumbnails"),
|
||||
StringResource("revanced_alt_thumbnail_dearrow_summary_on", "Using DeArrow thumbnails"),
|
||||
StringResource("revanced_alt_thumbnail_dearrow_summary_off", "Not using DeArrow thumbnails")
|
||||
),
|
||||
SwitchPreference(
|
||||
"revanced_alt_thumbnail_dearrow_connection_toast",
|
||||
|
||||
Reference in New Issue
Block a user