From a152588fddf513cdc3c0676674274bf49014577d Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:39:38 +0900 Subject: [PATCH] feat(YouTube - Navigation bar components): Revert - 'Separate `Enable translucent navigation bar setting` into `Disable light translucent bar` and `Disable dark translucent bar settings`' --- .../youtube/patches/general/GeneralPatch.java | 4 ++++ .../extension/youtube/settings/Settings.java | 1 + .../preference/ReVancedSettingsPreference.java | 4 ++++ .../youtube/general/navigation/Fingerprints.kt | 7 +++++++ .../navigation/NavigationBarComponentsPatch.kt | 13 +++++++++++++ .../youtube/settings/host/values/strings.xml | 3 +++ .../youtube/settings/xml/revanced_prefs.xml | 3 +++ 7 files changed, 35 insertions(+) diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java index 6dd7ceffe..f1dd20b99 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/general/GeneralPatch.java @@ -214,6 +214,10 @@ public class GeneralPatch { return Settings.ENABLE_NARROW_NAVIGATION_BUTTONS.get() || original; } + public static boolean enableTranslucentNavigationBar() { + return Settings.ENABLE_TRANSLUCENT_NAVIGATION_BAR.get(); + } + /** * @noinspection ALL */ 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 223508b8a..a7b48bbf5 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 @@ -189,6 +189,7 @@ public class Settings extends BaseSettings { public static final BooleanSetting HIDE_NAVIGATION_SUBSCRIPTIONS_BUTTON = new BooleanSetting("revanced_hide_navigation_subscriptions_button", FALSE, true); public static final BooleanSetting HIDE_NAVIGATION_LABEL = new BooleanSetting("revanced_hide_navigation_label", FALSE, true); public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true, "revanced_switch_create_with_notifications_button_user_dialog_message"); + public static final BooleanSetting ENABLE_TRANSLUCENT_NAVIGATION_BAR = new BooleanSetting("revanced_enable_translucent_navigation_bar", FALSE, true); public static final BooleanSetting HIDE_NAVIGATION_BAR = new BooleanSetting("revanced_hide_navigation_bar", FALSE, true); // PreferenceScreen: General - Override buttons diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedSettingsPreference.java b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedSettingsPreference.java index 02549cb77..e902d2ab8 100644 --- a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedSettingsPreference.java +++ b/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedSettingsPreference.java @@ -203,6 +203,10 @@ public class ReVancedSettingsPreference extends ReVancedPreferenceFragment { Settings.REPLACE_TOOLBAR_CREATE_BUTTON, Settings.REPLACE_TOOLBAR_CREATE_BUTTON_TYPE ); + enableDisablePreferences( + !isSDKAbove(31), + Settings.ENABLE_TRANSLUCENT_NAVIGATION_BAR + ); } /** diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/Fingerprints.kt index 712ce9700..33821a219 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/Fingerprints.kt @@ -73,3 +73,10 @@ internal val setEnumMapFingerprint = legacyFingerprint( name = "setEnumMapFingerprint", literals = listOf(ytFillBell), ) + +internal const val TRANSLUCENT_NAVIGATION_BAR_FEATURE_FLAG = 45630927L + +internal val translucentNavigationBarFingerprint = legacyFingerprint( + name = "translucentNavigationBarFingerprint", + literals = listOf(TRANSLUCENT_NAVIGATION_BAR_FEATURE_FLAG), +) \ No newline at end of file diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/NavigationBarComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/NavigationBarComponentsPatch.kt index 4b709b5d4..ee584d225 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/NavigationBarComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/general/navigation/NavigationBarComponentsPatch.kt @@ -82,6 +82,19 @@ val navigationBarComponentsPatch = bytecodePatch( "SETTINGS: HIDE_NAVIGATION_COMPONENTS" ) + // region patch for enable translucent navigation bar + + if (is_19_25_or_greater) { + translucentNavigationBarFingerprint.injectLiteralInstructionBooleanCall( + TRANSLUCENT_NAVIGATION_BAR_FEATURE_FLAG, + "$GENERAL_CLASS_DESCRIPTOR->enableTranslucentNavigationBar()Z" + ) + + settingArray += "SETTINGS: TRANSLUCENT_NAVIGATION_BAR" + } + + // endregion + // region patch for enable narrow navigation buttons arrayOf( 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 9055a4b6b..03c8fbcfc 100644 --- a/patches/src/main/resources/youtube/settings/host/values/strings.xml +++ b/patches/src/main/resources/youtube/settings/host/values/strings.xml @@ -540,6 +540,9 @@ Also, ads will no longer be blocked in Shorts. If this setting do not take effect, try switching to Incognito mode." + Enable translucent navigation bar + Navigation bar is translucent. + Navigation bar is opaque. Hide navigation bar Navigation bar is hidden. Navigation bar is shown. 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 15e79d88d..e579f0dac 100644 --- a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -213,6 +213,9 @@ SETTINGS: HIDE_NAVIGATION_COMPONENTS --> + +