diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/ExternalBrowserPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/ExternalBrowserPatch.java deleted file mode 100644 index 794fd93e0..000000000 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/ExternalBrowserPatch.java +++ /dev/null @@ -1,14 +0,0 @@ -package app.revanced.extension.youtube.patches.misc; - -import app.revanced.extension.youtube.settings.Settings; - -@SuppressWarnings("unused") -public class ExternalBrowserPatch { - - public static String enableExternalBrowser(final String original) { - if (!Settings.ENABLE_EXTERNAL_BROWSER.get()) - return original; - - return ""; - } -} diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksDirectlyPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksDirectlyPatch.java index a3e9b9658..e4d466428 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksDirectlyPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksDirectlyPatch.java @@ -10,9 +10,9 @@ import app.revanced.extension.youtube.settings.Settings; public class OpenLinksDirectlyPatch { private static final String YOUTUBE_REDIRECT_PATH = "/redirect"; - public static Uri enableBypassRedirect(String uri) { + public static Uri parseRedirectUri(String uri) { final Uri parsed = Uri.parse(uri); - if (!Settings.ENABLE_OPEN_LINKS_DIRECTLY.get()) + if (!Settings.BYPASS_URL_REDIRECTS.get()) return parsed; if (Objects.equals(parsed.getPath(), YOUTUBE_REDIRECT_PATH)) { diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksExternallyPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksExternallyPatch.java new file mode 100644 index 000000000..43740adcd --- /dev/null +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/misc/OpenLinksExternallyPatch.java @@ -0,0 +1,15 @@ +package app.revanced.extension.youtube.patches.misc; + +import app.revanced.extension.youtube.settings.Settings; + +@SuppressWarnings("unused") +public class OpenLinksExternallyPatch { + + // renamed from 'enableExternalBrowser' + public static String openLinksExternally(final String original) { + if (!Settings.OPEN_LINKS_EXTERNALLY.get()) + return original; + + return ""; + } +} diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java index bef2a9a94..d86731aeb 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -550,8 +550,8 @@ public class Settings extends BaseSettings { // PreferenceScreen: Miscellaneous - public static final BooleanSetting ENABLE_OPEN_LINKS_DIRECTLY = new BooleanSetting("revanced_enable_open_links_directly", TRUE); - public static final BooleanSetting ENABLE_EXTERNAL_BROWSER = new BooleanSetting("revanced_enable_external_browser", TRUE, true); + public static final BooleanSetting BYPASS_URL_REDIRECTS = new BooleanSetting("revanced_bypass_url_redirects", TRUE); + public static final BooleanSetting OPEN_LINKS_EXTERNALLY = new BooleanSetting("revanced_open_links_externally", TRUE, true); // Experimental Flags public static final BooleanSetting CHANGE_SHARE_SHEET = new BooleanSetting("revanced_change_share_sheet", FALSE, true); diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/Fingerprints.kt similarity index 96% rename from patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/Fingerprints.kt rename to patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/Fingerprints.kt index 1b33eeab6..82a750711 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/Fingerprints.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.misc.openlinksdirectly +package app.revanced.patches.youtube.misc.openlinks.directly import app.revanced.util.fingerprint.legacyFingerprint import app.revanced.util.or diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/OpenLinksDirectlyPatch.kt similarity index 82% rename from patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt rename to patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/OpenLinksDirectlyPatch.kt index 61ffa6c1d..bd111ce99 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinksdirectly/OpenLinksDirectlyPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/directly/OpenLinksDirectlyPatch.kt @@ -1,11 +1,11 @@ -package app.revanced.patches.youtube.misc.openlinksdirectly +package app.revanced.patches.youtube.misc.openlinks.directly import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.extension.Constants.MISC_PATH -import app.revanced.patches.youtube.utils.patch.PatchList.ENABLE_OPEN_LINKS_DIRECTLY +import app.revanced.patches.youtube.utils.patch.PatchList.BYPASS_URL_REDIRECTS import app.revanced.patches.youtube.utils.settings.ResourceUtils.addPreference import app.revanced.patches.youtube.utils.settings.settingsPatch import app.revanced.util.fingerprint.methodOrThrow @@ -17,8 +17,8 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference @Suppress("unused") val openLinksDirectlyPatch = bytecodePatch( - ENABLE_OPEN_LINKS_DIRECTLY.title, - ENABLE_OPEN_LINKS_DIRECTLY.summary, + BYPASS_URL_REDIRECTS.title, + BYPASS_URL_REDIRECTS.summary, ) { compatibleWith(COMPATIBLE_PACKAGE) @@ -40,7 +40,7 @@ val openLinksDirectlyPatch = bytecodePatch( replaceInstruction( insertIndex, - "invoke-static {v$insertRegister}, $MISC_PATH/OpenLinksDirectlyPatch;->enableBypassRedirect(Ljava/lang/String;)Landroid/net/Uri;" + "invoke-static {v$insertRegister}, $MISC_PATH/OpenLinksDirectlyPatch;->parseRedirectUri(Ljava/lang/String;)Landroid/net/Uri;" ) } } @@ -49,9 +49,9 @@ val openLinksDirectlyPatch = bytecodePatch( addPreference( arrayOf( - "SETTINGS: ENABLE_OPEN_LINKS_DIRECTLY" + "SETTINGS: BYPASS_URL_REDIRECTS" ), - ENABLE_OPEN_LINKS_DIRECTLY + BYPASS_URL_REDIRECTS ) // endregion diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/OpenLinksExternallyPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/externally/OpenLinksExternallyPatch.kt similarity index 81% rename from patches/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/OpenLinksExternallyPatch.kt rename to patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/externally/OpenLinksExternallyPatch.kt index 020594c8a..4a7d1cd9a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/externalbrowser/OpenLinksExternallyPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/openlinks/externally/OpenLinksExternallyPatch.kt @@ -1,11 +1,11 @@ -package app.revanced.patches.youtube.misc.externalbrowser +package app.revanced.patches.youtube.misc.openlinks.externally import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.bytecodePatch import app.revanced.patches.shared.transformation.transformInstructionsPatch import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.extension.Constants.MISC_PATH -import app.revanced.patches.youtube.utils.patch.PatchList.ENABLE_EXTERNAL_BROWSER +import app.revanced.patches.youtube.utils.patch.PatchList.OPEN_LINKS_EXTERNALLY import app.revanced.patches.youtube.utils.settings.ResourceUtils.addPreference import app.revanced.patches.youtube.utils.settings.settingsPatch import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction @@ -14,8 +14,8 @@ import com.android.tools.smali.dexlib2.iface.reference.StringReference @Suppress("unused") val openLinksExternallyPatch = bytecodePatch( - ENABLE_EXTERNAL_BROWSER.title, - ENABLE_EXTERNAL_BROWSER.summary, + OPEN_LINKS_EXTERNALLY.title, + OPEN_LINKS_EXTERNALLY.summary, ) { compatibleWith(COMPATIBLE_PACKAGE) @@ -36,7 +36,7 @@ val openLinksExternallyPatch = bytecodePatch( mutableMethod.addInstructions( intentStringIndex + 1, """ - invoke-static {v$register}, $MISC_PATH/ExternalBrowserPatch;->enableExternalBrowser(Ljava/lang/String;)Ljava/lang/String; + invoke-static {v$register}, $MISC_PATH/OpenLinksExternallyPatch;->openLinksExternally(Ljava/lang/String;)Ljava/lang/String; move-result-object v$register """, ) @@ -51,9 +51,9 @@ val openLinksExternallyPatch = bytecodePatch( addPreference( arrayOf( - "SETTINGS: ENABLE_EXTERNAL_BROWSER" + "SETTINGS: OPEN_LINKS_EXTERNALLY" ), - ENABLE_EXTERNAL_BROWSER + OPEN_LINKS_EXTERNALLY ) // endregion diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/utils/patch/PatchList.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/utils/patch/PatchList.kt index 44388d6b1..1facf3032 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/utils/patch/PatchList.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/utils/patch/PatchList.kt @@ -17,9 +17,9 @@ internal enum class PatchList( "Bypass image region restrictions", "Adds an option to use a different host for static images, so that images blocked in some countries can be received." ), - ENABLE_OPEN_LINKS_DIRECTLY( - "Bypass link redirection", - "Adds an option to bypass redirection when opening external links." + BYPASS_URL_REDIRECTS( + "Bypass URL redirects", + "Adds an option to bypass URL redirects and open the original URL directly." ), CHANGE_PLAYER_FLYOUT_MENU_TOGGLES( "Change player flyout menu toggles", @@ -169,8 +169,8 @@ internal enum class PatchList( "Navigation bar components", "Adds options to hide or change components related to the navigation bar." ), - ENABLE_EXTERNAL_BROWSER( - "Open links in browser", + OPEN_LINKS_EXTERNALLY( + "Open links externally", "Adds an option to always open links in your browser instead of in the in-app-browser." ), OVERLAY_BUTTONS( diff --git a/patches/src/main/resources/youtube/settings/host/values/strings.xml b/patches/src/main/resources/youtube/settings/host/values/strings.xml index cc5df48fa..dfc9de3de 100644 --- a/patches/src/main/resources/youtube/settings/host/values/strings.xml +++ b/patches/src/main/resources/youtube/settings/host/values/strings.xml @@ -1904,9 +1904,9 @@ Click to see how to issue an API key." Miscellaneous - Bypass link redirection - Bypasses link redirection. - Follows default redirection policy. + Bypass URL redirects + URL redirects are bypassed. + URL redirects are not bypassed. Disable QUIC protocol "Disables CronetEngine's QUIC protocol." Enable debug logging @@ -1915,9 +1915,9 @@ Click to see how to issue an API key." Enable debug buffer logging Debug logs include the buffer. Debug logs do not include the buffer. - Open links in browser - Opens links in the external browser. - Opens links in the in-app browser. + Open links in browser + Opens links in the external browser. + Opens links in the in-app browser. Sanitize sharing links Sanitizes sharing links by removing tracking query parameters. diff --git a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 2f5ce9709..bb1e5c6b0 100644 --- a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -820,8 +820,8 @@ SETTINGS: WATCH_HISTORY --> - + @@ -830,8 +830,8 @@ SETTINGS: ENABLE_DEBUG_LOGGING --> - + @@ -919,12 +919,12 @@ + - - +