From cd19073dd4fc56dd0e246ce49ab621b5c89a4ca7 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:34:21 +0900 Subject: [PATCH] feat(YouTube - Navigation bar components): Add `Disable translucent status bar` setting --- .../extension/youtube/patches/general/GeneralPatch.java | 8 ++++++++ .../revanced/extension/youtube/settings/Settings.java | 1 + .../patches/youtube/general/navigation/Fingerprints.kt | 9 +++++++++ .../general/navigation/NavigationBarComponentsPatch.kt | 6 ++++++ .../resources/youtube/settings/host/values/strings.xml | 3 +++ .../resources/youtube/settings/xml/revanced_prefs.xml | 3 +++ 6 files changed, 30 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 2530994e8..dceb56170 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 @@ -245,6 +245,14 @@ public class GeneralPatch { hideViewUnderCondition(Settings.HIDE_NAVIGATION_BAR.get(), view); } + public static boolean useTranslucentNavigationStatusBar(boolean original) { + if (Settings.DISABLE_TRANSLUCENT_STATUS_BAR.get()) { + return false; + } + + return original; + } + private static final Boolean DISABLE_TRANSLUCENT_NAVIGATION_BAR_LIGHT = Settings.DISABLE_TRANSLUCENT_NAVIGATION_BAR_LIGHT.get(); 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 6cfb7d452..3855c6676 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 @@ -147,6 +147,7 @@ public class Settings extends BaseSettings { new ChangeStartPagePatch.ChangeStartPageTypeAvailability()); public static final BooleanSetting DISABLE_AUTO_AUDIO_TRACKS = new BooleanSetting("revanced_disable_auto_audio_tracks", FALSE); public static final BooleanSetting DISABLE_SPLASH_ANIMATION = new BooleanSetting("revanced_disable_splash_animation", FALSE, true); + public static final BooleanSetting DISABLE_TRANSLUCENT_STATUS_BAR = new BooleanSetting("revanced_disable_translucent_status_bar", FALSE, true); public static final BooleanSetting ENABLE_GRADIENT_LOADING_SCREEN = new BooleanSetting("revanced_enable_gradient_loading_screen", FALSE, true); public static final BooleanSetting HIDE_FLOATING_MICROPHONE = new BooleanSetting("revanced_hide_floating_microphone", TRUE, true); public static final BooleanSetting HIDE_GRAY_SEPARATOR = new BooleanSetting("revanced_hide_gray_separator", TRUE); 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 eadcf1f5e..fd74a28bd 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 @@ -74,6 +74,15 @@ internal val setEnumMapFingerprint = legacyFingerprint( literals = listOf(ytFillBell), ) +internal const val TRANSLUCENT_NAVIGATION_STATUS_BAR_FEATURE_FLAG = 45400535L + +internal val translucentNavigationStatusBarFeatureFlagFingerprint = legacyFingerprint( + name = "translucentNavigationStatusBarFeatureFlagFingerprint", + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + returnType = "Z", + literals = listOf(TRANSLUCENT_NAVIGATION_STATUS_BAR_FEATURE_FLAG) +) + internal const val TRANSLUCENT_NAVIGATION_BUTTONS_FEATURE_FLAG = 45630927L internal val translucentNavigationButtonsFeatureFlagFingerprint = legacyFingerprint( 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 dbd8c7321..8e8d38987 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 @@ -86,6 +86,11 @@ val navigationBarComponentsPatch = bytecodePatch( if (is_19_25_or_greater) { arrayOf( + Triple( + translucentNavigationStatusBarFeatureFlagFingerprint, + TRANSLUCENT_NAVIGATION_STATUS_BAR_FEATURE_FLAG, + "useTranslucentNavigationStatusBar" + ), Triple( translucentNavigationButtonsFeatureFlagFingerprint, TRANSLUCENT_NAVIGATION_BUTTONS_FEATURE_FLAG, @@ -103,6 +108,7 @@ val navigationBarComponentsPatch = bytecodePatch( ) } + settingArray += "SETTINGS: DISABLE_TRANSLUCENT_STATUS_BAR" settingArray += "SETTINGS: TRANSLUCENT_NAVIGATION_BAR" } 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 ca90f5ab4..16607117c 100644 --- a/patches/src/main/resources/youtube/settings/host/values/strings.xml +++ b/patches/src/main/resources/youtube/settings/host/values/strings.xml @@ -349,6 +349,9 @@ Limitation: Back button on the toolbar may not work." Disable splash animation Splash animation is disabled. Splash animation is enabled. + Disable translucent status bar + Status bar is opaque. + Status bar is opaque or translucent. Enable gradient loading screen Gradient loading screen is enabled. Gradient loading screen is disabled. 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 4f2ee4e33..fca8e7024 100644 --- a/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/patches/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -282,6 +282,9 @@ + +