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.ActionBarRingoBackgroundFingerprint
|
||||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.ActionBarRingoTextFingerprint
|
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.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.CreateSearchSuggestionsFingerprint
|
||||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.DrawerContentViewConstructorFingerprint
|
import app.revanced.patches.youtube.general.toolbar.fingerprints.DrawerContentViewConstructorFingerprint
|
||||||
import app.revanced.patches.youtube.general.toolbar.fingerprints.DrawerContentViewFingerprint
|
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
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ActionBarRingoBackground
|
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.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.YtPremiumWordMarkHeader
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtWordMarkHeader
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.YtWordMarkHeader
|
||||||
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||||
@ -71,6 +73,7 @@ object ToolBarComponentsPatch : BaseBytecodePatch(
|
|||||||
fingerprints = setOf(
|
fingerprints = setOf(
|
||||||
ActionBarRingoBackgroundFingerprint,
|
ActionBarRingoBackgroundFingerprint,
|
||||||
AttributeResolverFingerprint,
|
AttributeResolverFingerprint,
|
||||||
|
CreateButtonDrawableFingerprint,
|
||||||
CreateSearchSuggestionsFingerprint,
|
CreateSearchSuggestionsFingerprint,
|
||||||
DrawerContentViewConstructorFingerprint,
|
DrawerContentViewConstructorFingerprint,
|
||||||
SearchBarParentFingerprint,
|
SearchBarParentFingerprint,
|
||||||
@ -360,6 +363,34 @@ object ToolBarComponentsPatch : BaseBytecodePatch(
|
|||||||
|
|
||||||
// endregion
|
// 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
|
* 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 VideoQualityBottomSheet = -1L
|
||||||
var VoiceSearch = -1L
|
var VoiceSearch = -1L
|
||||||
var YouTubeControlsOverlaySubtitleButton = -1L
|
var YouTubeControlsOverlaySubtitleButton = -1L
|
||||||
|
var YtOutlineVideoCamera = -1L
|
||||||
var YtPremiumWordMarkHeader = -1L
|
var YtPremiumWordMarkHeader = -1L
|
||||||
var YtWordMarkHeader = -1L
|
var YtWordMarkHeader = -1L
|
||||||
|
|
||||||
@ -170,6 +171,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
VideoQualityBottomSheet = getId(LAYOUT, "video_quality_bottom_sheet_list_fragment_title")
|
VideoQualityBottomSheet = getId(LAYOUT, "video_quality_bottom_sheet_list_fragment_title")
|
||||||
VoiceSearch = getId(ID, "voice_search")
|
VoiceSearch = getId(ID, "voice_search")
|
||||||
YouTubeControlsOverlaySubtitleButton = getId(LAYOUT, "youtube_controls_overlay_subtitle_button")
|
YouTubeControlsOverlaySubtitleButton = getId(LAYOUT, "youtube_controls_overlay_subtitle_button")
|
||||||
|
YtOutlineVideoCamera = getId(DRAWABLE, "yt_outline_video_camera_black_24")
|
||||||
YtPremiumWordMarkHeader = getId(ATTR, "ytPremiumWordmarkHeader")
|
YtPremiumWordMarkHeader = getId(ATTR, "ytPremiumWordmarkHeader")
|
||||||
YtWordMarkHeader = getId(ATTR, "ytWordmarkHeader")
|
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_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_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_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 -->
|
<!-- 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 -->
|
<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
|
<!-- 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 -->
|
<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
|
<!-- SETTINGS: TOOLBAR_COMPONENTS
|
||||||
</PreferenceScreen>SETTINGS: TOOLBAR_COMPONENTS -->
|
</PreferenceScreen>SETTINGS: TOOLBAR_COMPONENTS -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user