mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-09 19:14:37 +02:00
feat(YouTube/Toolbar components): add Replace create button
settings
This commit is contained in:
parent
6bc243d1ab
commit
deedf0d483
@ -15,6 +15,7 @@ import app.revanced.patches.shared.voicesearch.VoiceSearchUtils.patchXml
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoBackgroundFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoTextFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.AttributeResolverFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.CreateButtonDrawableFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.CreateSearchSuggestionsFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.DrawerContentViewConstructorFingerprint
|
||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.DrawerContentViewFingerprint
|
||||
@ -31,6 +32,7 @@ import app.revanced.patches.youtube.utils.integrations.Constants.GENERAL_CLASS_D
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ActionBarRingoBackground
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.VoiceSearch
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtOutlineVideoCamera
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtPremiumWordMarkHeader
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtWordMarkHeader
|
||||
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||
@ -71,6 +73,7 @@ object ToolBarComponentsPatch : BaseBytecodePatch(
|
||||
fingerprints = setOf(
|
||||
ActionBarRingoBackgroundFingerprint,
|
||||
AttributeResolverFingerprint,
|
||||
CreateButtonDrawableFingerprint,
|
||||
CreateSearchSuggestionsFingerprint,
|
||||
DrawerContentViewConstructorFingerprint,
|
||||
SearchBarParentFingerprint,
|
||||
@ -360,6 +363,34 @@ object ToolBarComponentsPatch : BaseBytecodePatch(
|
||||
|
||||
// endregion
|
||||
|
||||
// region patch for replace create button
|
||||
|
||||
CreateButtonDrawableFingerprint.resultOrThrow().mutableMethod.apply {
|
||||
val index = getWideLiteralInstructionIndex(YtOutlineVideoCamera)
|
||||
val register = getInstruction<OneRegisterInstruction>(index).registerA
|
||||
|
||||
addInstructions(
|
||||
index + 1, """
|
||||
invoke-static {v$register}, $GENERAL_CLASS_DESCRIPTOR->getCreateButtonDrawableId(I)I
|
||||
move-result v$register
|
||||
"""
|
||||
)
|
||||
}
|
||||
|
||||
ToolBarHookPatch.hook("$GENERAL_CLASS_DESCRIPTOR->replaceCreateButton")
|
||||
|
||||
val settingsClass = context.findClass("Shell_SettingsActivity")
|
||||
?: throw PatchException("Shell_SettingsActivity class not found.")
|
||||
|
||||
settingsClass.mutableClass.methods.find { it.name == "onCreate" }?.apply {
|
||||
addInstruction(
|
||||
0,
|
||||
"invoke-static {p0}, $GENERAL_CLASS_DESCRIPTOR->setShellActivityTheme(Landroid/app/Activity;)V"
|
||||
)
|
||||
} ?: throw PatchException("onCreate method not found.")
|
||||
|
||||
// endregion
|
||||
|
||||
/**
|
||||
* Add settings
|
||||
*/
|
||||
|
@ -0,0 +1,8 @@
|
||||
package app.revanced.patches.youtube.general.toolbar.fingerprints
|
||||
|
||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtOutlineVideoCamera
|
||||
import app.revanced.util.fingerprint.LiteralValueFingerprint
|
||||
|
||||
internal object CreateButtonDrawableFingerprint : LiteralValueFingerprint(
|
||||
literalSupplier = { YtOutlineVideoCamera }
|
||||
)
|
@ -90,6 +90,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
||||
var VideoQualityBottomSheet = -1L
|
||||
var VoiceSearch = -1L
|
||||
var YouTubeControlsOverlaySubtitleButton = -1L
|
||||
var YtOutlineVideoCamera = -1L
|
||||
var YtPremiumWordMarkHeader = -1L
|
||||
var YtWordMarkHeader = -1L
|
||||
|
||||
@ -170,6 +171,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
||||
VideoQualityBottomSheet = getId(LAYOUT, "video_quality_bottom_sheet_list_fragment_title")
|
||||
VoiceSearch = getId(ID, "voice_search")
|
||||
YouTubeControlsOverlaySubtitleButton = getId(LAYOUT, "youtube_controls_overlay_subtitle_button")
|
||||
YtOutlineVideoCamera = getId(DRAWABLE, "yt_outline_video_camera_black_24")
|
||||
YtPremiumWordMarkHeader = getId(ATTR, "ytPremiumWordmarkHeader")
|
||||
YtWordMarkHeader = getId(ATTR, "ytWordmarkHeader")
|
||||
|
||||
|
@ -402,6 +402,13 @@ You tab > View channel > Menu > Settings."</string>
|
||||
<string name="revanced_hide_voice_search_button_title">Hide voice search button</string>
|
||||
<string name="revanced_hide_voice_search_button_summary_on">Voice search button is hidden in search bar.</string>
|
||||
<string name="revanced_hide_voice_search_button_summary_off">Voice search button is shown in search bar.</string>
|
||||
<string name="revanced_replace_toolbar_create_button_title">Replace create button</string>
|
||||
<string name="revanced_replace_toolbar_create_button_summary">Replaces create button with settings button.</string>
|
||||
<string name="revanced_replace_toolbar_create_button_type_title">Action type to assign to button</string>
|
||||
<string name="revanced_replace_toolbar_create_button_type_summary_on">"Tap to open RVX Settings.
|
||||
Tap and hold to open YouTube Settings."</string>
|
||||
<string name="revanced_replace_toolbar_create_button_type_summary_off">"Tap to open YouTube Settings.
|
||||
Tap and hold to open RVX Settings."</string>
|
||||
|
||||
|
||||
<!-- PreferenceScreen: Player -->
|
||||
|
@ -139,6 +139,10 @@
|
||||
<SwitchPreference android:title="@string/revanced_hide_trending_searches_title" android:key="revanced_hide_trending_searches" android:defaultValue="true" android:summaryOn="@string/revanced_hide_trending_searches_summary_on" android:summaryOff="@string/revanced_hide_trending_searches_summary_off" />SETTINGS: TOOLBAR_COMPONENTS -->
|
||||
<!-- SETTINGS: HIDE_VOICE_SEARCH_BUTTON
|
||||
<SwitchPreference android:title="@string/revanced_hide_voice_search_button_title" android:key="revanced_hide_voice_search_button" android:defaultValue="false" android:summaryOn="@string/revanced_hide_voice_search_button_summary_on" android:summaryOff="@string/revanced_hide_voice_search_button_summary_off" />SETTINGS: HIDE_VOICE_SEARCH_BUTTON -->
|
||||
<!-- SETTINGS: TOOLBAR_COMPONENTS
|
||||
<PreferenceCategory android:title="@string/revanced_preference_category_experimental_flag" android:layout="@layout/revanced_settings_preferences_category"/>
|
||||
<SwitchPreference android:title="@string/revanced_replace_toolbar_create_button_title" android:key="revanced_replace_toolbar_create_button" android:defaultValue="false" android:summary="@string/revanced_replace_toolbar_create_button_summary" />
|
||||
<SwitchPreference android:title="@string/revanced_replace_toolbar_create_button_type_title" android:key="revanced_replace_toolbar_create_button_type" android:defaultValue="false" android:summaryOn="@string/revanced_replace_toolbar_create_button_type_summary_on" android:summaryOff="@string/revanced_replace_toolbar_create_button_type_summary_off" android:dependency="revanced_replace_toolbar_create_button" />SETTINGS: TOOLBAR_COMPONENTS -->
|
||||
|
||||
<!-- SETTINGS: TOOLBAR_COMPONENTS
|
||||
</PreferenceScreen>SETTINGS: TOOLBAR_COMPONENTS -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user