Skip to content

Commit fa0ac0f

Browse files
committed
feat(YouTube - Miniplayer): Add Enable drag and drop setting (YouTube 19.23.40+)
1 parent 37df614 commit fa0ac0f

3 files changed

Lines changed: 35 additions & 1 deletion

File tree

src/main/kotlin/app/revanced/patches/youtube/general/miniplayer/MiniplayerPatch.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerDi
1212
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernAddViewListenerFingerprint
1313
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernCloseButtonFingerprint
1414
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernConstructorFingerprint
15+
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernDragAndDropFingerprint
1516
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernExpandButtonFingerprint
1617
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernExpandCloseDrawablesFingerprint
1718
import app.revanced.patches.youtube.general.miniplayer.fingerprints.MiniplayerModernForwardButtonFingerprint
@@ -41,6 +42,7 @@ import app.revanced.util.getReference
4142
import app.revanced.util.getWalkerMethod
4243
import app.revanced.util.indexOfFirstInstructionOrThrow
4344
import app.revanced.util.indexOfWideLiteralInstructionOrThrow
45+
import app.revanced.util.literalInstructionBooleanHook
4446
import app.revanced.util.patch.BaseBytecodePatch
4547
import app.revanced.util.resultOrThrow
4648
import app.revanced.util.updatePatchStatus
@@ -72,6 +74,7 @@ object MiniplayerPatch : BaseBytecodePatch(
7274
MiniplayerResponseModelSizeCheckFingerprint,
7375
MiniplayerOverrideFingerprint,
7476
MiniplayerModernConstructorFingerprint,
77+
MiniplayerModernDragAndDropFingerprint,
7578
MiniplayerModernViewParentFingerprint,
7679
YouTubePlayerOverlaysLayoutFingerprint,
7780
)
@@ -278,6 +281,20 @@ object MiniplayerPatch : BaseBytecodePatch(
278281

279282
// endregion
280283

284+
285+
// region Enable drag and drop.
286+
287+
if (SettingsPatch.upward1923) {
288+
MiniplayerModernDragAndDropFingerprint.literalInstructionBooleanHook(
289+
45628752,
290+
"$INTEGRATIONS_CLASS_DESCRIPTOR->enableMiniplayerDragAndDrop()Z"
291+
)
292+
settingArray += "SETTINGS: MINIPLAYER_DRAG_AND_DROP"
293+
}
294+
295+
// endregion
296+
297+
281298
if (SettingsPatch.upward1920) {
282299
context.updatePatchStatus(PATCH_STATUS_CLASS_DESCRIPTOR, "MiniplayerType1920")
283300
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package app.revanced.patches.youtube.general.miniplayer.fingerprints
2+
3+
import app.revanced.patcher.extensions.or
4+
import app.revanced.util.fingerprint.LiteralValueFingerprint
5+
import com.android.tools.smali.dexlib2.AccessFlags
6+
7+
@Suppress("SpellCheckingInspection")
8+
internal object MiniplayerModernDragAndDropFingerprint : LiteralValueFingerprint(
9+
accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR,
10+
parameters = listOf("L"),
11+
literalSupplier = { 45628752 }
12+
)

src/main/resources/youtube/settings/xml/revanced_prefs.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@
1818

1919
<!-- SETTINGS: MINIPLAYER_TYPE_MODERN
2020
<PreferenceScreen android:title="@string/revanced_preference_screen_miniplayer_title" android:key="revanced_preference_screen_miniplayer" android:summary="@string/revanced_preference_screen_miniplayer_summary">
21-
<ListPreference android:entries="@array/revanced_miniplayer_type_19_15_entries" android:title="@string/revanced_miniplayer_type_title" android:key="revanced_miniplayer_type" android:entryValues="@array/revanced_miniplayer_type_19_15_entry_values" />
21+
<ListPreference android:entries="@array/revanced_miniplayer_type_19_15_entries" android:title="@string/revanced_miniplayer_type_title" android:key="revanced_miniplayer_type" android:entryValues="@array/revanced_miniplayer_type_19_15_entry_values" />SETTINGS: MINIPLAYER_TYPE_MODERN -->
22+
23+
<!-- SETTINGS: MINIPLAYER_DRAG_AND_DROP
24+
<SwitchPreference android:title="@string/revanced_miniplayer_enable_drag_and_drop_title" android:key="revanced_miniplayer_enable_drag_and_drop" android:summaryOn="@string/revanced_miniplayer_enable_drag_and_drop_summary_on" android:summaryOff="@string/revanced_miniplayer_enable_drag_and_drop_summary_off" />SETTINGS: MINIPLAYER_DRAG_AND_DROP -->
25+
26+
<!-- SETTINGS: MINIPLAYER_TYPE_MODERN
2227
<SwitchPreference android:title="@string/revanced_miniplayer_hide_expand_close_title" android:key="revanced_miniplayer_hide_expand_close" android:summaryOn="@string/revanced_miniplayer_hide_expand_close_summary_on" android:summaryOff="@string/revanced_miniplayer_hide_expand_close_summary_off" />
2328
<SwitchPreference android:title="@string/revanced_miniplayer_hide_subtext_title" android:key="revanced_miniplayer_hide_subtext" android:summaryOn="@string/revanced_miniplayer_hide_subtext_summary_on" android:summaryOff="@string/revanced_miniplayer_hide_subtext_summary_off" />
2429
<SwitchPreference android:title="@string/revanced_miniplayer_hide_rewind_forward_title" android:key="revanced_miniplayer_hide_rewind_forward" android:summaryOn="@string/revanced_miniplayer_hide_rewind_forward_summary_on" android:summaryOff="@string/revanced_miniplayer_hide_rewind_forward_summary_off" />

0 commit comments

Comments
 (0)