feat(YouTube, YT Music & Reddit): Add credits

Close https://github.com/anddea/revanced-patches/issues/1424
This commit is contained in:
Aaron Veil 2026-03-16 10:05:16 +03:00
parent d643b08377
commit b20f2f1cb8
12 changed files with 92 additions and 37 deletions

View file

@ -14,7 +14,7 @@ Check the [wiki](https://github.com/anddea/revanced-patches/wiki) for resources
Report issues [here](https://github.com/inotia00/ReVanced_Extended).
This app uses code from Morphe. To learn more, visit https://morphe.software.
[Credits](https://github.com/anddea/revanced-patches/wiki/Credits)
## 📋 List of patches in this repository

View file

@ -28,11 +28,13 @@ public class AppInfoDialogBuilder {
long patchedTime = PatchedTime();
Date date = new Date(patchedTime);
final String creditsUrl = "https://github.com/anddea/revanced-patches/wiki/Credits";
final String htmlDialog = "<html>" +
"<body style=\"padding: 15px;\"><p>" +
String.format(
Locale.ENGLISH,
"<style> body { background-color: %s; color: %s; line-height: 20px; } a { color: %s; } </style>",
"<style> body { background-color: %s; color: %s; line-height: 20px; } a { color: %s; text-decoration: underline; } </style>",
backgroundColorHex, foregroundColorHex, foregroundColorHex) +
"<h2>" +
str("revanced_app_info_dialog_title") +
@ -44,6 +46,8 @@ public class AppInfoDialogBuilder {
PatchVersion(),
date.toLocaleString()
) +
"<br><br>" +
"<a href=\"" + creditsUrl + "\">" + str("revanced_credits_title") + "</a>" +
"</p></body></html>";
Utils.runOnMainThreadNowOrLater(() -> {
@ -54,4 +58,4 @@ public class AppInfoDialogBuilder {
Logger.printException(() -> "dialogBuilder failure", ex);
}
}
}
}

View file

@ -49,5 +49,10 @@ public class MiscellaneousPreferenceCategory extends ConditionalPreferenceCatego
"https://rvxtranslate.netlify.app/"
));
}
addPreference(new LinkPreference(
context,
"revanced_credits_title",
"https://github.com/anddea/revanced-patches/wiki/Credits"
));
}
}

View file

@ -0,0 +1,38 @@
package app.morphe.extension.youtube.settings.preference;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.preference.Preference;
import android.util.AttributeSet;
/**
* Allows tapping the Gemini about preference to open the Gemini website.
*/
@SuppressWarnings({"unused", "deprecation"})
public class CreditsPreference extends Preference {
{
setOnPreferenceClickListener(pref -> {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("https://github.com/anddea/revanced-patches/wiki/Credits"));
pref.getContext().startActivity(i);
return false;
});
}
public CreditsPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public CreditsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CreditsPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CreditsPreference(Context context) {
super(context);
}
}

View file

@ -127,6 +127,7 @@ If you are a YouTube Premium user, this setting may not be required"</string>
<string name="revanced_change_start_page_entry_subscriptions">Subscriptions</string>
<string name="revanced_change_start_page_summary">Select which page the app opens in.</string>
<string name="revanced_change_start_page_title">Change start page</string>
<string name="revanced_credits_title">Credits</string>
<string name="revanced_custom_filter_strings_summary">List of component path builder strings to filter, separated by new lines.</string>
<string name="revanced_custom_filter_strings_title">Custom filter</string>
<string name="revanced_custom_filter_summary">Enables the custom filter to hide layout components.</string>

View file

@ -43,6 +43,7 @@
<string name="morphe_sanitize_sharing_links_summary_on">تمت إزالة معلمة استعلام التتبع من الروابط عند المشاركة</string>
<string name="morphe_sanitize_sharing_links_title">تطهير روابط المشاركة</string>
<string name="morphe_spoof_video_streams_client_type_title">العميل الافتراضي</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary">تعطيل تحديث جافا سكريبت الخاص بالمشغل</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">تم تمكين تحديث مشغل JavaScript</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_on">"تم تعطيل تحديث مشغل JavaScript

View file

@ -40,6 +40,7 @@ Devam düğmesine dokunun ve pil optimizasyonlarını devre dışı bırakın."<
<string name="morphe_sanitize_sharing_links_summary_on">Paylaşılan bağlantılardan izleyici sorgu parametresi kaldırılır</string>
<string name="morphe_sanitize_sharing_links_title">Paylaşım bağlantılarını temizle</string>
<string name="morphe_spoof_video_streams_client_type_title">Varsayılan istemci</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary">Oynatıcı JavaScript güncellemesini devre dışı bırak</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">Oynatıcı JavaScript güncellemesi etkin</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_on">"Oynatıcı JavaScript güncellemesi devre dışı
@ -80,6 +81,7 @@ Oturum açmak için, devam et butonuna basın."</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_success_dialog_title">Başarıyla oturum açıldı</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_activation_code_failed">Aktivasyon kodu oluşturulamadı</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_authorization_code_failed">Kimlik doğrulama anahtarı oluşturulamadı</string>
<string name="morphe_spoof_video_streams_summary">Oynatma sorunlarını önlemek için istemci video akışlarını taklit et.</string>
<string name="morphe_spoof_video_streams_summary_off">"Video akışları taklit edilmez
Oynatma çalışmayabilir"</string>
@ -666,6 +668,7 @@ APl anahtarının nasıl verileceğini görmek için tıklayın."</string>
4. Oturum açtıktan sonra, RVX'e geri dönün ve tekrar 'Android VR'ye giriş yap' seçeneğine tıklayın.
5. Yetkilendirme belirteci almak için 'Yetkilendirme anahtarı al' seçeneğine tıklayın."</string>
<string name="revanced_spoof_streaming_data_sign_in_android_vr_activation_code_dialog_open_website">Web sitesini aç</string>
<string name="revanced_spoof_streaming_data_sign_in_android_vr_activation_code_dialog_open_website_text">Web sitesini aç</string>
<string name="revanced_spoof_streaming_data_sign_in_android_vr_activation_code_dialog_title">Etkinleştirme kodu</string>
<string name="revanced_spoof_streaming_data_sign_in_android_vr_activation_code_toast_copy">Etkinleştirme kodu panoya kopyalandı: %s.</string>

View file

@ -27,34 +27,34 @@
<string name="morphe_force_original_audio_summary_off">使用預設音訊</string>
<string name="morphe_force_original_audio_summary_on">正在使用原始音訊語言</string>
<string name="morphe_force_original_audio_title">強制使用原始音訊語言</string>
<string name="morphe_oauth2_connection_failure_auth_error">無法登 VR%s</string>
<string name="morphe_oauth2_connection_failure_auth_error">無法登 VR%s</string>
<string name="morphe_oauth2_connection_failure_auth_not_approved">無法登入 VR網站驗證未獲批准</string>
<string name="morphe_oauth2_connection_failure_generic">OAuth2 暫時不可用</string>
<string name="morphe_oauth2_connection_failure_status">OAuth2 暫時不可用(狀態 %d</string>
<string name="morphe_oauth2_connection_failure_status_400">Android VR 登入已過期,請重新登入 VR</string>
<string name="morphe_oauth2_connection_failure_status_400">Android VR 登入逾期,請再次登入 VR</string>
<string name="morphe_oauth2_connection_failure_timeout">OAuth2 暫時不可用API 已逾時)</string>
<string name="morphe_oauth2_toast_invalid">無效的 VR 登錄權杖,請重新登錄 VR</string>
<string name="morphe_oauth2_toast_reset">從 Android VR 中登出</string>
<string name="morphe_oauth2_toast_invalid">VR 登入憑證無效,請再次登入 VR</string>
<string name="morphe_oauth2_toast_reset">登出 Android VR</string>
<string name="morphe_replace_music_with_youtube_summary_off">分享連結使用 music.youtube.com</string>
<string name="morphe_replace_music_with_youtube_summary_on">分享連結使用 youtube.com</string>
<string name="morphe_replace_music_with_youtube_title">將分享連結更改為 youtube.com</string>
<string name="morphe_sanitize_sharing_links_summary_off">追蹤查詢參數未從分享連結中移除</string>
<string name="morphe_sanitize_sharing_links_summary_on">追蹤查詢參數已從分享連結中移除</string>
<string name="morphe_sanitize_sharing_links_summary_off">未從分享連結中移除追蹤查詢參數</string>
<string name="morphe_sanitize_sharing_links_summary_on">已從分享連結中移除追蹤查詢參數</string>
<string name="morphe_sanitize_sharing_links_title">清理分享連結</string>
<string name="morphe_spoof_video_streams_client_type_title">預設用戶端</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">播放器 JavaScript 更新已啟用</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">已啟用播放器 JavaScript 更新</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_on">"播放器 JavaScript 更新已停用
• 需要有效的播放器 JavaScript 哈希
• 如果 GVS 中撤銷了播放器 JavaScript 哈希值,則播放將失敗"</string>
• 需要有效的播放器 JavaScript 雜湊
• 如果 GVS 撤銷了播放器 JavaScript 雜湊值,則會無法播放影片"</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_title">停用播放器 JavaScript 更新</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_user_dialog_message">播放器 JavaScript 雜湊約有效期一個月,且過期的雜湊可能由 GVS 撤銷。</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_user_dialog_message">播放器 JavaScript 雜湊值有效期約一個月,且過期的雜湊值可能被 GVS 撤銷。</string>
<string name="morphe_spoof_video_streams_no_clients_suggest_vr_toast">試試啟用:偽裝視訊串流 &gt; Android VR 登入</string>
<string name="morphe_spoof_video_streams_no_clients_toast">未能擷取任何戶端串流</string>
<string name="morphe_spoof_video_streams_no_clients_toast">未能擷取任何戶端串流</string>
<string name="morphe_spoof_video_streams_player_js_hash_summary">請輸入有效的播放器 JavaScript 雜湊值</string>
<string name="morphe_spoof_video_streams_player_js_hash_title">播放器 JavaScript 雜湊值</string>
<string name="morphe_spoof_video_streams_screen_summary">造用戶端影片串流以避免播放問題</string>
<string name="morphe_spoof_video_streams_screen_title">影片串流</string>
<string name="morphe_spoof_video_streams_screen_summary">裝客戶端影片串流以避免播放問題</string>
<string name="morphe_spoof_video_streams_screen_title">影片串流</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary">尚未登入 Android VR。輕觸這裡即可登入</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary_disabled">如要使用這項功能,請將「預設用戶端」改為 Android VR</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary_signed_in">已登入 Android VR</string>
@ -79,12 +79,12 @@
• 你的 Morphe 設定不會匯入/匯出 Android VR 驗證資訊。
• 如果這個應用程式超過 6 個月未使用Google 將會移除這個驗證授權。
• 如果你變更 Google 密碼,或在 Google 設定中取消註冊這個裝置,則需要重新登入。"</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_success_dialog_title">登入成功</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_success_dialog_title">成功登入</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_activation_code_failed">無法發出啟動碼</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_authorization_code_failed">無法發出啟動權杖</string>
<string name="morphe_spoof_video_streams_summary_off">"未偽裝視訊串流
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_authorization_code_failed">無法頒發驗證權杖</string>
<string name="morphe_spoof_video_streams_summary_off">"視訊串流未經偽裝
播放可能無法運作"</string>
影片可能無法播放"</string>
<string name="morphe_spoof_video_streams_summary_on">"已偽裝視訊串流
如果您是 YouTube Premium 使用者,則可能不需要此設定"</string>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_ads_category">Ads</string>
<string name="revanced_credits_title">Credits</string>
<string name="revanced_disable_screenshot_popup_summary">Disables the popup that appears when taking a screenshot.</string>
<string name="revanced_disable_screenshot_popup_title">Disable screenshot popup</string>
<string name="revanced_hide_chat_button_summary">Hides the Chat button in the navigation bar.</string>

View file

@ -260,6 +260,7 @@ Limitation: Back button on the toolbar may not work."</string>
<string name="revanced_confirm_user_dialog_title">Are you sure you want to proceed?</string>
<string name="revanced_copy">Copy</string>
<string name="revanced_copy_error">Failed to copy text</string>
<string name="revanced_credits_title">Credits</string>
<string name="revanced_custom_filter_strings_summary">List of component path builder strings to filter, separated by new lines.</string>
<string name="revanced_custom_filter_strings_title">Custom filter</string>
<string name="revanced_custom_filter_summary_off">Custom filter is disabled.</string>

View file

@ -991,6 +991,7 @@
<PreferenceCategory android:title="@string/revanced_preference_category_patch_information" android:layout="@layout/revanced_settings_preferences_category"/>
<PreferenceScreen android:title="@string/revanced_preference_screen_patch_information_title" android:key="revanced_preference_screen_patch_information" android:summary="@string/revanced_preference_screen_patch_information_summary" >
<app.morphe.extension.youtube.settings.preference.CreditsPreference android:title="@string/revanced_credits_title" android:key="revanced_credits" />
<PreferenceCategory android:title="@string/revanced_preference_category_app_info" android:layout="@layout/revanced_settings_preferences_category" >
<Preference android:title="@string/revanced_app_name_title" android:key="revanced_app_name" android:selectable="false" />
<Preference android:title="@string/revanced_app_version_title" android:key="revanced_app_version" android:selectable="false" />

View file

@ -30,19 +30,19 @@
<string name="morphe_force_original_audio_summary_off">使用預設音訊</string>
<string name="morphe_force_original_audio_summary_on">正在使用原始音訊語言</string>
<string name="morphe_force_original_audio_title">強制使用原始音訊語言</string>
<string name="morphe_oauth2_connection_failure_auth_error">無法登 VR%s</string>
<string name="morphe_oauth2_connection_failure_auth_error">無法登 VR%s</string>
<string name="morphe_oauth2_connection_failure_auth_not_approved">無法登入 VR網站驗證未獲批准</string>
<string name="morphe_oauth2_connection_failure_generic">OAuth2 暫時不可用</string>
<string name="morphe_oauth2_connection_failure_status">OAuth2 暫時不可用(狀態 %d</string>
<string name="morphe_oauth2_connection_failure_status_400">Android VR 登入已過期,請重新登入 VR</string>
<string name="morphe_oauth2_connection_failure_status_400">Android VR 登入逾期,請再次登入 VR</string>
<string name="morphe_oauth2_connection_failure_timeout">OAuth2 暫時不可用API 已逾時)</string>
<string name="morphe_oauth2_toast_invalid">無效的 VR 登錄權杖,請重新登錄 VR</string>
<string name="morphe_oauth2_toast_reset">從 Android VR 中登出</string>
<string name="morphe_oauth2_toast_invalid">VR 登入憑證無效,請再次登入 VR</string>
<string name="morphe_oauth2_toast_reset">登出 Android VR</string>
<string name="morphe_replace_music_with_youtube_summary_off">分享連結使用 music.youtube.com</string>
<string name="morphe_replace_music_with_youtube_summary_on">分享連結使用 youtube.com</string>
<string name="morphe_replace_music_with_youtube_title">將分享連結更改為 youtube.com</string>
<string name="morphe_sanitize_sharing_links_summary_off">追蹤查詢參數未從分享連結中移除</string>
<string name="morphe_sanitize_sharing_links_summary_on">追蹤查詢參數已從分享連結中移除</string>
<string name="morphe_sanitize_sharing_links_summary_off">未從分享連結中移除追蹤查詢參數</string>
<string name="morphe_sanitize_sharing_links_summary_on">已從分享連結中移除追蹤查詢參數</string>
<string name="morphe_sanitize_sharing_links_title">清理分享連結</string>
<string name="morphe_spoof_video_streams_about_experimental">• 實驗性用戶端,隨時可能停止運作</string>
<string name="morphe_spoof_video_streams_about_js">• 如果解密失敗,播放可能會失敗</string>
@ -62,20 +62,20 @@
AV1 視訊播放可能會卡頓或丟格。"</string>
<string name="morphe_spoof_video_streams_client_type_title">預設用戶端</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">播放器 JavaScript 更新已啟用</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_off">已啟用播放器 JavaScript 更新</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_summary_on">"播放器 JavaScript 更新已停用
• 需要有效的播放器 JavaScript 哈希
• 如果 GVS 中撤銷了播放器 JavaScript 哈希值,則播放將失敗"</string>
• 需要有效的播放器 JavaScript 雜湊
• 如果 GVS 撤銷了播放器 JavaScript 雜湊值,則會無法播放影片"</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_title">停用播放器 JavaScript 更新</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_user_dialog_message">播放器 JavaScript 雜湊約有效期一個月,且過期的雜湊可能由 GVS 撤銷。</string>
<string name="morphe_spoof_video_streams_disable_player_js_update_user_dialog_message">播放器 JavaScript 雜湊值有效期約一個月,且過期的雜湊值可能被 GVS 撤銷。</string>
<string name="morphe_spoof_video_streams_no_clients_suggest_vr_toast">試試啟用:偽裝視訊串流 &gt; Android VR 登入</string>
<string name="morphe_spoof_video_streams_no_clients_toast">未能擷取任何戶端串流</string>
<string name="morphe_spoof_video_streams_no_clients_toast">未能擷取任何戶端串流</string>
<string name="morphe_spoof_video_streams_player_js_hash_summary">請輸入有效的播放器 JavaScript 雜湊值</string>
<string name="morphe_spoof_video_streams_player_js_hash_title">播放器 JavaScript 雜湊值</string>
<string name="morphe_spoof_video_streams_player_js_variant_title">播放器 JavaScript 變種</string>
<string name="morphe_spoof_video_streams_screen_summary">造用戶端影片串流以避免播放問題</string>
<string name="morphe_spoof_video_streams_screen_title">影片串流</string>
<string name="morphe_spoof_video_streams_screen_summary">裝客戶端影片串流以避免播放問題</string>
<string name="morphe_spoof_video_streams_screen_title">影片串流</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary">尚未登入 Android VR。輕觸這裡即可登入</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary_disabled">如要使用這項功能,請將「預設用戶端」改為 Android VR</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_about_summary_signed_in">已登入 Android VR</string>
@ -100,15 +100,15 @@ AV1 視訊播放可能會卡頓或丟格。"</string>
• 你的 Morphe 設定不會匯入/匯出 Android VR 驗證資訊。
• 如果這個應用程式超過 6 個月未使用Google 將會移除這個驗證授權。
• 如果你變更 Google 密碼,或在 Google 設定中取消註冊這個裝置,則需要重新登入。"</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_success_dialog_title">登入成功</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_success_dialog_title">成功登入</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_activation_code_failed">無法發出啟動碼</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_authorization_code_failed">無法發出啟動權杖</string>
<string name="morphe_spoof_video_streams_sign_in_android_vr_toast_get_authorization_code_failed">無法頒發驗證權杖</string>
<string name="morphe_spoof_video_streams_stats_for_nerds_summary_off">已在統計資料中隱藏用戶端類型</string>
<string name="morphe_spoof_video_streams_stats_for_nerds_summary_on">已在統計資料中顯示用戶端類型</string>
<string name="morphe_spoof_video_streams_stats_for_nerds_title">顯示統計資料</string>
<string name="morphe_spoof_video_streams_summary_off">"未偽裝視訊串流
<string name="morphe_spoof_video_streams_summary_off">"視訊串流未經偽裝
播放可能無法運作"</string>
影片可能無法播放"</string>
<string name="morphe_spoof_video_streams_summary_on">"已偽裝視訊串流
如果您是 YouTube Premium 使用者,則可能不需要此設定"</string>