From 276dd0be2e91229d463a16522a2db692fe10dac4 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Wed, 24 Jun 2026 00:30:14 +0200 Subject: [PATCH] fix(miniplayer gestures): clip text on right side --- .../ui/screens/patchopts/KnownPatch.kt | 1 + .../MiniPlayerTrackGestures$TextDraw.smali | 128 ++++++++++++++++++ .../radiant/MiniPlayerTrackGestures.smali | 12 ++ patches/mini-player-gestures-left-right.patch | 2 +- 4 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt index 11061fa..36538dc 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt @@ -171,6 +171,7 @@ enum class KnownPatch( "radiant/MiniPlayerTrackGestures\$Gesture.smali", "radiant/MiniPlayerTrackGestures\$OffsetLayer.smali", "radiant/MiniPlayerTrackGestures\$ResetAnimator.smali", + "radiant/MiniPlayerTrackGestures\$TextDraw.smali", "com/tidal/android/feature/appscaffold/ui/q\$c.smali", ), ), diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali b/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali new file mode 100644 index 0000000..876a36e --- /dev/null +++ b/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali @@ -0,0 +1,128 @@ +.class public final Lradiant/MiniPlayerTrackGestures$TextDraw; +.super Ljava/lang/Object; +.implements Lyl0/l; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/MiniPlayerTrackGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "TextDraw" +.end annotation + + +# static fields +.field public static final INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; + + +# direct methods +.method static constructor ()V + .locals 1 + + new-instance v0, Lradiant/MiniPlayerTrackGestures$TextDraw; + + invoke-direct {v0}, Lradiant/MiniPlayerTrackGestures$TextDraw;->()V + + sput-object v0, Lradiant/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; + + return-void +.end method + +.method private constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + .locals 12 + + sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F + + move-result v10 + + invoke-interface {p1}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/DrawContext; + + move-result-object v7 + + invoke-interface {v7}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getSize-NH-jbRc()J + + move-result-wide v8 + + const/16 v0, 0x20 + + shr-long v1, v8, v0 + + long-to-int v1, v1 + + invoke-static {v1}, Ljava/lang/Float;->intBitsToFloat(I)F + + move-result v4 + + invoke-interface {v7}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getCanvas()Landroidx/compose/ui/graphics/Canvas; + + move-result-object v0 + + invoke-interface {v0}, Landroidx/compose/ui/graphics/Canvas;->save()V + + :try_start_0 + sget-object v0, Landroidx/compose/ui/graphics/ClipOp;->Companion:Landroidx/compose/ui/graphics/ClipOp$Companion; + + invoke-virtual {v0}, Landroidx/compose/ui/graphics/ClipOp$Companion;->getIntersect-rtfAjoo()I + + move-result v6 + + invoke-interface {v7}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getTransform()Landroidx/compose/ui/graphics/drawscope/DrawTransform; + + move-result-object v1 + + const v2, -0x800001 # -Float.MAX_VALUE -> unbounded left + + const v3, -0x800001 # -Float.MAX_VALUE -> unbounded top + + const v5, 0x7f7fffff # Float.MAX_VALUE -> unbounded bottom + + invoke-interface/range {v1 .. v6}, Landroidx/compose/ui/graphics/drawscope/DrawTransform;->clipRect-N_I0leg(FFFFI)V + + const/4 v0, 0x0 + + invoke-interface {v1, v10, v0}, Landroidx/compose/ui/graphics/drawscope/DrawTransform;->translate(FF)V + + invoke-interface {p1}, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;->drawContent()V + :try_end_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + invoke-static {v7, v8, v9}, Landroidx/compose/animation/i;->b(Landroidx/compose/ui/graphics/drawscope/DrawContext;J)V + + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + + return-object p1 + + :catchall_0 + move-exception v0 + + invoke-static {v7, v8, v9}, Landroidx/compose/animation/i;->b(Landroidx/compose/ui/graphics/drawscope/DrawContext;J)V + + throw v0 +.end method + +.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; + .locals 0 + + check-cast p1, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope; + + invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/MiniPlayerTrackGestures.smali b/patches/extension/radiant/MiniPlayerTrackGestures.smali index e9294a5..5cfa1ff 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures.smali +++ b/patches/extension/radiant/MiniPlayerTrackGestures.smali @@ -385,6 +385,18 @@ return-object p0 .end method +.method public static textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; + .locals 1 + + sget-object v0, Lradiant/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; # text clip on right only + + invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; + + move-result-object p0 + + return-object p0 +.end method + .method public static onRenderedItem(Ljava/lang/Object;)V .locals 2 diff --git a/patches/mini-player-gestures-left-right.patch b/patches/mini-player-gestures-left-right.patch index 7957ebf..6e9be1a 100644 --- a/patches/mini-player-gestures-left-right.patch +++ b/patches/mini-player-gestures-left-right.patch @@ -30,7 +30,7 @@ @@ -2032,3 +2038,5 @@ move-result-object v4 - -+ invoke-static {v4}, Lradiant/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist with horizontal swipe ++ invoke-static {v4}, Lradiant/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist + move-result-object v4 + .line 72