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 -->
+
+