feat(YouTube - Shorts components): Add Open Shorts with Regular player fullscreen

Close https://github.com/anddea/revanced-patches/issues/1462
This commit is contained in:
Aaron Veil 2026-03-25 12:06:19 +03:00
parent bc406169a0
commit a5985e9bf5
9 changed files with 169 additions and 7 deletions

View file

@ -0,0 +1,29 @@
package app.morphe.extension.youtube.patches.player;
import androidx.annotation.Nullable;
@SuppressWarnings("unused")
public class OpenVideosFullscreenHookPatch {
@Nullable
private static volatile Boolean openNextVideoFullscreen;
public static void setOpenNextVideoFullscreen(@Nullable Boolean forceFullScreen) {
openNextVideoFullscreen = forceFullScreen;
}
/**
* Injection point.
*
* Returns negated value.
*/
public static boolean doNotOpenVideoFullscreenPortrait(boolean original) {
Boolean openFullscreen = openNextVideoFullscreen;
if (openFullscreen != null) {
openNextVideoFullscreen = null;
return !openFullscreen;
}
return original;
}
}

View file

@ -15,6 +15,7 @@ import java.lang.ref.WeakReference;
import app.morphe.extension.shared.utils.Logger;
import app.morphe.extension.shared.utils.ResourceUtils;
import app.morphe.extension.youtube.patches.player.OpenVideosFullscreenHookPatch;
import app.morphe.extension.youtube.settings.Settings;
import app.morphe.extension.youtube.shared.NavigationBar.NavigationButton;
import app.morphe.extension.youtube.shared.ShortsPlayerState;
@ -23,6 +24,12 @@ import kotlin.Unit;
@SuppressWarnings("unused")
public class ShortsPatch {
public enum ShortsPlayerType {
SHORTS_PLAYER,
REGULAR_PLAYER,
REGULAR_PLAYER_FULLSCREEN
}
private static final boolean ENABLE_SHORTS_TIME_STAMP =
Settings.ENABLE_SHORTS_TIME_STAMP.get();
private static final boolean ENABLE_SHORTS_CLEAR_MODE =
@ -190,7 +197,8 @@ public class ShortsPatch {
public static boolean openShortInRegularPlayer(String videoId) {
try {
if (!Settings.OPEN_SHORTS_IN_REGULAR_PLAYER.get()) {
ShortsPlayerType shortsPlayerType = Settings.SHORTS_PLAYER_TYPE.get();
if (shortsPlayerType == ShortsPlayerType.SHORTS_PLAYER) {
return false; // Default unpatched behavior.
}
@ -214,9 +222,13 @@ public class ShortsPatch {
return false; // Always use Shorts player for the Shorts nav button.
}
OpenVideosFullscreenHookPatch.setOpenNextVideoFullscreen(
shortsPlayerType == ShortsPlayerType.REGULAR_PLAYER_FULLSCREEN
);
VideoUtils.openVideo(videoId, true);
return true;
} catch (Exception ex) {
OpenVideosFullscreenHookPatch.setOpenNextVideoFullscreen(null);
Logger.printException(() -> "openShortInRegularPlayer failure", ex);
return false;
}

View file

@ -45,6 +45,7 @@ import app.morphe.extension.youtube.patches.general.YouTubeMusicActionsPatch;
import app.morphe.extension.youtube.patches.player.ExitFullscreenPatch.FullscreenMode;
import app.morphe.extension.youtube.patches.player.MiniplayerPatch;
import app.morphe.extension.youtube.patches.shorts.AnimationFeedbackPatch.AnimationType;
import app.morphe.extension.youtube.patches.shorts.ShortsPatch.ShortsPlayerType;
import app.morphe.extension.youtube.patches.shorts.ShortsRepeatStatePatch.ShortsLoopBehavior;
import app.morphe.extension.youtube.patches.spoof.SpoofVideoStreamsPatch;
import app.morphe.extension.youtube.patches.swipe.SwipeControlsPatch.SwipeOverlayBrightnessColorAvailability;
@ -534,7 +535,7 @@ public class Settings extends SharedYouTubeSettings {
public static final BooleanSetting HIDE_SHORTS_SHELF_HISTORY = new BooleanSetting("revanced_hide_shorts_shelf_history", FALSE, parent(HIDE_SHORTS_SHELF));
public static final EnumSetting<ShortsLoopBehavior> CHANGE_SHORTS_BACKGROUND_REPEAT_STATE = new EnumSetting<>("revanced_change_shorts_background_repeat_state", ShortsLoopBehavior.UNKNOWN);
public static final EnumSetting<ShortsLoopBehavior> CHANGE_SHORTS_REPEAT_STATE = new EnumSetting<>("revanced_change_shorts_repeat_state", ShortsLoopBehavior.UNKNOWN);
public static final BooleanSetting OPEN_SHORTS_IN_REGULAR_PLAYER = new BooleanSetting("revanced_open_shorts_in_regular_player", FALSE);
public static final EnumSetting<ShortsPlayerType> SHORTS_PLAYER_TYPE = new EnumSetting<>("revanced_shorts_player_type", ShortsPlayerType.SHORTS_PLAYER);
// PreferenceScreen: Shorts - Shorts player components
public static final BooleanSetting HIDE_SHORTS_AUTO_DUBBED_LABEL = new BooleanSetting("revanced_hide_shorts_auto_dubbed_label", FALSE);
@ -877,6 +878,17 @@ public class Settings extends SharedYouTubeSettings {
}
}
// Migrate old open Shorts in regular player to new Shorts player type.
final String oldOpenShortsInRegularPlayerKey = "revanced_open_shorts_in_regular_player";
if (ytPrefs.preferences.contains(oldOpenShortsInRegularPlayerKey)) {
boolean oldOpenShortsInRegularPlayer = ytPrefs.getBoolean(oldOpenShortsInRegularPlayerKey, FALSE);
ytPrefs.removeKey(oldOpenShortsInRegularPlayerKey);
if (oldOpenShortsInRegularPlayer && SHORTS_PLAYER_TYPE.isSetToDefault()) {
SHORTS_PLAYER_TYPE.save(ShortsPlayerType.REGULAR_PLAYER);
}
}
// Migrate old saved data. Must be done here before the settings can be used by any other code.
applyOldSbOpacityToColor(SB_CATEGORY_SPONSOR_COLOR, DEPRECATED_SB_CATEGORY_SPONSOR_OPACITY);
applyOldSbOpacityToColor(SB_CATEGORY_SELF_PROMO_COLOR, DEPRECATED_SB_CATEGORY_SELF_PROMO_OPACITY);

View file

@ -387,7 +387,7 @@ private val rvxPreferenceKey = mapOf(
"revanced_language" to "M 480 840 Q 405.23 840 339.54 811.58 Q 273.85 783.15 224.85 734.54 Q 175.85 685.92 147.92 620.12 Q 120 554.31 120 478.77 Q 120 404 147.92 338.42 Q 175.85 272.85 224.85 224.23 Q 273.85 175.62 339.54 147.81 Q 405.23 120 480 120 Q 554.77 120 620.46 147.81 Q 686.15 175.62 735.15 224.23 Q 784.15 272.85 812.08 338.42 Q 840 404 840 478.77 Q 840 554.31 812.08 620.12 Q 784.15 685.92 735.15 734.54 Q 686.15 783.15 620.46 811.58 Q 554.77 840 480 840 Z M 480 811.23 Q 519.62 766.77 544.27 719.12 Q 568.92 671.46 584.69 609 L 375.54 609 Q 391.85 673.62 416.5 721.23 Q 441.15 768.85 480 811.23 Z M 438.08 806.92 Q 406.92 772 381.62 719.15 Q 356.31 666.31 343.54 609 L 175.08 609 Q 213.85 693.08 280 742.42 Q 346.15 791.77 438.08 806.92 Z M 522.92 806.69 Q 608 794.46 677.42 742.31 Q 746.85 690.15 784.92 609 L 616.69 609 Q 599.85 667.62 575.04 719.69 Q 550.23 771.77 522.92 806.69 Z M 165.85 578.23 L 337.92 578.23 Q 333.38 550.46 331.73 525.88 Q 330.08 501.31 330.08 478.77 Q 330.08 455.31 331.85 431.58 Q 333.62 407.85 338.15 381.54 L 165.85 381.54 Q 158.08 404 154.42 428.38 Q 150.77 452.77 150.77 478.77 Q 150.77 505.54 154.42 530.27 Q 158.08 555 165.85 578.23 Z M 369.15 578.23 L 591.08 578.23 Q 595.85 548.77 597.62 525.81 Q 599.38 502.85 599.38 478.77 Q 599.38 455.69 597.62 433.35 Q 595.85 411 591.08 381.54 L 369.15 381.54 Q 364.38 411 362.62 433.35 Q 360.85 455.69 360.85 478.77 Q 360.85 502.85 362.62 525.81 Q 364.38 548.77 369.15 578.23 Z M 621.85 578.23 L 794.15 578.23 Q 801.92 555 805.58 530.27 Q 809.23 505.54 809.23 478.77 Q 809.23 452.77 805.58 428.38 Q 801.92 404 794.15 381.54 L 622.85 381.54 Q 626.62 412.69 628.38 435.81 Q 630.15 458.92 630.15 478.77 Q 630.15 501.54 628.27 525.27 Q 626.38 549 621.85 578.23 Z M 616.46 350.77 L 784.92 350.77 Q 747.31 266.38 679.81 215.38 Q 612.31 164.38 521.92 152.31 Q 553.08 190.85 577.5 241.92 Q 601.92 293 616.46 350.77 Z M 375.54 350.77 L 585.69 350.77 Q 570.08 290.85 543.69 240.19 Q 517.31 189.54 480 149.23 Q 444.15 184.69 419.46 232.54 Q 394.77 280.38 375.54 350.77 Z M 175.08 350.77 L 343.77 350.77 Q 357.85 293.69 381.77 243.12 Q 405.69 192.54 437.08 152.54 Q 346.69 165.38 279.92 215.77 Q 213.15 266.15 175.08 350.77 Z",
"revanced_miniplayer_type" to "offline_key",
"revanced_open_links_externally" to "M 675.38 697.62 L 675.38 806 Q 675.38 812.6 670.94 816.99 Q 666.5 821.38 659.82 821.38 Q 653.15 821.38 648.88 816.99 Q 644.62 812.6 644.62 806 L 644.62 667.69 Q 644.62 658.27 651.44 651.44 Q 658.27 644.62 667.69 644.62 L 806 644.62 Q 812.6 644.62 816.99 649.06 Q 821.38 653.5 821.38 660.18 Q 821.38 666.85 816.99 671.12 Q 812.6 675.38 806 675.38 L 696.62 675.38 L 829 807.77 Q 833.38 812.15 833.38 818.54 Q 833.38 824.93 829.39 829.16 Q 824.62 834.15 817.92 833.77 Q 811.22 833.38 806.77 829 L 675.38 697.62 Z M 480 840 Q 405.46 840 339.77 811.58 Q 274.08 783.15 225.46 734.54 Q 176.85 685.92 148.42 620.48 Q 120 555.04 120 481.23 Q 120 405.43 148.42 340.07 Q 176.85 274.72 225.46 225.78 Q 274.08 176.85 339.77 148.42 Q 405.46 120 480 120 Q 554.54 120 620.23 148.42 Q 685.92 176.85 734.54 225.78 Q 783.15 274.72 811.58 340.07 Q 840 405.43 840 481.23 Q 840 493.69 839 506.65 Q 838 519.62 836 532.08 Q 835.54 539.15 829.77 544.19 Q 824 549.23 817.93 549.23 Q 811.85 549.23 807.81 545.12 Q 803.77 541 805 534.38 Q 807 521.15 808.12 507.42 Q 809.23 493.69 809.23 481.23 Q 809.23 456.17 805.52 431.12 Q 801.8 406.06 794.37 381.77 L 621.85 381.77 Q 626.15 406.31 628.15 431.28 Q 630.15 456.26 630.15 481.23 Q 630.15 493.69 629.15 506.65 Q 628.15 519.62 627.92 532.85 Q 626.92 538.92 622.28 544.08 Q 617.63 549.23 611.43 549.23 Q 604.46 549.23 600.31 545.23 Q 596.15 541.23 597.15 534.62 Q 598.38 521.38 598.88 507.54 Q 599.38 493.69 599.38 481.23 Q 599.38 456.17 597.5 431.12 Q 595.62 406.06 591.08 381.77 L 369.58 381.77 Q 365.38 406.31 363.12 431.12 Q 360.85 455.92 360.85 480.73 Q 360.85 505.54 363.12 529.85 Q 365.38 554.15 369.15 578.46 L 543.08 578.46 Q 549.67 578.46 554.07 582.91 Q 558.46 587.35 558.46 594.02 Q 558.46 600.69 554.07 604.96 Q 549.67 609.23 543.08 609.23 L 375.54 609.23 Q 391.08 665.31 414.54 717.85 Q 438 770.38 480 810.77 Q 494.56 810.77 507.97 809.27 Q 521.38 807.77 534.85 805.77 Q 540.46 804.54 544.85 808.69 Q 549.23 812.85 549.23 818.46 Q 549.23 824.91 545.08 829.73 Q 540.92 834.54 534.08 835.77 Q 520.62 837.77 507.42 838.88 Q 494.23 840 480 840 Z M 165.63 578.46 L 338.15 578.46 Q 334.12 554.15 332.1 529.85 Q 330.08 505.54 330.08 481.23 Q 330.08 456.17 331.85 431.12 Q 333.62 406.06 337.92 381.77 L 165.56 381.77 Q 158.16 406.11 154.47 431.22 Q 150.77 456.32 150.77 481.43 Q 150.77 505.77 154.48 530.13 Q 158.2 554.49 165.63 578.46 Z M 437.08 808.23 Q 403.38 764.15 380.12 713.77 Q 356.85 663.38 343.77 609.23 L 175.08 609.23 Q 211.15 689.31 280.69 742.46 Q 350.23 795.62 437.08 808.23 Z M 175.08 351 L 343.13 351 Q 356.08 296.08 378.58 245.19 Q 401.08 194.31 438.08 151.54 Q 350.92 165.54 281.65 218.35 Q 212.38 271.15 175.08 351 Z M 375.54 351 L 584.69 351 Q 570.92 294.69 544.85 243.15 Q 518.77 191.62 480 148.77 Q 440.46 191.08 414.77 242.88 Q 389.08 294.69 375.54 351 Z M 617.03 351 L 784.92 351 Q 747.62 271.15 678.46 217.85 Q 609.31 164.54 522.92 151.77 Q 556.85 195.85 578.96 246.73 Q 601.08 297.62 617.03 351 Z",
"revanced_open_shorts_in_regular_player" to "revanced_preference_screen_player",
"revanced_shorts_player_type" to "revanced_preference_screen_player",
"revanced_overlay_button_always_repeat" to "M 475.231 586.462 L 475.231 402.846 L 429.231 402.846 L 429.231 372.308 L 505.769 372.308 L 505.769 586.462 L 475.231 586.462 Z M 292.308 840 L 160 707.692 L 292.308 575.385 L 314.308 597.846 L 219.846 692.308 L 701.538 692.308 L 701.538 532.308 L 732.308 532.308 L 732.308 723.077 L 219.846 723.077 L 314.308 817.539 L 292.308 840 Z M 227.692 427.692 L 227.692 236.923 L 740.154 236.923 L 645.692 142.461 L 667.692 120 L 800 252.308 L 667.692 384.615 L 645.692 362.154 L 740.154 267.692 L 258.462 267.692 L 258.462 427.692 L 227.692 427.692 Z",
"revanced_overlay_button_copy_video_url" to "M 356.923 718.462 C 341.551 718.462 328.477 713.074 317.702 702.298 C 306.926 691.523 301.538 678.449 301.538 663.077 L 301.538 195.384 C 301.538 180.013 306.926 166.939 317.702 156.163 C 328.477 145.388 341.551 140 356.923 140 L 704.616 140 C 719.987 140 733.061 145.388 743.837 156.163 C 754.612 166.939 760 180.013 760 195.384 L 760 663.077 C 760 678.449 754.612 691.523 743.837 702.298 C 733.061 713.074 719.987 718.462 704.616 718.462 L 356.923 718.462 Z M 356.923 687.693 L 704.616 687.693 C 710.769 687.693 716.41 685.129 721.539 680 C 726.667 674.872 729.231 669.231 729.231 663.077 L 729.231 195.384 C 729.231 189.231 726.667 183.59 721.539 178.461 C 716.41 173.333 710.769 170.769 704.616 170.769 L 356.923 170.769 C 350.769 170.769 345.128 173.333 340 178.461 C 334.872 183.59 332.308 189.231 332.308 195.384 L 332.308 663.077 C 332.308 669.231 334.872 674.872 340 680 C 345.128 685.129 350.769 687.693 356.923 687.693 Z M 255.384 820 C 240.013 820 226.939 814.612 216.163 803.837 C 205.388 793.062 200 779.988 200 764.616 L 200 266.154 L 230.769 266.154 L 230.769 764.616 C 230.769 770.77 233.333 776.411 238.461 781.539 C 243.59 786.667 249.231 789.231 255.384 789.231 L 633.847 789.231 L 633.847 820 L 255.384 820 Z M 332.308 687.693 L 332.308 170.769 L 332.308 687.693 Z",
"revanced_overlay_button_copy_video_url_timestamp" to "M 680.616 860 C 637.301 860 600.677 845.033 570.744 815.1 C 540.811 785.167 525.844 748.543 525.844 705.228 C 525.844 661.911 540.823 625.287 570.78 595.356 C 600.737 565.423 637.221 550.456 680.232 550.456 C 723.805 550.456 760.557 565.435 790.488 595.392 C 820.421 625.349 835.388 661.833 835.388 704.844 C 835.388 748.417 820.421 785.169 790.488 815.1 C 760.555 845.033 723.931 860 680.616 860 Z M 742.904 795.848 L 764.692 774 L 692 701.308 L 692 592.384 L 661.46 592.384 L 661.46 713 L 742.9 795.848 L 742.904 795.848 Z M 356.924 718.46 C 341.551 718.46 328.477 713.072 317.704 702.296 C 306.928 691.52 301.54 678.447 301.54 663.076 L 301.54 195.384 C 301.54 180.013 306.928 166.94 317.704 156.164 C 328.477 145.388 341.551 140 356.924 140 L 704.616 140 C 719.987 140 733.06 145.388 743.836 156.164 C 754.612 166.94 760 180.013 760 195.384 L 760 462.616 C 754.101 460.717 748.877 458.891 744.328 457.136 C 739.779 455.379 734.745 453.591 729.228 451.772 L 729.228 195.384 C 729.231 189.229 726.668 183.588 721.54 178.46 C 716.412 173.332 710.771 170.768 704.616 170.768 L 356.924 170.768 C 350.769 170.768 345.128 173.332 340 178.46 C 334.872 183.588 332.308 189.229 332.308 195.384 L 332.308 663.076 C 332.308 669.231 334.872 674.872 340 680 C 345.128 685.128 350.769 687.692 356.924 687.692 L 416.924 687.692 L 416.924 718.46 L 356.924 718.46 Z M 255.384 820 C 240.013 820 226.94 814.612 216.164 803.836 C 205.388 793.06 200 779.987 200 764.616 L 200 266.152 L 230.768 266.152 L 230.768 764.616 C 230.768 770.771 233.332 776.412 238.46 781.54 C 243.588 786.668 249.229 789.232 255.384 789.232 L 440 789.232 C 441.795 794.616 443.872 799.705 446.232 804.5 C 448.592 809.295 451.567 814.461 455.2 820 L 255.384 820 Z M 332.308 687.692 L 332.308 170.768 L 332.308 687.692 Z",

View file

@ -0,0 +1,96 @@
package app.morphe.patches.youtube.player.fullscreen
import app.morphe.patcher.Fingerprint
import app.morphe.patcher.InstructionLocation
import app.morphe.patcher.OpcodesFilter.Companion.opcodesToFilters
import app.morphe.patcher.extensions.InstructionExtensions.addInstructions
import app.morphe.patcher.extensions.InstructionExtensions.getInstruction
import app.morphe.patcher.literal
import app.morphe.patcher.opcode
import app.morphe.patcher.patch.bytecodePatch
import app.morphe.patches.youtube.utils.extension.Constants.PLAYER_PATH
import app.morphe.patches.youtube.utils.playservice.is_19_46_or_greater
import app.morphe.patches.youtube.utils.playservice.versionCheckPatch
import app.morphe.util.insertLiteralOverride
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
private const val EXTENSION_CLASS_DESCRIPTOR =
"$PLAYER_PATH/OpenVideosFullscreenHookPatch;"
/**
* 19.46+
*/
internal object openVideosFullscreenPortraitFingerprint : Fingerprint(
returnType = "V",
parameters = listOf("L", "Lj\$/util/Optional;"),
filters = listOf(
opcode(Opcode.MOVE_RESULT), // Conditional check to modify.
literal(45666112L, location = InstructionLocation.MatchAfterWithin(5)),
opcode(Opcode.MOVE_RESULT, location = InstructionLocation.MatchAfterWithin(10)),
)
)
/**
* Pre 19.46.
*/
internal object openVideosFullscreenPortraitLegacyFingerprint : Fingerprint(
accessFlags = listOf(AccessFlags.PUBLIC, AccessFlags.FINAL),
returnType = "V",
parameters = listOf("L", "Lj\$/util/Optional;"),
filters = opcodesToFilters(
Opcode.GOTO,
Opcode.SGET_OBJECT,
Opcode.GOTO,
Opcode.SGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT,
Opcode.IF_EQ,
Opcode.IF_EQ,
Opcode.IGET_OBJECT,
Opcode.INVOKE_VIRTUAL,
Opcode.MOVE_RESULT
)
)
internal val openVideosFullscreenHookPatch = bytecodePatch(
description = "openVideosFullscreenHookPatch"
) {
dependsOn(versionCheckPatch)
execute {
val fingerprint: Fingerprint
val insertIndex: Int
if (is_19_46_or_greater) {
fingerprint = openVideosFullscreenPortraitFingerprint
insertIndex = fingerprint.instructionMatches.first().index
openVideosFullscreenPortraitFingerprint.let {
// Remove the A/B feature call so the one-shot override can decide portrait fullscreen.
it.method.insertLiteralOverride(
it.instructionMatches.last().index,
false
)
}
} else {
fingerprint = openVideosFullscreenPortraitLegacyFingerprint
insertIndex = fingerprint.instructionMatches.last().index
}
fingerprint.let {
it.method.apply {
val register = getInstruction<OneRegisterInstruction>(insertIndex).registerA
addInstructions(
insertIndex + 1,
"""
invoke-static { v$register }, $EXTENSION_CLASS_DESCRIPTOR->doNotOpenVideoFullscreenPortrait(Z)Z
move-result v$register
"""
)
}
}
}
}

View file

@ -16,6 +16,7 @@ import app.morphe.patches.shared.mainactivity.injectOnCreateMethodCall
import app.morphe.patches.shared.textcomponent.hookSpannableString
import app.morphe.patches.shared.textcomponent.textComponentPatch
import app.morphe.patches.youtube.player.overlaybuttons.geminiButton
import app.morphe.patches.youtube.player.fullscreen.openVideosFullscreenHookPatch
import app.morphe.patches.youtube.utils.bottomSheetMenuItemBuilderFingerprint
import app.morphe.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE
import app.morphe.patches.youtube.utils.engagement.engagementPanelHookPatch
@ -743,6 +744,7 @@ val shortsComponentPatch = bytecodePatch(
lithoFilterPatch,
lithoLayoutPatch,
navigationBarHookPatch,
openVideosFullscreenHookPatch,
playbackStartDescriptorPatch,
playerTypeHookPatch,
sharedResourceIdPatch,

View file

@ -108,6 +108,16 @@
<item>REPEAT</item>
<item>END_SCREEN</item>
</string-array>
<string-array name="revanced_shorts_player_type_entries">
<item>@string/revanced_shorts_player_type_shorts_player</item>
<item>@string/revanced_shorts_player_type_regular_player</item>
<item>@string/revanced_shorts_player_type_regular_player_fullscreen</item>
</string-array>
<string-array name="revanced_shorts_player_type_entry_values">
<item>SHORTS_PLAYER</item>
<item>REGULAR_PLAYER</item>
<item>REGULAR_PLAYER_FULLSCREEN</item>
</string-array>
<string-array name="revanced_custom_playback_speed_menu_type_entries">
<item>@string/revanced_custom_playback_speed_menu_type_entry_youtube_legacy</item>
<item>@string/revanced_custom_playback_speed_menu_type_entry_custom_no_theme</item>

View file

@ -1732,9 +1732,10 @@ Miniplayer can be dragged off-screen to the left or right."</string>
<string name="revanced_open_links_externally_summary_off">Opens links in in-app browser.</string>
<string name="revanced_open_links_externally_summary_on">Opens links in external browser.</string>
<string name="revanced_open_links_externally_title">Open links externally</string>
<string name="revanced_open_shorts_in_regular_player_summary_off">Do not open Shorts in regular player.</string>
<string name="revanced_open_shorts_in_regular_player_summary_on">Open Shorts in regular player.</string>
<string name="revanced_open_shorts_in_regular_player_title">Open Shorts in regular player</string>
<string name="revanced_shorts_player_type_title">Open Shorts with</string>
<string name="revanced_shorts_player_type_shorts_player">Shorts player</string>
<string name="revanced_shorts_player_type_regular_player">Regular player</string>
<string name="revanced_shorts_player_type_regular_player_fullscreen">Regular player fullscreen</string>
<string name="revanced_overlay_button">Overlay buttons</string>
<string name="revanced_overlay_button_always_repeat_summary">"Tap to toggle always repeat states.
Tap and hold to toggle pause after repeat states."</string>

View file

@ -760,7 +760,7 @@
<app.morphe.extension.shared.settings.preference.CustomDialogListPreference android:entries="@array/revanced_change_shorts_repeat_state_entries" android:title="@string/revanced_change_shorts_background_repeat_state_title" android:key="revanced_change_shorts_background_repeat_state" android:entryValues="@array/revanced_change_shorts_repeat_state_entry_values" />SETTINGS: SHORTS_REPEAT_STATE_BACKGROUND -->
<!-- SETTINGS: SHORTS_COMPONENTS
<SwitchPreference android:title="@string/revanced_open_shorts_in_regular_player_title" android:key="revanced_open_shorts_in_regular_player" android:summaryOn="@string/revanced_open_shorts_in_regular_player_summary_on" android:summaryOff="@string/revanced_open_shorts_in_regular_player_summary_off" />SETTINGS: SHORTS_COMPONENTS -->
<app.morphe.extension.shared.settings.preference.CustomDialogListPreference android:entries="@array/revanced_shorts_player_type_entries" android:title="@string/revanced_shorts_player_type_title" android:key="revanced_shorts_player_type" android:entryValues="@array/revanced_shorts_player_type_entry_values" />SETTINGS: SHORTS_COMPONENTS -->
<!-- PREFERENCE_SCREEN: SHORTS
</PreferenceScreen>PREFERENCE_SCREEN: SHORTS -->