feat(YouTube/Alternative thumbnails): selectively enable for home / subscriptions / search

This commit is contained in:
inotia00
2024-04-20 22:13:36 +09:00
parent c21666cad8
commit 88cb403bdf
4 changed files with 55 additions and 51 deletions

View File

@ -15,6 +15,8 @@ import app.revanced.patches.youtube.alternativethumbnails.general.fingerprints.c
import app.revanced.patches.youtube.alternativethumbnails.general.fingerprints.cronet.request.callback.OnSucceededFingerprint
import app.revanced.patches.youtube.utils.integrations.Constants.ALTERNATIVE_THUMBNAILS_CLASS_DESCRIPTOR
import app.revanced.patches.youtube.utils.integrations.Constants.COMPATIBLE_PACKAGE
import app.revanced.patches.youtube.utils.navigation.NavigationBarHookPatch
import app.revanced.patches.youtube.utils.playertype.PlayerTypeHookPatch
import app.revanced.patches.youtube.utils.settings.SettingsPatch
import app.revanced.util.patch.BaseBytecodePatch
import app.revanced.util.resultOrThrow
@ -29,7 +31,11 @@ import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
object AlternativeThumbnailsPatch : BaseBytecodePatch(
name = "Alternative thumbnails",
description = "Adds options to replace video thumbnails using the DeArrow API or image captures from the video.",
dependencies = setOf(SettingsPatch::class),
dependencies = setOf(
NavigationBarHookPatch::class,
PlayerTypeHookPatch::class,
SettingsPatch::class,
),
compatiblePackages = COMPATIBLE_PACKAGE,
fingerprints = setOf(
MessageDigestImageUrlParentFingerprint,

View File

@ -1,14 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="revanced_alt_thumbnail_type_entries">
<string-array name="revanced_alt_thumbnail_options_entries">
<item>@string/revanced_alt_thumbnail_options_entry_1</item>
<item>@string/revanced_alt_thumbnail_options_entry_2</item>
<item>@string/revanced_alt_thumbnail_options_entry_3</item>
<item>@string/revanced_alt_thumbnail_options_entry_4</item>
</string-array>
<string-array name="revanced_alt_thumbnail_options_entry_values">
<item>ORIGINAL</item>
<item>DEARROW</item>
<item>DEARROW_STILL_IMAGES</item>
<item>STILL_IMAGES</item>
</string-array>
<string-array name="revanced_alt_thumbnail_stills_time_entries">
<item>@string/revanced_alt_thumbnail_stills_time_entry_1</item>
<item>@string/revanced_alt_thumbnail_stills_time_entry_2</item>
<item>@string/revanced_alt_thumbnail_stills_time_entry_3</item>
</string-array>
<string-array name="revanced_alt_thumbnail_stills_time_entry_values">
<item>1</item>
<item>2</item>
<item>3</item>
<item>BEGINNING</item>
<item>MIDDLE</item>
<item>END</item>
</string-array>
<string-array name="revanced_change_start_page_entries">
<item>@string/revanced_change_start_page_entry_default</item>

View File

@ -44,45 +44,35 @@
<!-- PreferenceScreen: Alternative thumbnails -->
<string name="revanced_preference_screen_alt_thumbnails_title">Alternative thumbnails</string>
<string name="revanced_alt_thumbnail_about_title">Thumbnails in use</string>
<string name="revanced_alt_thumbnail_about_status_dearrow">"Showing DeArrow thumbnails.
If a video has no DeArrow thumbnails then the original YouTube thumbnails are shown."</string>
<string name="revanced_alt_thumbnail_about_status_dearrow_stills">"Showing DeArrow thumbnails.
If a video has no DeArrow thumbnails then still video captures are shown."</string>
<string name="revanced_alt_thumbnail_about_status_disabled">Showing original YouTube thumbnails.</string>
<string name="revanced_alt_thumbnail_about_status_stills">Showing still video captures.</string>
<string name="revanced_alt_thumbnail_home_title">Home tab</string>
<string name="revanced_alt_thumbnail_subscriptions_title">Subscriptions tab</string>
<string name="revanced_alt_thumbnail_library_title">You tab</string>
<string name="revanced_alt_thumbnail_player_title">Player playlists, recommendations</string>
<string name="revanced_alt_thumbnail_search_title">Search results</string>
<string name="revanced_alt_thumbnail_options_entry_1">Original thumbnails</string>
<string name="revanced_alt_thumbnail_options_entry_2">DeArrow &amp; Original thumbnails</string>
<string name="revanced_alt_thumbnail_options_entry_3">DeArrow &amp; Still captures</string>
<string name="revanced_alt_thumbnail_options_entry_4">Still captures</string>
<string name="revanced_alt_thumbnail_dearrow_about_title">DeArrow</string>
<string name="revanced_alt_thumbnail_dearrow_about_summary">"DeArrow provides crowd-sourced thumbnails for YouTube videos. These thumbnails are often more relevant than those provided by YouTube.
<!-- PreferenceScreen: Alternative thumbnails, PreferenceCategory: DeArrow -->
<string name="revanced_preference_category_alt_thumbnails_dearrow">DeArrow</string>
<string name="revanced_alt_thumbnail_dearrow_title">Enable DeArrow thumbnails</string>
<string name="revanced_alt_thumbnail_dearrow_summary_on">Using DeArrow thumbnails.</string>
<string name="revanced_alt_thumbnail_dearrow_summary_off">Not using DeArrow thumbnails.</string>
If enabled, video URLs will be sent to the API server and no other data is sent. If a video does not have DeArrow thumbnails, then the original or still captures are shown.
Tap here to learn more about DeArrow."</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">Show a toast if API is not available</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">Toast is shown if DeArrow is not available.</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">Toast is not shown if DeArrow is not available.</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API endpoint</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_summary">"The URL of the DeArrow thumbnail cache endpoint. Do not change this unless you know what you're doing."</string>
<string name="revanced_alt_thumbnail_dearrow_about_title">About DeArrow</string>
<string name="revanced_alt_thumbnail_dearrow_about_summary">"DeArrow provides crowd-sourced thumbnails for YouTube videos. These thumbnails are often more relevant than those provided by YouTube. If enabled, video URLs will be sent to the API server and no other data is sent.
Tap here to learn more about DeArrow."</string>
<!-- PreferenceScreen: Alternative thumbnails, PreferenceCategory: Still video captures -->
<string name="revanced_preference_category_alt_thumbnails_stills">Still video captures</string>
<string name="revanced_alt_thumbnail_stills_title">Enable still video captures</string>
<string name="revanced_alt_thumbnail_stills_summary_on">Using YouTube still video captures.</string>
<string name="revanced_alt_thumbnail_stills_summary_off">Not using YouTube still video captures.</string>
<string name="revanced_alt_thumbnail_stills_time_title">Video time to take the still from</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_summary">The URL of the DeArrow thumbnail cache endpoint.</string>
<string name="revanced_alt_thumbnail_stills_about_title">Still video captures</string>
<string name="revanced_alt_thumbnail_stills_about_summary">Still captures are taken from the beginning / middle / end of each video. These images are built into YouTube and no external API is used.</string>
<string name="revanced_alt_thumbnail_stills_fast_title">Use fast still captures</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">Using medium quality still captures. Thumbnails will load faster, but live streams, unreleased, or very old videos may show blank thumbnails.</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">Using high quality still captures.</string>
<string name="revanced_alt_thumbnail_stills_time_title">Video time to take still captures from</string>
<string name="revanced_alt_thumbnail_stills_time_entry_1">Beginning of video</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">Middle of video</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">End of video</string>
<string name="revanced_alt_thumbnail_stills_fast_title">Use fast still captures</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">Using medium quality still captures. Thumbnails will load faster, but live streams, unreleased, and very old videos may show blank thumbnails.</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">Using high quality still captures.</string>
<string name="revanced_alt_thumbnail_stills_about_title">About still video captures</string>
<string name="revanced_alt_thumbnail_stills_about_summary">Still captures are taken from the beginning / middle / end of each video. These images are built into YouTube and no external API is used.</string>
<!-- PreferenceScreen: Alternative thumbnails, Shared -->
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow temporarily not available. (status code: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow temporarily not available.</string>

View File

@ -18,21 +18,17 @@
<!-- PREFERENCE_SCREEN: ALTERNATIVE_THUMBNAILS
<PreferenceScreen android:title="@string/revanced_preference_screen_alt_thumbnails_title" android:key="revanced_preference_screen_alt_thumbnails">
<app.revanced.integrations.youtube.settings.preference.AlternativeThumbnailsStatusPreference android:title="@string/revanced_alt_thumbnail_about_title" />
<PreferenceCategory android:title="@string/revanced_preference_category_alt_thumbnails_dearrow" android:layout="@layout/revanced_settings_preferences_category">
<SwitchPreference android:title="@string/revanced_alt_thumbnail_dearrow_title" android:key="revanced_alt_thumbnail_dearrow" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_dearrow_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_dearrow_summary_off" />
<SwitchPreference android:title="@string/revanced_alt_thumbnail_dearrow_connection_toast_title" android:key="revanced_alt_thumbnail_dearrow_connection_toast" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_dearrow_connection_toast_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_dearrow_connection_toast_summary_off" />
<app.revanced.integrations.shared.settings.preference.ResettableEditTextPreference android:title="@string/revanced_alt_thumbnail_dearrow_api_url_title" android:key="revanced_alt_thumbnail_dearrow_api_url" android:defaultValue="https://dearrow-thumb.ajay.app/api/v1/getThumbnail" android:summary="@string/revanced_alt_thumbnail_dearrow_api_url_summary" android:inputType="text" />
<app.revanced.integrations.youtube.settings.preference.AlternativeThumbnailsAboutDeArrowPreference android:title="@string/revanced_alt_thumbnail_dearrow_about_title" android:selectable="true" android:summary="@string/revanced_alt_thumbnail_dearrow_about_summary" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/revanced_preference_category_alt_thumbnails_stills" android:layout="@layout/revanced_settings_preferences_category">
<SwitchPreference android:title="@string/revanced_alt_thumbnail_stills_title" android:key="revanced_alt_thumbnail_stills" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_stills_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_stills_summary_off" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_type_entries" android:title="@string/revanced_alt_thumbnail_stills_time_title" android:key="revanced_alt_thumbnail_stills_time" android:defaultValue="2" android:entryValues="@array/revanced_alt_thumbnail_stills_time_entry_values" />
<SwitchPreference android:title="@string/revanced_alt_thumbnail_stills_fast_title" android:key="revanced_alt_thumbnail_stills_fast" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_stills_fast_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_stills_fast_summary_off" />
<Preference android:title="@string/revanced_alt_thumbnail_stills_about_title" android:selectable="true" android:summary="@string/revanced_alt_thumbnail_stills_about_summary" />
</PreferenceCategory>
<ListPreference android:entries="@array/revanced_alt_thumbnail_options_entries" android:title="@string/revanced_alt_thumbnail_home_title" android:key="revanced_alt_thumbnail_home" android:entryValues="@array/revanced_alt_thumbnail_options_entry_values" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_options_entries" android:title="@string/revanced_alt_thumbnail_subscriptions_title" android:key="revanced_alt_thumbnail_subscriptions" android:entryValues="@array/revanced_alt_thumbnail_options_entry_values" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_options_entries" android:title="@string/revanced_alt_thumbnail_library_title" android:key="revanced_alt_thumbnail_library" android:entryValues="@array/revanced_alt_thumbnail_options_entry_values" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_options_entries" android:title="@string/revanced_alt_thumbnail_player_title" android:key="revanced_alt_thumbnail_player" android:entryValues="@array/revanced_alt_thumbnail_options_entry_values" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_options_entries" android:title="@string/revanced_alt_thumbnail_search_title" android:key="revanced_alt_thumbnail_search" android:entryValues="@array/revanced_alt_thumbnail_options_entry_values" />
<app.revanced.integrations.youtube.settings.preference.AlternativeThumbnailsAboutDeArrowPreference android:title="@string/revanced_alt_thumbnail_dearrow_about_title" android:selectable="true" android:summary="@string/revanced_alt_thumbnail_dearrow_about_summary" />
<SwitchPreference android:title="@string/revanced_alt_thumbnail_dearrow_connection_toast_title" android:key="revanced_alt_thumbnail_dearrow_connection_toast" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_dearrow_connection_toast_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_dearrow_connection_toast_summary_off" />
<app.revanced.integrations.shared.settings.preference.ResettableEditTextPreference android:title="@string/revanced_alt_thumbnail_dearrow_api_url_title" android:key="revanced_alt_thumbnail_dearrow_api_url" android:defaultValue="https://dearrow-thumb.ajay.app/api/v1/getThumbnail" android:summary="@string/revanced_alt_thumbnail_dearrow_api_url_summary" android:inputType="text" />
<Preference android:title="@string/revanced_alt_thumbnail_stills_about_title" android:selectable="false" android:summary="@string/revanced_alt_thumbnail_stills_about_summary" />
<SwitchPreference android:title="@string/revanced_alt_thumbnail_stills_fast_title" android:key="revanced_alt_thumbnail_stills_fast" android:defaultValue="false" android:summaryOn="@string/revanced_alt_thumbnail_stills_fast_summary_on" android:summaryOff="@string/revanced_alt_thumbnail_stills_fast_summary_off" />
<ListPreference android:entries="@array/revanced_alt_thumbnail_stills_time_entries" android:title="@string/revanced_alt_thumbnail_stills_time_title" android:key="revanced_alt_thumbnail_stills_time" android:entryValues="@array/revanced_alt_thumbnail_stills_time_entry_values" />
</PreferenceScreen>PREFERENCE_SCREEN: ALTERNATIVE_THUMBNAILS -->