From 4e8af5960c51389d1b30a4ebb8752f27bad891bc Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 25 Jun 2026 23:57:46 +0200 Subject: [PATCH] fix(mini player gestures): scope swipe up gesture to track area --- .../radiant/MiniPlayerGestures.smali | 40 +++++++++++++++++ patches/mini-player-gestures-left-right.patch | 8 ++-- patches/mini-player-gestures.patch | 45 ++++++------------- 3 files changed, 57 insertions(+), 36 deletions(-) diff --git a/patches/extension/radiant/MiniPlayerGestures.smali b/patches/extension/radiant/MiniPlayerGestures.smali index c09e4d7..cdeb3cb 100644 --- a/patches/extension/radiant/MiniPlayerGestures.smali +++ b/patches/extension/radiant/MiniPlayerGestures.smali @@ -50,6 +50,13 @@ # Mini player media state .field private static r:Z +# AppScaffold context +.field private static s:Lyl0/l; + +.field private static t:Landroidx/compose/material3/SheetState; + +.field private static u:Z + # direct methods .method private constructor ()V @@ -492,6 +499,18 @@ return-void .end method +.method public static configure(Lyl0/l;Landroidx/compose/material3/SheetState;Z)V + .locals 0 + + sput-object p0, Lradiant/MiniPlayerGestures;->s:Lyl0/l; + + sput-object p1, Lradiant/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + + sput-boolean p2, Lradiant/MiniPlayerGestures;->u:Z + + return-void +.end method + .method private static clampReleaseVelocity(F)F .locals 4 @@ -549,6 +568,27 @@ return-object p0 .end method +.method public static trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; + .locals 3 + + sget-object v0, Lradiant/MiniPlayerGestures;->s:Lyl0/l; + + if-eqz v0, :done + + sget-object v1, Lradiant/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + + if-eqz v1, :done + + sget-boolean v2, Lradiant/MiniPlayerGestures;->u:Z + + invoke-static {p0, v0, v1, v2}, Lradiant/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; + + move-result-object p0 + + :done + return-object p0 +.end method + .method private static minFlingVelocity()F .locals 2 diff --git a/patches/mini-player-gestures-left-right.patch b/patches/mini-player-gestures-left-right.patch index 6e9be1a..615a79a 100644 --- a/patches/mini-player-gestures-left-right.patch +++ b/patches/mini-player-gestures-left-right.patch @@ -1,16 +1,14 @@ --- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali -@@ -1746,6 +1746,10 @@ - invoke-static {v9, v10, v15, v6, v8}, Landroidx/compose/foundation/layout/PaddingKt;->padding-qDBjuR0(Landroidx/compose/ui/Modifier;FFFF)Landroidx/compose/ui/Modifier; - +@@ -1768,3 +1768,7 @@ move-result-object v6 +- + + invoke-static {v6, v1}, Lradiant/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener + + move-result-object v6 - ++ .line 38 - sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; @@ -1884,5 +1888,5 @@ .line 56 iget-object v6, v0, Lcom/tidal/android/feature/appscaffold/ui/s;->b:Lcom/tidal/android/feature/appscaffold/ui/p; diff --git a/patches/mini-player-gestures.patch b/patches/mini-player-gestures.patch index 7efb2b4..851c23e 100644 --- a/patches/mini-player-gestures.patch +++ b/patches/mini-player-gestures.patch @@ -13,40 +13,15 @@ invoke-static {v15, v5}, Landroidx/compose/ui/ComposedModifierKt;->materializeModifier(Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; move-result-object v9 -@@ -2832,27 +2838,7 @@ -- .line 150 -- sget-object v8, Lkotlin/u;->a:Lkotlin/u; -- -- .line 151 -- invoke-interface {v15}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; -- -- move-result-object v10 -- -- .line 152 -- invoke-virtual/range {v22 .. v22}, Landroidx/compose/runtime/Composer$Companion;->getEmpty()Ljava/lang/Object; -- -- move-result-object v11 -- -- if-ne v10, v11, :cond_48 -- -- .line 153 -- sget-object v10, Lcom/tidal/android/feature/appscaffold/ui/composable/AppScaffoldKt$AppScaffold$3$2$1$1;->a:Lcom/tidal/android/feature/appscaffold/ui/composable/AppScaffoldKt$AppScaffold$3$2$1$1; -- -- invoke-interface {v15, v10}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V -- -- .line 154 -- :cond_48 -- check-cast v10, Landroidx/compose/ui/input/pointer/PointerInputEventHandler; -- -- invoke-static {v0, v8, v10}, Landroidx/compose/ui/input/pointer/SuspendingPointerInputFilterKt;->pointerInput(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Landroidx/compose/ui/input/pointer/PointerInputEventHandler;)Landroidx/compose/ui/Modifier; +@@ -2832,2 +2838,8 @@ + move-object/from16 v8, v25 # SheetState from AppScaffold + + const/4 v10, __RL_MINI_PLAYER_SWIPE_UP_DRAG__ # Enable Drag option + -+ invoke-static {v0, v6, v8, v10}, Lradiant/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # attach swipe up listener - - move-result-object v0 - ++ invoke-static {v6, v8, v10}, Lradiant/MiniPlayerGestures;->configure(Lyl0/l;Landroidx/compose/material3/SheetState;Z)V ++ + .line 150 + sget-object v8, Lkotlin/u;->a:Lkotlin/u; --- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali @@ -1243,5 +1243,21 @@ @@ -71,7 +46,15 @@ + invoke-static {v5}, Lradiant/MiniPlayerGestures;->setHasMiniPlayerMedia(Z)V invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; - +@@ -1748,3 +1764,7 @@ + move-result-object v6 +- ++ ++ invoke-static {v6}, Lradiant/MiniPlayerGestures;->trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # attach swipe up listener ++ ++ move-result-object v6 ++ + .line 38 --- a/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali +++ b/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali @@ -210,8 +210,10 @@