refactor: Fix package and code structure (#2541)
BREAKING CHANGE: Various public APIs have changed names and packages or were removed entirely
This commit is contained in:
@@ -29,7 +29,7 @@ object AudioAdsPatch : BytecodePatch(
|
||||
mutableMethod.addInstructionsWithLabels(
|
||||
0,
|
||||
"""
|
||||
invoke-static { }, Lapp/revanced/twitch/patches/AudioAdsPatch;->shouldBlockAudioAds()Z
|
||||
invoke-static { }, Lapp/revanced/integrations/twitch/patches/AudioAdsPatch;->shouldBlockAudioAds()Z
|
||||
move-result v0
|
||||
if-eqz v0, :show_audio_ads
|
||||
return-void
|
||||
@@ -52,8 +52,7 @@ object AudioAdsPatch : BytecodePatch(
|
||||
StringResource(
|
||||
"revanced_block_audio_ads_off",
|
||||
"Audio ads are unblocked"
|
||||
),
|
||||
default = true,
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ object EmbeddedAdsPatch : BytecodePatch(
|
||||
result.mutableMethod.addInstructions(
|
||||
3,
|
||||
"""
|
||||
invoke-static {}, Lapp/revanced/twitch/patches/EmbeddedAdsPatch;->createRequestInterceptor()Lapp/revanced/twitch/api/RequestInterceptor;
|
||||
invoke-static {}, Lapp/revanced/integrations/twitch/patches/EmbeddedAdsPatch;->createRequestInterceptor()Lapp/revanced/integrations/twitch/api/RequestInterceptor;
|
||||
move-result-object v2
|
||||
invoke-virtual {v0, v2}, Lokhttp3/OkHttpClient${"$"}Builder;->addInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient${"$"}Builder;
|
||||
"""
|
||||
@@ -59,8 +59,7 @@ object EmbeddedAdsPatch : BytecodePatch(
|
||||
StringResource("key_revanced_proxy_luminous", "luminous"),
|
||||
StringResource("key_revanced_proxy_purpleadblock", "purpleadblock")
|
||||
)
|
||||
),
|
||||
default = "luminous"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import app.revanced.patches.twitch.misc.settings.SettingsPatch
|
||||
compatiblePackages = [CompatiblePackage("tv.twitch.android.app", ["15.4.1", "16.1.0", "16.9.1"])]
|
||||
)
|
||||
object VideoAdsPatch : AbstractAdPatch(
|
||||
"Lapp/revanced/twitch/patches/VideoAdsPatch;->shouldBlockVideoAds()Z",
|
||||
"Lapp/revanced/integrations/twitch/patches/VideoAdsPatch;->shouldBlockVideoAds()Z",
|
||||
"show_video_ads",
|
||||
setOf(
|
||||
ContentConfigShowAdsFingerprint,
|
||||
@@ -135,8 +135,7 @@ object VideoAdsPatch : AbstractAdPatch(
|
||||
StringResource(
|
||||
"revanced_block_video_ads_off",
|
||||
"Video ads are unblocked"
|
||||
),
|
||||
default = true
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
+3
-4
@@ -33,7 +33,7 @@ object ShowDeletedMessagesPatch : BytecodePatch(
|
||||
)
|
||||
) {
|
||||
private fun createSpoilerConditionInstructions(register: String = "v0") = """
|
||||
invoke-static {}, Lapp/revanced/twitch/patches/ShowDeletedMessagesPatch;->shouldUseSpoiler()Z
|
||||
invoke-static {}, Lapp/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch;->shouldUseSpoiler()Z
|
||||
move-result $register
|
||||
if-eqz $register, :no_spoiler
|
||||
"""
|
||||
@@ -61,7 +61,7 @@ object ShowDeletedMessagesPatch : BytecodePatch(
|
||||
addInstructionsWithLabels(
|
||||
0,
|
||||
"""
|
||||
invoke-static {p2}, Lapp/revanced/twitch/patches/ShowDeletedMessagesPatch;->reformatDeletedMessage(Landroid/text/Spanned;)Landroid/text/Spanned;
|
||||
invoke-static {p2}, Lapp/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch;->reformatDeletedMessage(Landroid/text/Spanned;)Landroid/text/Spanned;
|
||||
move-result-object v0
|
||||
if-eqz v0, :no_reformat
|
||||
return-object v0
|
||||
@@ -92,8 +92,7 @@ object ShowDeletedMessagesPatch : BytecodePatch(
|
||||
StringResource("key_revanced_deleted_messages_spoiler", "spoiler"),
|
||||
StringResource("key_revanced_deleted_messages_cross_out", "cross-out")
|
||||
)
|
||||
),
|
||||
default = "cross-out"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+2
-3
@@ -38,8 +38,7 @@ object AutoClaimChannelPointPatch : BytecodePatch(
|
||||
StringResource(
|
||||
"revanced_auto_claim_channel_points_off",
|
||||
"Channel Points are not claimed automatically"
|
||||
),
|
||||
default = true
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -48,7 +47,7 @@ object AutoClaimChannelPointPatch : BytecodePatch(
|
||||
addInstructionsWithLabels(
|
||||
lastIndex, // place in front of return-void
|
||||
"""
|
||||
invoke-static {}, Lapp/revanced/twitch/patches/AutoClaimChannelPointsPatch;->shouldAutoClaim()Z
|
||||
invoke-static {}, Lapp/revanced/integrations/twitch/patches/AutoClaimChannelPointsPatch;->shouldAutoClaim()Z
|
||||
move-result v0
|
||||
if-eqz v0, :auto_claim
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ object DebugModePatch : BytecodePatch(
|
||||
addInstructions(
|
||||
0,
|
||||
"""
|
||||
invoke-static {}, Lapp/revanced/twitch/patches/DebugModePatch;->isDebugModeEnabled()Z
|
||||
invoke-static {}, Lapp/revanced/integrations/twitch/patches/DebugModePatch;->isDebugModeEnabled()Z
|
||||
move-result v0
|
||||
return v0
|
||||
"""
|
||||
@@ -49,20 +49,19 @@ object DebugModePatch : BytecodePatch(
|
||||
|
||||
SettingsPatch.PreferenceScreen.MISC.OTHER.addPreferences(
|
||||
SwitchPreference(
|
||||
"revanced_debug_mode",
|
||||
"revanced_twitch_debug_mode",
|
||||
StringResource(
|
||||
"revanced_debug_mode_enable",
|
||||
"Enable debug mode"
|
||||
"revanced_twitch_debug_mode_title",
|
||||
"Enable Twitch debug mode"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_debug_mode_on",
|
||||
"Debug mode is enabled (not recommended)"
|
||||
"revanced_twitch_debug_mode_summary_on",
|
||||
"Twitch debug mode is enabled (not recommended)"
|
||||
),
|
||||
StringResource(
|
||||
"revanced_debug_mode_off",
|
||||
"Debug mode is disabled"
|
||||
),
|
||||
default = false,
|
||||
"revanced_twitch_debug_mode_summary_off",
|
||||
"Twitch debug mode is disabled"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -6,6 +6,5 @@ import app.revanced.patches.twitch.misc.integrations.fingerprints.InitFingerprin
|
||||
|
||||
@Patch(requiresIntegrations = true)
|
||||
object IntegrationsPatch : AbstractIntegrationsPatch(
|
||||
"Lapp/revanced/twitch/utils/ReVancedUtils;",
|
||||
setOf(InitFingerprint)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package app.revanced.patches.twitch.misc.settings
|
||||
|
||||
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
|
||||
@@ -14,12 +13,14 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableField.Companion.toMut
|
||||
import app.revanced.patcher.util.smali.ExternalLabel
|
||||
import app.revanced.patches.shared.settings.preference.impl.PreferenceCategory
|
||||
import app.revanced.patches.shared.settings.preference.impl.StringResource
|
||||
import app.revanced.patches.shared.settings.preference.impl.SwitchPreference
|
||||
import app.revanced.patches.shared.settings.util.AbstractPreferenceScreen
|
||||
import app.revanced.patches.twitch.misc.integrations.IntegrationsPatch
|
||||
import app.revanced.patches.twitch.misc.settings.fingerprints.MenuGroupsOnClickFingerprint
|
||||
import app.revanced.patches.twitch.misc.settings.fingerprints.MenuGroupsUpdatedFingerprint
|
||||
import app.revanced.patches.twitch.misc.settings.fingerprints.SettingsActivityOnCreateFingerprint
|
||||
import app.revanced.patches.twitch.misc.settings.fingerprints.SettingsMenuItemEnumFingerprint
|
||||
import app.revanced.util.exception
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.immutable.ImmutableField
|
||||
import java.io.Closeable
|
||||
@@ -46,12 +47,12 @@ object SettingsPatch : BytecodePatch(
|
||||
private const val REVANCED_SETTINGS_MENU_ITEM_TITLE_RES = "revanced_settings"
|
||||
private const val REVANCED_SETTINGS_MENU_ITEM_ICON_RES = "ic_settings"
|
||||
|
||||
private const val MENU_ITEM_ENUM_CLASS = "Ltv/twitch/android/feature/settings/menu/SettingsMenuItem;"
|
||||
private const val MENU_DISMISS_EVENT_CLASS = "Ltv/twitch/android/feature/settings/menu/SettingsMenuViewDelegate\$Event\$OnDismissClicked;"
|
||||
private const val MENU_ITEM_ENUM_CLASS_DESCRIPTOR = "Ltv/twitch/android/feature/settings/menu/SettingsMenuItem;"
|
||||
private const val MENU_DISMISS_EVENT_CLASS_DESCRIPTOR = "Ltv/twitch/android/feature/settings/menu/SettingsMenuViewDelegate\$Event\$OnDismissClicked;"
|
||||
|
||||
private const val INTEGRATIONS_PACKAGE = "app/revanced/twitch"
|
||||
private const val SETTINGS_HOOKS_CLASS = "L$INTEGRATIONS_PACKAGE/settingsmenu/SettingsHooks;"
|
||||
private const val REVANCED_UTILS_CLASS = "L$INTEGRATIONS_PACKAGE/utils/ReVancedUtils;"
|
||||
private const val INTEGRATIONS_PACKAGE = "app/revanced/integrations/twitch"
|
||||
private const val ACTIVITY_HOOKS_CLASS_DESCRIPTOR = "L$INTEGRATIONS_PACKAGE/settings/AppCompatActivityHook;"
|
||||
private const val UTILS_CLASS_DESCRIPTOR = "L$INTEGRATIONS_PACKAGE/Utils;"
|
||||
|
||||
override fun execute(context: BytecodeContext) {
|
||||
// Hook onCreate to handle fragment creation
|
||||
@@ -60,7 +61,7 @@ object SettingsPatch : BytecodePatch(
|
||||
mutableMethod.addInstructionsWithLabels(
|
||||
insertIndex,
|
||||
"""
|
||||
invoke-static {p0}, $SETTINGS_HOOKS_CLASS->handleSettingsCreation(Landroidx/appcompat/app/AppCompatActivity;)Z
|
||||
invoke-static {p0}, $ACTIVITY_HOOKS_CLASS_DESCRIPTOR->handleSettingsCreation(Landroidx/appcompat/app/AppCompatActivity;)Z
|
||||
move-result v0
|
||||
if-eqz v0, :no_rv_settings_init
|
||||
return-void
|
||||
@@ -84,8 +85,8 @@ object SettingsPatch : BytecodePatch(
|
||||
mutableMethod.addInstructions(
|
||||
0,
|
||||
"""
|
||||
sget-object v0, $MENU_ITEM_ENUM_CLASS->$REVANCED_SETTINGS_MENU_ITEM_NAME:$MENU_ITEM_ENUM_CLASS
|
||||
invoke-static {p1, v0}, $SETTINGS_HOOKS_CLASS->handleSettingMenuCreation(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
|
||||
sget-object v0, $MENU_ITEM_ENUM_CLASS_DESCRIPTOR->$REVANCED_SETTINGS_MENU_ITEM_NAME:$MENU_ITEM_ENUM_CLASS_DESCRIPTOR
|
||||
invoke-static {p1, v0}, $ACTIVITY_HOOKS_CLASS_DESCRIPTOR->handleSettingMenuCreation(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
|
||||
move-result-object p1
|
||||
"""
|
||||
)
|
||||
@@ -97,10 +98,10 @@ object SettingsPatch : BytecodePatch(
|
||||
mutableMethod.addInstructionsWithLabels(
|
||||
insertIndex,
|
||||
"""
|
||||
invoke-static {p1}, $SETTINGS_HOOKS_CLASS->handleSettingMenuOnClick(Ljava/lang/Enum;)Z
|
||||
invoke-static {p1}, $ACTIVITY_HOOKS_CLASS_DESCRIPTOR->handleSettingMenuOnClick(Ljava/lang/Enum;)Z
|
||||
move-result p2
|
||||
if-eqz p2, :no_rv_settings_onclick
|
||||
sget-object p1, $MENU_DISMISS_EVENT_CLASS->INSTANCE:$MENU_DISMISS_EVENT_CLASS
|
||||
sget-object p1, $MENU_DISMISS_EVENT_CLASS_DESCRIPTOR->INSTANCE:$MENU_DISMISS_EVENT_CLASS_DESCRIPTOR
|
||||
invoke-virtual {p0, p1}, Ltv/twitch/android/core/mvp/viewdelegate/RxViewDelegate;->pushEvent(Ltv/twitch/android/core/mvp/viewdelegate/ViewDelegateEvent;)V
|
||||
return-void
|
||||
""",
|
||||
@@ -109,8 +110,15 @@ object SettingsPatch : BytecodePatch(
|
||||
} ?: throw MenuGroupsOnClickFingerprint.exception
|
||||
|
||||
addString("revanced_settings", "ReVanced Settings", false)
|
||||
addString("revanced_reboot_message", "Twitch needs to restart to apply your changes. Restart now?", false)
|
||||
addString("revanced_reboot", "Restart", false)
|
||||
|
||||
PreferenceScreen.MISC.OTHER.addPreferences(
|
||||
SwitchPreference(
|
||||
"revanced_debug",
|
||||
StringResource("revanced_debug_title", "Debug logging"),
|
||||
StringResource("revanced_debug_summary_on", "Debug logs are enabled"),
|
||||
StringResource("revanced_debug_summary_off", "Debug logs are disabled")
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
fun addString(identifier: String, value: String, formatted: Boolean = true) =
|
||||
@@ -130,7 +138,7 @@ object SettingsPatch : BytecodePatch(
|
||||
ImmutableField(
|
||||
mutableMethod.definingClass,
|
||||
name,
|
||||
MENU_ITEM_ENUM_CLASS,
|
||||
MENU_ITEM_ENUM_CLASS_DESCRIPTOR,
|
||||
AccessFlags.PUBLIC or AccessFlags.FINAL or AccessFlags.ENUM or AccessFlags.STATIC,
|
||||
null,
|
||||
null,
|
||||
@@ -142,17 +150,17 @@ object SettingsPatch : BytecodePatch(
|
||||
mutableMethod.addInstructions(
|
||||
mutableMethod.implementation!!.instructions.size - 4,
|
||||
"""
|
||||
new-instance v0, $MENU_ITEM_ENUM_CLASS
|
||||
new-instance v0, $MENU_ITEM_ENUM_CLASS_DESCRIPTOR
|
||||
const-string v1, "$titleResourceName"
|
||||
invoke-static {v1}, $REVANCED_UTILS_CLASS->getStringId(Ljava/lang/String;)I
|
||||
invoke-static {v1}, $UTILS_CLASS_DESCRIPTOR->getStringId(Ljava/lang/String;)I
|
||||
move-result v1
|
||||
const-string v3, "$iconResourceName"
|
||||
invoke-static {v3}, $REVANCED_UTILS_CLASS->getDrawableId(Ljava/lang/String;)I
|
||||
invoke-static {v3}, $UTILS_CLASS_DESCRIPTOR->getDrawableId(Ljava/lang/String;)I
|
||||
move-result v3
|
||||
const-string v4, "$name"
|
||||
const/4 v5, $value
|
||||
invoke-direct {v0, v4, v5, v1, v3}, $MENU_ITEM_ENUM_CLASS-><init>(Ljava/lang/String;III)V
|
||||
sput-object v0, $MENU_ITEM_ENUM_CLASS->$name:$MENU_ITEM_ENUM_CLASS
|
||||
invoke-direct {v0, v4, v5, v1, v3}, $MENU_ITEM_ENUM_CLASS_DESCRIPTOR-><init>(Ljava/lang/String;III)V
|
||||
sput-object v0, $MENU_ITEM_ENUM_CLASS_DESCRIPTOR->$name:$MENU_ITEM_ENUM_CLASS_DESCRIPTOR
|
||||
"""
|
||||
)
|
||||
}
|
||||
@@ -179,7 +187,7 @@ object SettingsPatch : BytecodePatch(
|
||||
key,
|
||||
StringResource("${key}_title", title),
|
||||
preferences.sortedBy { it.title.value },
|
||||
"app.revanced.twitch.settingsmenu.preference.CustomPreferenceCategory"
|
||||
"app.revanced.integrations.twitch.settings.preference.CustomPreferenceCategory"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user