From f459c3c7fae3a1b8addf3354488dcef9f95255cc Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Sat, 26 Apr 2025 17:51:35 +0400 Subject: [PATCH] fix(YouTube - Spoof app version): Do not hide spoof version in general settings menu (#4861) --- patches/api/patches.api | 2 -- .../settings/preference/BasePreference.kt | 20 ---------------- .../spoofappversion/SpoofAppVersionPatch.kt | 23 ++++++++++--------- 3 files changed, 12 insertions(+), 33 deletions(-) diff --git a/patches/api/patches.api b/patches/api/patches.api index 72c53e50a..7d32bec85 100644 --- a/patches/api/patches.api +++ b/patches/api/patches.api @@ -642,14 +642,12 @@ public abstract class app/revanced/patches/shared/misc/settings/preference/BaseP public static final field Companion Lapp/revanced/patches/shared/misc/settings/preference/BasePreference$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun equals (Ljava/lang/Object;)Z public final fun getIcon ()Ljava/lang/String; public final fun getKey ()Ljava/lang/String; public final fun getLayout ()Ljava/lang/String; public final fun getSummaryKey ()Ljava/lang/String; public final fun getTag ()Ljava/lang/String; public final fun getTitleKey ()Ljava/lang/String; - public fun hashCode ()I public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element; } diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/preference/BasePreference.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/preference/BasePreference.kt index 5428b3983..70542b9b9 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/preference/BasePreference.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/settings/preference/BasePreference.kt @@ -51,26 +51,6 @@ abstract class BasePreference( layout?.let { setAttribute("android:layout", layout) } } - override fun hashCode(): Int { - var result = key?.hashCode() ?: 0 - result = 31 * result + titleKey.hashCode() - result = 31 * result + tag.hashCode() - return result - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as BasePreference - - if (key != other.key) return false - if (titleKey != other.titleKey) return false - if (tag != other.tag) return false - - return true - } - companion object { fun Element.addSummary(summaryKey: String, summaryType: SummaryType = SummaryType.DEFAULT) = setAttribute("android:${summaryType.type}", "@string/$summaryKey") diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt index 486bb398d..ee218d499 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/spoofappversion/SpoofAppVersionPatch.kt @@ -73,7 +73,7 @@ val spoofAppVersionPatch = bytecodePatch( PreferenceScreen.GENERAL_LAYOUT.addPreferences( // Group the switch and list preference together, since General menu is sorted by name - // and the preferences can be scattered apart with non English langauges. + // and the preferences can be scattered apart with non English languages. PreferenceCategory( titleKey = null, sorting = Sorting.UNSORTED, @@ -122,16 +122,17 @@ val spoofAppVersionPatch = bytecodePatch( ) } - val insertIndex = spoofAppVersionFingerprint.patternMatch!!.startIndex + 1 - val buildOverrideNameRegister = - spoofAppVersionFingerprint.method.getInstruction(insertIndex - 1).registerA + spoofAppVersionFingerprint.apply { + val startIndex = patternMatch!!.startIndex + val buildOverrideNameRegister = method.getInstruction(startIndex).registerA - spoofAppVersionFingerprint.method.addInstructions( - insertIndex, - """ - invoke-static {v$buildOverrideNameRegister}, $EXTENSION_CLASS_DESCRIPTOR->getYouTubeVersionOverride(Ljava/lang/String;)Ljava/lang/String; - move-result-object v$buildOverrideNameRegister - """ - ) + method.addInstructions( + startIndex + 1, + """ + invoke-static {v$buildOverrideNameRegister}, $EXTENSION_CLASS_DESCRIPTOR->getYouTubeVersionOverride(Ljava/lang/String;)Ljava/lang/String; + move-result-object v$buildOverrideNameRegister + """ + ) + } } }