feat(YouTube): Remove Change live ring click action patch

Close https://github.com/anddea/revanced-patches/issues/1386
This commit is contained in:
Aaron Veil 2026-03-25 11:47:44 +03:00
parent 7c42e04238
commit bc406169a0
92 changed files with 1 additions and 4544 deletions

View file

@ -22,8 +22,6 @@ Report issues [here](https://github.com/inotia00/ReVanced_Extended).
## 📝 JSON Format
This section explains the JSON format for the [patches.json](patches.json) file.
Example:
```json

View file

@ -1,127 +0,0 @@
package app.morphe.extension.youtube.patches.general;
import static app.morphe.extension.shared.utils.StringRef.str;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import com.facebook.litho.ComponentHost;
import java.util.Map;
import app.morphe.extension.shared.utils.Logger;
import app.morphe.extension.youtube.patches.general.requests.ChannelIdRequest;
import app.morphe.extension.youtube.settings.Settings;
import app.morphe.extension.youtube.utils.VideoUtils;
@SuppressWarnings("unused")
public final class OpenChannelOfLiveAvatarPatch {
private static final boolean CHANGE_LIVE_RING_CLICK_ACTION =
Settings.CHANGE_LIVE_RING_CLICK_ACTION.get();
/**
* If you change the language in the app settings, a string from another language may be used.
* In this case, restarting the app will solve it.
*/
private static final String liveRingDescription = str("revanced_live_ring_description");
private static volatile String videoId = "";
/**
* This key's value is the LithoView that opened the video (Live ring or Thumbnails).
*/
private static final String ELEMENTS_SENDER_VIEW =
"com.google.android.libraries.youtube.rendering.elements.sender_view";
/**
* If the video is open by clicking live ring, this key does not exists.
*/
private static final String VIDEO_THUMBNAIL_VIEW_KEY =
"VideoPresenterConstants.VIDEO_THUMBNAIL_VIEW_KEY";
/**
* Injection point.
*
* @param playbackStartDescriptorMap map containing information about PlaybackStartDescriptor
* @param newlyLoadedVideoId id of the current video
*/
public static void fetchChannelId(@NonNull Map<Object, Object> playbackStartDescriptorMap, String newlyLoadedVideoId) {
try {
if (!CHANGE_LIVE_RING_CLICK_ACTION) {
return;
}
// Video id is empty
if (newlyLoadedVideoId.isEmpty()) {
return;
}
// Video was opened by clicking the thumbnail
if (playbackStartDescriptorMap.containsKey(VIDEO_THUMBNAIL_VIEW_KEY)) {
return;
}
// If the video was opened in the watch history, there is no VIDEO_THUMBNAIL_VIEW_KEY
// In this case, check the view that opened the video (Live ring is litho)
if (!(playbackStartDescriptorMap.get(ELEMENTS_SENDER_VIEW) instanceof ComponentHost componentHost)) {
return;
}
// Check content description (accessibility labels) of the live ring.
final CharSequence contentDescription = componentHost.getContentDescription();
if (contentDescription == null) {
return;
}
final boolean match = liveRingDescription.equals(contentDescription.toString());
Logger.printDebug(() -> "resource description: '" + liveRingDescription + "', litho description: '" + contentDescription + "', match: " + match);
if (!match) {
// Sometimes it may not match:
// 1. In some languages, accessibility label is not provided.
// 2. Language has changed in the app settings, and the app has not restarted.
// In this case, fallback with the legacy method.
// Child count of other litho Views such as Thumbnail and Watch history: 2
// Child count of live ring: 1
if (componentHost.getChildCount() != 1) {
return;
}
// Play all button in playlist cannot be filtered with the above conditions
// Check the ViewGroup tree
if (!(componentHost.getChildAt(0) instanceof ComponentHost liveRingViewGroup)) {
return;
}
if (!(liveRingViewGroup.getChildAt(0) instanceof ImageView)) {
return;
}
}
// Fetch channel id
videoId = newlyLoadedVideoId;
ChannelIdRequest.fetchRequestIfNeeded(newlyLoadedVideoId);
} catch (Exception ex) {
Logger.printException(() -> "fetchVideoInformation failure", ex);
}
}
public static boolean openChannel() {
try {
if (!CHANGE_LIVE_RING_CLICK_ACTION) {
return false;
}
// If it is not fetch, the video id is empty
if (videoId.isEmpty()) {
return false;
}
ChannelIdRequest request = ChannelIdRequest.getRequestForVideoId(videoId);
if (request != null) {
String channelId = request.getChannelId();
// Open the channel
if (channelId != null) {
videoId = "";
VideoUtils.openChannel(channelId);
return true;
}
}
} catch (Exception ex) {
Logger.printException(() -> "openChannel failure", ex);
}
return false;
}
}

View file

@ -198,7 +198,6 @@ public class Settings extends SharedYouTubeSettings {
public static final StringSetting TRANSCRIPT_COOKIES = new StringSetting("revanced_transcript_cookies", "", true, parent(SET_TRANSCRIPT_COOKIES));
public static final EnumSetting<FormFactor> CHANGE_FORM_FACTOR = new EnumSetting<>("revanced_change_form_factor", FormFactor.DEFAULT, true, "revanced_change_form_factor_user_dialog_message");
public static final BooleanSetting CHANGE_LIVE_RING_CLICK_ACTION = new BooleanSetting("revanced_change_live_ring_click_action", FALSE, true);
public static final BooleanSetting DISABLE_LAYOUT_UPDATES = new BooleanSetting("revanced_disable_layout_updates", FALSE, true, "revanced_disable_layout_updates_user_dialog_message");
public static final BooleanSetting DISABLE_TRANSLUCENT_STATUS_BAR = new BooleanSetting("revanced_disable_translucent_status_bar", FALSE, true);
public static final BooleanSetting FIX_HYPE_BUTTON_ICON = new BooleanSetting("revanced_fix_hype_button_icon", TRUE, true, "revanced_fix_hype_button_icon_user_dialog_message");

File diff suppressed because it is too large Load diff

View file

@ -1,33 +0,0 @@
package app.morphe.patches.youtube.general.livering
import app.morphe.util.fingerprint.legacyFingerprint
import app.morphe.util.getReference
import app.morphe.util.indexOfFirstInstruction
import app.morphe.util.or
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.Method
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
internal val clientSettingEndpointFingerprint = legacyFingerprint(
name = "clientSettingEndpointFingerprint",
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = listOf("L", "Ljava/util/Map;"),
strings = listOf(
"force_fullscreen",
"PLAYBACK_START_DESCRIPTOR_MUTATOR",
"VideoPresenterConstants.VIDEO_THUMBNAIL_BITMAP_KEY"
),
customFingerprint = { method, _ ->
indexOfPlaybackStartDescriptorInstruction(method) >= 0
}
)
internal fun indexOfPlaybackStartDescriptorInstruction(method: Method) =
method.indexOfFirstInstruction {
val reference = getReference<MethodReference>()
opcode == Opcode.INVOKE_VIRTUAL &&
reference?.returnType == "Lcom/google/android/libraries/youtube/player/model/PlaybackStartDescriptor;" &&
reference.parameterTypes.isEmpty()
}

View file

@ -1,210 +0,0 @@
package app.morphe.patches.youtube.general.livering
import app.morphe.patcher.extensions.InstructionExtensions.addInstructions
import app.morphe.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.morphe.patcher.extensions.InstructionExtensions.getInstruction
import app.morphe.patcher.patch.bytecodePatch
import app.morphe.patcher.patch.resourcePatch
import app.morphe.patcher.util.proxy.mutableTypes.MutableMethod
import app.morphe.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE
import app.morphe.patches.youtube.utils.extension.Constants.GENERAL_PATH
import app.morphe.patches.youtube.utils.patch.PatchList.CHANGE_LIVE_RING_CLICK_ACTION
import app.morphe.patches.youtube.utils.playservice.is_19_25_or_greater
import app.morphe.patches.youtube.utils.playservice.versionCheckPatch
import app.morphe.patches.youtube.utils.settings.ResourceUtils.addPreference
import app.morphe.patches.youtube.utils.settings.settingsPatch
import app.morphe.patches.youtube.video.playbackstart.PLAYBACK_START_DESCRIPTOR_CLASS_DESCRIPTOR
import app.morphe.patches.youtube.video.playbackstart.playbackStartDescriptorPatch
import app.morphe.patches.youtube.video.playbackstart.playbackStartVideoIdReference
import app.morphe.patches.youtube.video.playbackstart.shortsPlaybackStartIntentFingerprint
import app.morphe.patches.youtube.video.playbackstart.shortsPlaybackStartIntentLegacyFingerprint
import app.morphe.util.copyXmlNode
import app.morphe.util.fingerprint.methodOrThrow
import app.morphe.util.getReference
import app.morphe.util.indexOfFirstInstructionOrThrow
import app.morphe.util.indexOfFirstInstructionReversedOrThrow
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.iface.reference.TypeReference
private val openChannelOfLiveAvatarResourcePatch = resourcePatch(
description = "openChannelOfLiveAvatarResourcePatch"
) {
execute {
arrayOf(
"", "af", "am", "ar", "as", "az", "b+sr+Latn", "be", "bg", "bn", "bs", "ca",
"cs", "da", "de", "el", "en-rGB", "en-rIN", "es", "es-rUS", "et", "eu", "fa",
"fi", "fr", "fr-rCA", "gl", "gu", "hi", "hr", "hu", "hy", "in", "is", "it",
"iw", "ja", "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml",
"mn", "mr", "ms", "my", "nb", "ne", "nl", "or", "pa", "pl", "pt", "pt-rBR",
"pt-rPT", "ro", "ru", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te",
"th", "tl", "tr", "uk", "ur", "uz", "vi", "zh-rCN", "zh-rHK", "zh-rTW", "zu"
).forEach { locale ->
val directory = if (locale.isEmpty())
"values"
else
"values-$locale"
copyXmlNode("youtube/livering/host", "$directory/strings.xml", "resources")
}
}
}
private const val EXTENSION_CLASS_DESCRIPTOR =
"$GENERAL_PATH/OpenChannelOfLiveAvatarPatch;"
@Suppress("unused")
val openChannelOfLiveAvatarPatch = bytecodePatch(
CHANGE_LIVE_RING_CLICK_ACTION.title,
CHANGE_LIVE_RING_CLICK_ACTION.summary,
) {
compatibleWith(COMPATIBLE_PACKAGE)
dependsOn(
settingsPatch,
openChannelOfLiveAvatarResourcePatch,
playbackStartDescriptorPatch,
versionCheckPatch,
)
execute {
clientSettingEndpointFingerprint.methodOrThrow().apply {
val eqzIndex = indexOfFirstInstructionReversedOrThrow(Opcode.IF_EQZ)
var freeIndex = indexOfFirstInstructionReversedOrThrow(eqzIndex, Opcode.NEW_INSTANCE)
var freeRegister = getInstruction<OneRegisterInstruction>(freeIndex).registerA
addInstructionsWithLabels(
eqzIndex, """
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->openChannel()Z
move-result v$freeRegister
if-eqz v$freeRegister, :ignore
return-void
:ignore
nop
"""
)
val playbackStartIndex = indexOfPlaybackStartDescriptorInstruction(this) + 1
val playbackStartRegister =
getInstruction<OneRegisterInstruction>(playbackStartIndex).registerA
val mapIndex = indexOfFirstInstructionOrThrow(playbackStartIndex) {
val reference = getReference<MethodReference>()
opcode == Opcode.INVOKE_STATIC &&
reference?.returnType == "Ljava/lang/Object;" &&
reference.parameterTypes.firstOrNull() == "Ljava/util/Map;"
}
val mapRegister = getInstruction<FiveRegisterInstruction>(mapIndex).registerC
freeIndex = indexOfFirstInstructionOrThrow(playbackStartIndex, Opcode.CONST_STRING)
freeRegister = getInstruction<OneRegisterInstruction>(freeIndex).registerA
addInstructions(
playbackStartIndex + 1, """
invoke-virtual { v$playbackStartRegister }, $playbackStartVideoIdReference
move-result-object v$freeRegister
invoke-static { v$mapRegister, v$freeRegister }, $EXTENSION_CLASS_DESCRIPTOR->fetchChannelId(Ljava/util/Map;Ljava/lang/String;)V
"""
)
}
fun MutableMethod.openChannel() =
implementation!!.instructions
.withIndex()
.filter { (_, instruction) ->
val reference = (instruction as? ReferenceInstruction)?.reference
instruction.opcode == Opcode.NEW_INSTANCE &&
reference is TypeReference &&
reference.type == "Landroid/os/Bundle;"
}
.map { (index, _) -> index }
.reversed()
.forEach { index ->
val register = getInstruction<OneRegisterInstruction>(index).registerA
addInstructionsWithLabels(
index, """
invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->openChannel()Z
move-result v$register
if-eqz v$register, :ignore
return-void
:ignore
nop
"""
)
}
fun fetchChannelIdInstructions(
playbackStartRegister: Int,
mapRegister: Int,
videoIdRegister: Int,
) =
"""
invoke-virtual { v$playbackStartRegister }, $playbackStartVideoIdReference
move-result-object v$videoIdRegister
invoke-static { v$mapRegister, v$videoIdRegister }, $EXTENSION_CLASS_DESCRIPTOR->fetchChannelId(Ljava/util/Map;Ljava/lang/String;)V
"""
if (is_19_25_or_greater) {
shortsPlaybackStartIntentFingerprint.methodOrThrow().apply {
openChannel()
addInstructionsWithLabels(
0, """
move-object/from16 v0, p1
move-object/from16 v1, p2
${fetchChannelIdInstructions(0, 1, 2)}
"""
)
}
} else {
shortsPlaybackStartIntentLegacyFingerprint.methodOrThrow().apply {
openChannel()
val playbackStartIndex = indexOfFirstInstructionOrThrow {
getReference<MethodReference>()?.returnType == PLAYBACK_START_DESCRIPTOR_CLASS_DESCRIPTOR
}
val mapIndex =
indexOfFirstInstructionReversedOrThrow(playbackStartIndex, Opcode.IPUT)
val mapRegister = getInstruction<TwoRegisterInstruction>(mapIndex).registerA
val playbackStartRegister =
getInstruction<OneRegisterInstruction>(playbackStartIndex + 1).registerA
val videoIdRegister =
getInstruction<FiveRegisterInstruction>(playbackStartIndex).registerC
addInstructionsWithLabels(
playbackStartIndex + 2, """
move-object/from16 v$mapRegister, p2
${
fetchChannelIdInstructions(
playbackStartRegister,
mapRegister,
videoIdRegister
)
}
"""
)
}
}
// region add settings
addPreference(
arrayOf(
"PREFERENCE_SCREEN: GENERAL",
"PREFERENCE_CATEGORY: GENERAL_EXPERIMENTAL_FLAGS",
"SETTINGS: CHANGE_LIVE_RING_CLICK_ACTION"
),
CHANGE_LIVE_RING_CLICK_ACTION
)
// endregion
}
}

View file

@ -25,10 +25,6 @@ internal enum class PatchList(
"Change form factor",
"Adds an option to change the UI appearance to a phone, tablet, or automotive device."
),
CHANGE_LIVE_RING_CLICK_ACTION(
"Change live ring click action",
"Adds an option to open the channel instead of the live stream when clicking on the live ring."
),
CHANGE_PLAYER_FLYOUT_MENU_TOGGLES(
"Change player flyout menu toggles",
"Adds an option to use text toggles instead of switch toggles within the additional settings menu."
@ -277,4 +273,4 @@ internal enum class PatchList(
"Spoof watch history",
"Adds an option to change the domain of the watch history or check its status."
)
}
}

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tap to watch live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">በቀጥታ ስርጭት ለመመልከት መታ ያድርጉ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">انقر لمشاهدة البث المباشر.</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">লাইভ চাবলৈ টিপক</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Canlı baxmaq üçün toxunun</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Dodirnite da biste gledali uživo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Націсніце, каб глядзець жывую трансляцыю</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Докоснете, за да гледате на живо</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">লাইভ দেখতে ট্যাপ করুন</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Dodirnite da gledate uživo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">"Toca per veure l'emissió en directe"</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Klepnutím spustíte živý přenos</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tryk for at se live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Zum live Ansehen tippen</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Πατήστε για να παρακολουθήσετε ζωντανά</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tap to watch live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tap to watch live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Presiona para ver la transmisión en vivo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Toca para ver en directo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Puudutage, et otse vaadata</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Sakatu hau bideoa zuzenean ikusteko</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">برای تماشای زنده تک‌ضرب بزنید</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Napauta katsoaksesi livenä</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Touchez pour regarder en direct</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Appuyer pour regarder en direct</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Toca para velo en directo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">લાઇવ જોવા માટે ટૅપ કરો</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">लाइव वीडियो देखने के लिए टैप करें</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Dodirnite za gledanje uživo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Koppints és nézd élőben</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">"Հպեք՝ ուղիղ եթերը դիտելու համար"</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Ketuk untuk menonton live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Ýttu til að horfa í beinni</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tocca per guardare dal vivo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">אפשר ללחוץ כדי לצפות בשידור החי</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">タップしてライブを視聴</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">შეეხეთ პირდაპირ ეთერში საყურებლად</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Тікелей эфирді көру үшін түртіңіз</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">ចុចដើម្បីមើលការផ្សាយផ្ទាល់</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">ಲೈವ್ ನೋಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">탭하여 실시간으로 시청하기</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Түз ободо көрүү үчүн таптап коюңуз</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">ແຕະເພື່ອເບິ່ງການຖ່າຍທອດສົດ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Palieskite ir žiūrėkite tiesiogiai</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Pieskarieties, lai skatītos tiešraidi</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Допрете за да гледате во живо</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">തത്സമയം കാണാൻ ടാപ്പ് ചെയ്യുക</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Шууд үзэхийн тулд товшино уу</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">लाइव्ह पाहण्यासाठी टॅप करा</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Ketik untuk menonton secara langsung</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">တိုက်ရိုက်ကြည့်ရန် တို့ပါ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Trykk for å se direktesendingen</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">लाइभ हेर्न ट्याप गर्नुहोस्</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tik om live te kijken</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">ଲାଇଭ ଦେଖିବାକୁ ଟାପ କରନ୍ତୁ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">ਲਾਈਵ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Dotknij, aby obejrzeć na żywo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Toque para assistir a transmissão ao vivo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Toque para ver em direto</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Toque para assistir a transmissão ao vivo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Atinge pentru a viziona live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Нажмите, чтобы посмотреть трансляцию</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">සජීවීව නැරඹීමට තට්ටු කරන්න</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Klepnutím spustíte prehrávanie priameho prenosu</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Dotaknite se za ogled v živo</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Trokit për të parë drejtpërdrejt</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Додирните да бисте гледали уживо</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tryck för att titta live</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Gusa ili utazame moja kwa moja</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">நேரலையில் பார்க்க, தட்டவும்</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">లైవ్‌ను చూడటానికి ట్యాప్ చేయండి</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">แตะเพื่อดูถ่ายทอดสด</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">I-tap para live na mapanood</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Canlı izlemek için dokunun</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Натисніть, щоб дивитися прямий ефір</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">لائیو دیکھنے کیلئے تھپتھپائیں</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Jonli tomosha uchun bosing</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Nhấn để xem sự kiện trực tiếp</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">点按即可观看直播</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">輕按即可收看直播</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">輕觸即可觀看直播影片</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Thepha ukuze ubuke bukhoma</string>
</resources>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="revanced_live_ring_description">Tap to watch live</string>
</resources>

View file

@ -199,11 +199,6 @@ Automotive layout
• Shorts open in regular player.
• Feed is organized by topics and channels.
• Video description cannot be opened when 'Spoof streaming data' is turned off."</string>
<string name="revanced_change_live_ring_click_action_summary_off">Live stream opens when the live ring is clicked.</string>
<string name="revanced_change_live_ring_click_action_summary_on">"Channel opens when the live ring is clicked.
Limitation: When the Shorts live stream is opened in regular player due to the 'Open Shorts in regular player' setting, channel does not open."</string>
<string name="revanced_change_live_ring_click_action_title">Change live ring click action</string>
<string name="revanced_change_player_flyout_menu_toggle_summary_off">Switch toggles are used.</string>
<string name="revanced_change_player_flyout_menu_toggle_summary_on">Text toggles are used.</string>
<string name="revanced_change_player_flyout_menu_toggle_title">Change toggle type</string>

View file

@ -164,9 +164,6 @@
<!-- PREFERENCE_CATEGORY: GENERAL_EXPERIMENTAL_FLAGS
<PreferenceCategory android:title="@string/revanced_preference_category_experimental_flag" android:layout="@layout/revanced_settings_preferences_category"/>PREFERENCE_CATEGORY: GENERAL_EXPERIMENTAL_FLAGS -->
<!-- SETTINGS: CHANGE_LIVE_RING_CLICK_ACTION
<SwitchPreference android:title="@string/revanced_change_live_ring_click_action_title" android:key="revanced_change_live_ring_click_action" android:summaryOn="@string/revanced_change_live_ring_click_action_summary_on" android:summaryOff="@string/revanced_change_live_ring_click_action_summary_off" />SETTINGS: CHANGE_LIVE_RING_CLICK_ACTION -->
<!-- SETTINGS: DISABLE_LAYOUT_UPDATES
<SwitchPreference android:title="@string/revanced_disable_layout_updates_title" android:key="revanced_disable_layout_updates" android:summaryOn="@string/revanced_disable_layout_updates_summary_on" android:summaryOff="@string/revanced_disable_layout_updates_summary_off" />SETTINGS: DISABLE_LAYOUT_UPDATES -->
@ -1022,7 +1019,6 @@
<PreferenceCategory android:title="@string/revanced_preference_screen_general_title" android:layout="@layout/revanced_settings_preferences_category">
<Preference android:title="Change form factor" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
<Preference android:title="Change live ring click action" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
<Preference android:title="Change start page" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
<Preference android:title="Disable forced auto audio tracks" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>
<Preference android:title="Disable forced auto captions" android:summary="@string/revanced_patches_excluded" android:selectable="false"/>