feat(YouTube - Navigation bar components): Separate Enable translucent navigation bar setting into Disable light translucent bar and Disable dark translucent bar settings

This commit is contained in:
inotia00
2024-12-21 13:30:25 +09:00
parent e3128a9552
commit b5f9a951d3
8 changed files with 87 additions and 20 deletions

View File

@ -74,7 +74,23 @@ internal val setEnumMapFingerprint = legacyFingerprint(
literals = listOf(ytFillBell),
)
internal val translucentNavigationBarFingerprint = legacyFingerprint(
name = "translucentNavigationBarFingerprint",
literals = listOf(45630927L),
internal const val TRANSLUCENT_NAVIGATION_BUTTONS_FEATURE_FLAG = 45630927L
internal val translucentNavigationButtonsFeatureFlagFingerprint = legacyFingerprint(
name = "translucentNavigationButtonsFeatureFlagFingerprint",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
returnType = "V",
literals = listOf(TRANSLUCENT_NAVIGATION_BUTTONS_FEATURE_FLAG)
)
/**
* The device on screen back/home/recent buttons.
*/
internal const val TRANSLUCENT_NAVIGATION_BUTTONS_SYSTEM_FEATURE_FLAG = 45632194L
internal val translucentNavigationButtonsSystemFeatureFlagFingerprint = legacyFingerprint(
name = "translucentNavigationButtonsSystemFeatureFlagFingerprint",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
returnType = "Z",
literals = listOf(TRANSLUCENT_NAVIGATION_BUTTONS_SYSTEM_FEATURE_FLAG)
)

View File

@ -11,7 +11,7 @@ import app.revanced.patches.youtube.utils.navigation.addBottomBarContainerHook
import app.revanced.patches.youtube.utils.navigation.hookNavigationButtonCreated
import app.revanced.patches.youtube.utils.navigation.navigationBarHookPatch
import app.revanced.patches.youtube.utils.patch.PatchList.NAVIGATION_BAR_COMPONENTS
import app.revanced.patches.youtube.utils.playservice.is_19_23_or_greater
import app.revanced.patches.youtube.utils.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.utils.playservice.is_19_28_or_greater
import app.revanced.patches.youtube.utils.playservice.versionCheckPatch
import app.revanced.patches.youtube.utils.resourceid.sharedResourceIdPatch
@ -84,11 +84,24 @@ val navigationBarComponentsPatch = bytecodePatch(
// region patch for enable translucent navigation bar
if (is_19_23_or_greater) {
translucentNavigationBarFingerprint.injectLiteralInstructionBooleanCall(
45630927L,
"$GENERAL_CLASS_DESCRIPTOR->enableTranslucentNavigationBar()Z"
)
if (is_19_25_or_greater) {
arrayOf(
Triple(
translucentNavigationButtonsFeatureFlagFingerprint,
TRANSLUCENT_NAVIGATION_BUTTONS_FEATURE_FLAG,
"useTranslucentNavigationButtons"
),
Triple(
translucentNavigationButtonsSystemFeatureFlagFingerprint,
TRANSLUCENT_NAVIGATION_BUTTONS_SYSTEM_FEATURE_FLAG,
"useTranslucentNavigationButtons"
)
).forEach {
it.first.injectLiteralInstructionBooleanCall(
it.second,
"$GENERAL_CLASS_DESCRIPTOR->${it.third}(Z)Z"
)
}
settingArray += "SETTINGS: TRANSLUCENT_NAVIGATION_BAR"
}

View File

@ -537,9 +537,12 @@ Also, ads will no longer be blocked in Shorts.
If this setting do not take effect, try switching to Incognito mode."</string>
<string name="revanced_enable_translucent_navigation_bar_title">Enable translucent navigation bar</string>
<string name="revanced_enable_translucent_navigation_bar_summary_on">Navigation bar is translucent.</string>
<string name="revanced_enable_translucent_navigation_bar_summary_off">Navigation bar is opaque.</string>
<string name="revanced_disable_translucent_navigation_bar_light_title">Disable light translucent bar</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_on">Light mode navigation bar is opaque.</string>
<string name="revanced_disable_translucent_navigation_bar_light_summary_off">Light mode navigation bar is opaque or translucent.</string>
<string name="revanced_disable_translucent_navigation_bar_dark_title">Disable dark translucent bar</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_on">Dark mode navigation bar is opaque.</string>
<string name="revanced_disable_translucent_navigation_bar_dark_summary_off">Dark mode navigation bar is opaque or translucent.</string>
<string name="revanced_hide_navigation_bar_title">Hide navigation bar</string>
<string name="revanced_hide_navigation_bar_summary_on">Navigation bar is hidden.</string>
<string name="revanced_hide_navigation_bar_summary_off">Navigation bar is shown.</string>

View File

@ -214,7 +214,8 @@
<PreferenceCategory android:title="@string/revanced_preference_category_experimental_flag" android:layout="@layout/revanced_settings_preferences_category"/>SETTINGS: HIDE_NAVIGATION_COMPONENTS -->
<!-- SETTINGS: TRANSLUCENT_NAVIGATION_BAR
<SwitchPreference android:title="@string/revanced_enable_translucent_navigation_bar_title" android:key="revanced_enable_translucent_navigation_bar" android:summaryOn="@string/revanced_enable_translucent_navigation_bar_summary_on" android:summaryOff="@string/revanced_enable_translucent_navigation_bar_summary_off" />SETTINGS: TRANSLUCENT_NAVIGATION_BAR -->
<SwitchPreference android:title="@string/revanced_disable_translucent_navigation_bar_light_title" android:key="revanced_disable_translucent_navigation_bar_light" android:summaryOn="@string/revanced_disable_translucent_navigation_bar_light_summary_on" android:summaryOff="@string/revanced_disable_translucent_navigation_bar_light_summary_off" />
<SwitchPreference android:title="@string/revanced_disable_translucent_navigation_bar_dark_title" android:key="revanced_disable_translucent_navigation_bar_dark" android:summaryOn="@string/revanced_disable_translucent_navigation_bar_dark_summary_on" android:summaryOff="@string/revanced_disable_translucent_navigation_bar_dark_summary_off" />SETTINGS: TRANSLUCENT_NAVIGATION_BAR -->
<!-- SETTINGS: HIDE_NAVIGATION_COMPONENTS
<SwitchPreference android:title="@string/revanced_hide_navigation_bar_title" android:key="revanced_hide_navigation_bar" android:summaryOn="@string/revanced_hide_navigation_bar_summary_on" android:summaryOff="@string/revanced_hide_navigation_bar_summary_off" />