From d44d8333340497f5d9721fba62731a75b1736244 Mon Sep 17 00:00:00 2001 From: meowarex Date: Tue, 11 Aug 2026 03:22:28 +0000 Subject: [PATCH 1/2] Gestures Rewrite --- .../app/src/main/assets/patches-manifest.json | 30 +- .../radiant/MiniPlayerGestures$Gesture.smali | 521 ------------------ .../MiniPlayerGestures$RootGesture.smali | 178 ------ patches/extension/radiant/WordLyrics.smali | 414 +++++++++++++- .../radiant/gestures/LyricsDrag$Guard.smali | 53 ++ .../radiant/gestures/LyricsDrag.smali | 28 + .../MiniPlayerGestures$ApplyPending.smali | 18 +- .../MiniPlayerGestures$FeedbackLayer.smali | 16 +- ...PlayerGestures$FeedbackResetAnimator.smali | 8 +- .../gestures/MiniPlayerGestures$Gesture.smali | 521 ++++++++++++++++++ .../MiniPlayerGestures$RootGesture.smali | 178 ++++++ .../{ => gestures}/MiniPlayerGestures.smali | 348 ++++++------ .../MiniPlayerTrackGestures$Gesture.smali | 28 +- .../MiniPlayerTrackGestures$OffsetLayer.smali | 16 +- ...iniPlayerTrackGestures$ResetAnimator.smali | 8 +- .../MiniPlayerTrackGestures$TextDraw.smali | 16 +- .../MiniPlayerTrackGestures.smali | 136 ++--- .../lyrics-gesture-scroll-guard.patch | 13 + .../mini-player-left-right-gesture.patch} | 10 +- patches/gestures/mini-player-up-gesture.patch | 76 +++ patches/gestures/player-swipe-gesture.patch | 55 ++ patches/lyrics-progress-pill.patch | 34 +- patches/lyrics-rl-api-observer.patch | 11 + patches/manifest.json | 32 +- patches/mini-player-gestures.patch | 131 ----- 25 files changed, 1677 insertions(+), 1202 deletions(-) delete mode 100644 patches/extension/radiant/MiniPlayerGestures$Gesture.smali delete mode 100644 patches/extension/radiant/MiniPlayerGestures$RootGesture.smali create mode 100644 patches/extension/radiant/gestures/LyricsDrag$Guard.smali create mode 100644 patches/extension/radiant/gestures/LyricsDrag.smali rename patches/extension/radiant/{ => gestures}/MiniPlayerGestures$ApplyPending.smali (52%) rename patches/extension/radiant/{ => gestures}/MiniPlayerGestures$FeedbackLayer.smali (60%) rename patches/extension/radiant/{ => gestures}/MiniPlayerGestures$FeedbackResetAnimator.smali (75%) create mode 100644 patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali create mode 100644 patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali rename patches/extension/radiant/{ => gestures}/MiniPlayerGestures.smali (65%) rename patches/extension/radiant/{ => gestures}/MiniPlayerTrackGestures$Gesture.smali (68%) rename patches/extension/radiant/{ => gestures}/MiniPlayerTrackGestures$OffsetLayer.smali (59%) rename patches/extension/radiant/{ => gestures}/MiniPlayerTrackGestures$ResetAnimator.smali (75%) rename patches/extension/radiant/{ => gestures}/MiniPlayerTrackGestures$TextDraw.smali (81%) rename patches/extension/radiant/{ => gestures}/MiniPlayerTrackGestures.smali (60%) create mode 100644 patches/gestures/lyrics-gesture-scroll-guard.patch rename patches/{mini-player-gestures-left-right.patch => gestures/mini-player-left-right-gesture.patch} (77%) create mode 100644 patches/gestures/mini-player-up-gesture.patch create mode 100644 patches/gestures/player-swipe-gesture.patch delete mode 100644 patches/mini-player-gestures.patch diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 99f326d..cf15ffa 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -370,15 +370,19 @@ "description": "Adds swipe up gesture to the mini-player to reopen the player", "default": true, "fileNames": [ - "mini-player-gestures.patch" + "mini-player-up-gesture.patch", + "player-swipe-gesture.patch", + "lyrics-gesture-scroll-guard.patch" ], "extensionFiles": [ - "radiant/MiniPlayerGestures.smali", - "radiant/MiniPlayerGestures$Gesture.smali", - "radiant/MiniPlayerGestures$FeedbackLayer.smali", - "radiant/MiniPlayerGestures$FeedbackResetAnimator.smali", - "radiant/MiniPlayerGestures$RootGesture.smali", - "radiant/MiniPlayerGestures$ApplyPending.smali" + "radiant/gestures/MiniPlayerGestures.smali", + "radiant/gestures/MiniPlayerGestures$Gesture.smali", + "radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali", + "radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali", + "radiant/gestures/MiniPlayerGestures$RootGesture.smali", + "radiant/gestures/MiniPlayerGestures$ApplyPending.smali", + "radiant/gestures/LyricsDrag.smali", + "radiant/gestures/LyricsDrag$Guard.smali" ] }, { @@ -405,14 +409,14 @@ "default": false, "requiresOption": "gestures", "fileNames": [ - "mini-player-gestures-left-right.patch" + "mini-player-left-right-gesture.patch" ], "extensionFiles": [ - "radiant/MiniPlayerTrackGestures.smali", - "radiant/MiniPlayerTrackGestures$Gesture.smali", - "radiant/MiniPlayerTrackGestures$OffsetLayer.smali", - "radiant/MiniPlayerTrackGestures$ResetAnimator.smali", - "radiant/MiniPlayerTrackGestures$TextDraw.smali", + "radiant/gestures/MiniPlayerTrackGestures.smali", + "radiant/gestures/MiniPlayerTrackGestures$Gesture.smali", + "radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali", + "radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali", + "radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali", "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } diff --git a/patches/extension/radiant/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/MiniPlayerGestures$Gesture.smali deleted file mode 100644 index 966a750..0000000 --- a/patches/extension/radiant/MiniPlayerGestures$Gesture.smali +++ /dev/null @@ -1,521 +0,0 @@ -.class public final Lradiant/MiniPlayerGestures$Gesture; -.super Ljava/lang/Object; -.implements Lam0/l; - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerGestures; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x19 - name = "Gesture" -.end annotation - - -# instance fields -.field public final a:Lam0/l; - -# Y at ACTION_DOWN -.field public b:F - -# Last Y seen (on this pointer stream) -.field public c:F - -# True while this listener owns an active pointer stream -.field public d:Z - -# True when sheet drag has started -.field public e:Z - -.field public final f:Landroidx/compose/material3/SheetState; - -.field public g:F - -# X at ACTION_DOWN -.field public i:F - -# True once horizontal movement wins (prevents later vertical start) -.field public j:Z - -# Drag option enabled -.field public final k:Z - - -# direct methods -.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;Z)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - - iput-object p2, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - iput-boolean p3, p0, Lradiant/MiniPlayerGestures$Gesture;->k:Z - - return-void -.end method - -.method private static dp(F)F - .locals 1 - - invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources; - - move-result-object v0 - - invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; - - move-result-object v0 - - iget v0, v0, Landroid/util/DisplayMetrics;->density:F - - mul-float/2addr p0, v0 - - return p0 -.end method - -.method private dragSheet(FJ)V - .locals 1 - - iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - invoke-static {v0, p1, p2, p3}, Lradiant/MiniPlayerGestures;->updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V - - return-void -.end method - -.method private finishSheet(F)V - .locals 2 - - iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - - invoke-static {v0, v1, p1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V - - return-void -.end method - -.method private openPlayer()V - .locals 2 - - iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - - sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; - - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - return-void -.end method - -.method private reset()V - .locals 1 - - const/4 v0, 0x0 - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->d:Z - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->j:Z - - const/4 v0, 0x0 - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->i:F - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->g:F - - return-void -.end method - -.method private startSheet(FJ)V - .locals 2 - - # empty player guard - invoke-static {}, Lradiant/MiniPlayerGestures;->hasMiniPlayerMedia()Z - - move-result v0 - - if-nez v0, :start_guard - - return-void - - :start_guard - - # avoid starting twice - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - if-eqz v0, :start - - return-void - - :start - const/4 v0, 0x1 - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->k:Z - - if-eqz v0, :done - - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - iget v0, p0, Lradiant/MiniPlayerGestures$Gesture;->b:F - - invoke-static {v1, p1, v0, p2, p3}, Lradiant/MiniPlayerGestures;->beginDrag(Landroidx/compose/material3/SheetState;FFJ)V - - invoke-direct {p0}, Lradiant/MiniPlayerGestures$Gesture;->openPlayer()V - - :done - return-void -.end method - - -# virtual methods -# Listens for MotionEvents -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; - .locals 11 - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I - - move-result v0 - - if-eqz v0, :down - - const/4 v1, 0x1 - - if-eq v0, v1, :up - - const/4 v1, 0x2 - - if-eq v0, v1, :move - - const/4 v1, 0x3 - - if-eq v0, v1, :cancel - - goto :done - - # ACTION_DOWN - :down - invoke-static {}, Lradiant/MiniPlayerGestures;->resetGestureLock()V - - invoke-static {p1}, Lradiant/MiniPlayerGestures;->beginMotion(Landroid/view/MotionEvent;)V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v0 - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->b:F - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->c:F - - const/4 v0, 0x1 - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->d:Z - - const/4 v0, 0x0 - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - const/4 v0, 0x0 - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->g:F - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F - - move-result v0 - - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->i:F - - const/4 v0, 0x0 - - iput-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->j:Z - - iget v0, p0, Lradiant/MiniPlayerGestures$Gesture;->b:F - - invoke-static {v0}, Lradiant/MiniPlayerGestures;->beginSwipeGesture(F)V - - :skip_feedback_down - - goto :done - - # ACTION_MOVE - :move - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->d:Z - - if-eqz v0, :done - - invoke-static {p1}, Lradiant/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v0 - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J - - move-result-wide v5 - - iget v1, p0, Lradiant/MiniPlayerGestures$Gesture;->c:F - - sub-float v1, v0, v1 - - iput v1, p0, Lradiant/MiniPlayerGestures$Gesture;->g:F - - iget v2, p0, Lradiant/MiniPlayerGestures$Gesture;->b:F - - sub-float v2, v0, v2 - - iget-boolean v3, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - if-eqz v3, :maybe_start - - invoke-static {}, Lradiant/MiniPlayerGestures;->suppressHorizontalGestures()V - - iget-boolean v3, p0, Lradiant/MiniPlayerGestures$Gesture;->k:Z - - if-eqz v3, :feedback_active - - invoke-direct {p0, v2, v5, v6}, Lradiant/MiniPlayerGestures$Gesture;->dragSheet(FJ)V - - :feedback_active - invoke-static {v2}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V - - goto :store_last - - :maybe_start - iget-boolean v3, p0, Lradiant/MiniPlayerGestures$Gesture;->j:Z - - if-eqz v3, :axis_check - - goto :store_last - - :axis_check - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F - - move-result v7 - - iget v8, p0, Lradiant/MiniPlayerGestures$Gesture;->i:F - - sub-float/2addr v7, v8 - - invoke-static {v7}, Ljava/lang/Math;->abs(F)F - - move-result v7 - - invoke-static {v2}, Ljava/lang/Math;->abs(F)F - - move-result v8 - - const/high16 v9, 0x40c00000 # 6.0f axis deadzone - - invoke-static {v9}, Lradiant/MiniPlayerGestures$Gesture;->dp(F)F - - move-result v9 - - invoke-static {}, Lradiant/MiniPlayerGestures;->isHorizontalGestureLocked()Z - - move-result v10 - - if-eqz v10, :horizontal_check - - const/4 v10, 0x0 - - invoke-static {v10}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V - - goto :store_last - - :horizontal_check - - cmpg-float v10, v7, v9 - - if-gez v10, :horizontal_dominance - - goto :vertical_check - - :horizontal_dominance - - const v10, 0x3f8ccccd # 1.1f - - mul-float/2addr v10, v8 - - cmpg-float v10, v7, v10 - - if-gez v10, :horizontal_wins - - goto :vertical_check - - :horizontal_wins - - invoke-static {}, Lradiant/MiniPlayerGestures;->lockHorizontalGesture()Z - - move-result v10 - - if-eqz v10, :store_last - - const/4 v10, 0x1 - - iput-boolean v10, p0, Lradiant/MiniPlayerGestures$Gesture;->j:Z - - const/4 v10, 0x0 - - invoke-static {v10}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V - - goto :store_last - - # At least 16dp up to open the player - :vertical_check - neg-float v9, v9 - - cmpg-float v10, v2, v9 - - if-lez v10, :vertical_dominance - - invoke-static {v2}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V - - goto :store_last - - :vertical_dominance - const v10, 0x3f8ccccd # 1.1f -> early vertical axis lock - - mul-float/2addr v7, v10 - - cmpl-float v10, v8, v7 - - if-gtz v10, :begin - - goto :store_last - - :begin - invoke-static {}, Lradiant/MiniPlayerGestures;->lockVerticalGesture()Z - - move-result v10 - - if-eqz v10, :store_last - - invoke-direct {p0, v2, v5, v6}, Lradiant/MiniPlayerGestures$Gesture;->startSheet(FJ)V - - iget-boolean v10, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - if-eqz v10, :store_last - - invoke-static {}, Lradiant/MiniPlayerGestures;->suppressHorizontalGestures()V - - iget-boolean v10, p0, Lradiant/MiniPlayerGestures$Gesture;->k:Z - - if-eqz v10, :feedback_begin - - invoke-direct {p0, v2, v5, v6}, Lradiant/MiniPlayerGestures$Gesture;->dragSheet(FJ)V - - :feedback_begin - invoke-static {v2}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V - - - :store_last - iput v0, p0, Lradiant/MiniPlayerGestures$Gesture;->c:F - - goto :done - - # ACTION_UP - :up - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->d:Z - - if-eqz v0, :done - - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - if-eqz v0, :up_no_drag - - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->k:Z - - if-eqz v0, :open_simple - - invoke-static {p1}, Lradiant/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v0 - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J - - move-result-wide v5 - - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - invoke-static {v1, v0, v5, v6}, Lradiant/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V - - invoke-static {v1}, Lradiant/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F - - move-result v0 - - invoke-direct {p0, v0}, Lradiant/MiniPlayerGestures$Gesture;->finishSheet(F)V - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - goto :finish - - :up_no_drag - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - goto :finish - - :open_simple - invoke-static {}, Lradiant/MiniPlayerGestures;->suppressHorizontalGestures()V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v0 - - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - - invoke-static {v1, v0}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - - :finish - invoke-direct {p0}, Lradiant/MiniPlayerGestures$Gesture;->reset()V - - goto :done - - # ACTION_CANCEL - :cancel - iget-boolean v0, p0, Lradiant/MiniPlayerGestures$Gesture;->e:Z - - if-eqz v0, :cancel_no_active - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - - invoke-static {v0, v1}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V - - goto :cancel_reset - - :cancel_no_active - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - :cancel_reset - invoke-direct {p0}, Lradiant/MiniPlayerGestures$Gesture;->reset()V - - - :done - sget-object p1, Lkotlin/u;->a:Lkotlin/u; - - return-object p1 -.end method - -.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; - .locals 0 - - check-cast p1, Landroid/view/MotionEvent; - - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; - - move-result-object p1 - - return-object p1 -.end method diff --git a/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali b/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali deleted file mode 100644 index c58201f..0000000 --- a/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali +++ /dev/null @@ -1,178 +0,0 @@ -.class public final Lradiant/MiniPlayerGestures$RootGesture; -.super Ljava/lang/Object; -.implements Lam0/l; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerGestures; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x19 - name = "RootGesture" -.end annotation - - -# instance fields -.field public final a:Lam0/l; - -.field public final b:Landroidx/compose/material3/SheetState; - - -# direct methods -.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - - iput-object p2, p0, Lradiant/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; - - return-void -.end method - - -# virtual methods -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; - .locals 6 - - iget-object v0, p0, Lradiant/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I - - move-result v1 - - invoke-static {v0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z - - move-result v2 - - if-eqz v2, :maybe_reset_only - - const/4 v2, 0x1 - - if-eq v1, v2, :up - - const/4 v2, 0x2 - - if-eq v1, v2, :move - - const/4 v2, 0x3 - - if-eq v1, v2, :cancel - - goto :done - - :maybe_reset_only - const/4 v2, 0x1 - - if-eq v1, v2, :simple_up - - const/4 v2, 0x3 - - if-eq v1, v2, :reset_only - - const/4 v2, 0x2 - - if-eq v1, v2, :simple_move - - goto :done - - :reset_only - invoke-static {}, Lradiant/MiniPlayerGestures;->resetGestureLock()V - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - goto :done - - :simple_move - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v1 - - invoke-static {v1}, Lradiant/MiniPlayerGestures;->updateSimpleSwipe(F)Z - - goto :done - - :simple_up - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v1 - - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - - invoke-static {v2, v1}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - goto :done - - - # ACTION_MOVE - :move - invoke-static {p1}, Lradiant/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v2 - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J - - move-result-wide v4 - - invoke-static {v0, v2, v4, v5}, Lradiant/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V - - goto :done - - # ACTION_UP - :up - invoke-static {p1}, Lradiant/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F - - move-result v1 - - invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J - - move-result-wide v4 - - invoke-static {v0, v1, v4, v5}, Lradiant/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V - - invoke-static {v0}, Lradiant/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F - - move-result v1 - - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - - invoke-static {v0, v2, v1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - goto :done - - # ACTION_CANCEL - :cancel - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - - invoke-static {v0, v2}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V - - invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V - - :done - sget-object p1, Lkotlin/u;->a:Lkotlin/u; - - return-object p1 -.end method - -.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; - .locals 0 - - check-cast p1, Landroid/view/MotionEvent; - - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$RootGesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; - - move-result-object p1 - - return-object p1 -.end method diff --git a/patches/extension/radiant/WordLyrics.smali b/patches/extension/radiant/WordLyrics.smali index cc4dd9b..079db85 100644 --- a/patches/extension/radiant/WordLyrics.smali +++ b/patches/extension/radiant/WordLyrics.smali @@ -34,6 +34,13 @@ .field public static lineWordBg:[[Z +# Line ends and adlib lines +.field public static lineEnds:[J + +.field public static lineIsBg:[Z + +.field public static lineEff:[J + .field public static lineSide:[I .field public static dualSide:Z @@ -72,7 +79,7 @@ .field public static volatile ticking:Z -# per-render scratch handed to styleSpot +# per-render scratch handed to spotGroup .field public static tmpStarts:[J .field public static tmpOffs:[I @@ -206,6 +213,12 @@ sput-object v0, Lradiant/WordLyrics;->lineWordBg:[[Z + sput-object v0, Lradiant/WordLyrics;->lineEnds:[J + + sput-object v0, Lradiant/WordLyrics;->lineIsBg:[Z + + sput-object v0, Lradiant/WordLyrics;->lineEff:[J + sput-object v0, Lradiant/WordLyrics;->lineSide:[I const/4 v0, 0x0 @@ -568,27 +581,18 @@ invoke-virtual {v6, v0, v8, v9}, Landroidx/compose/ui/text/AnnotatedString$Builder;->addStyle(Landroidx/compose/ui/text/SpanStyle;II)V - # Which line is playing now + # Recompose when the playing line changes invoke-static {}, Lradiant/WordLyrics;->lineState()Landroidx/compose/runtime/MutableState; move-result-object v0 invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; - move-result-object v0 - - const/4 v5, -0x1 - - if-eqz v0, :w_have_al - - check-cast v0, Ljava/lang/Integer; - - invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I + invoke-static {v15}, Lradiant/WordLyrics;->isActiveLine(I)Z move-result v5 - :w_have_al - if-ne v15, v5, :w_emit + if-eqz v5, :w_emit # Re-render this line every tick invoke-static {}, Lradiant/WordLyrics;->state()Landroidx/compose/runtime/MutableState; @@ -1160,6 +1164,8 @@ invoke-static {v0}, Lradiant/WordLyrics;->buildWordBg(Lorg/json/JSONArray;)V + invoke-static {v0}, Lradiant/WordLyrics;->buildLineMeta(Lorg/json/JSONArray;)V + move-object/from16 v6, p0 invoke-static {v6, v0}, Lradiant/WordLyrics;->buildSides(Ljava/lang/String;Lorg/json/JSONArray;)V @@ -1483,6 +1489,367 @@ return-object v0 .end method +# Works out when each line ends +.method static buildLineMeta(Lorg/json/JSONArray;)V + .locals 16 + + move-object/from16 v14, p0 + + invoke-virtual {v14}, Lorg/json/JSONArray;->length()I + + move-result v0 + + new-array v1, v0, [J + + new-array v2, v0, [Z + + new-array v3, v0, [J + + const/4 v4, 0x0 + + :lm_line + if-ge v4, v0, :lm_eff + + invoke-virtual {v14, v4}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; + + move-result-object v5 + + const-string v6, "syllabus" + + invoke-virtual {v5, v6}, Lorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray; + + move-result-object v6 + + if-eqz v6, :lm_single + + invoke-virtual {v6}, Lorg/json/JSONArray;->length()I + + move-result v7 + + if-nez v7, :lm_have + + :lm_single + # No syllables, use the line start + const-string v8, "startTime" + + const-wide/16 v9, 0x0 + + invoke-virtual {v5, v8, v9, v10}, Lorg/json/JSONObject;->optDouble(Ljava/lang/String;D)D + + move-result-wide v9 + + const-wide v11, 0x408f400000000000L # 1000.0 + + mul-double/2addr v9, v11 + + double-to-long v9, v9 + + aput-wide v9, v3, v4 + + const-wide/16 v11, 0x320 + + add-long/2addr v9, v11 + + aput-wide v9, v1, v4 + + const/4 v8, 0x0 + + aput-boolean v8, v2, v4 + + goto :lm_next + + :lm_have + const/4 v8, 0x0 + + invoke-virtual {v6, v8}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; + + move-result-object v8 + + const-string v9, "time" + + invoke-virtual {v8, v9}, Lorg/json/JSONObject;->optLong(Ljava/lang/String;)J + + move-result-wide v9 + + aput-wide v9, v3, v4 + + add-int/lit8 v8, v7, -0x1 + + invoke-virtual {v6, v8}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; + + move-result-object v8 + + const-string v9, "time" + + invoke-virtual {v8, v9}, Lorg/json/JSONObject;->optLong(Ljava/lang/String;)J + + move-result-wide v9 + + const-string v11, "duration" + + invoke-virtual {v8, v11}, Lorg/json/JSONObject;->optLong(Ljava/lang/String;)J + + move-result-wide v11 + + add-long/2addr v9, v11 + + aput-wide v9, v1, v4 + + # Whole line an adlib? + const/4 v8, 0x1 + + const/4 v9, 0x0 + + :lm_bg + if-ge v9, v7, :lm_bg_done + + invoke-virtual {v6, v9}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; + + move-result-object v10 + + const-string v11, "isBackground" + + const/4 v12, 0x0 + + invoke-virtual {v10, v11, v12}, Lorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z + + move-result v10 + + if-nez v10, :lm_bg_next + + const/4 v8, 0x0 + + goto :lm_bg_done + + :lm_bg_next + add-int/lit8 v9, v9, 0x1 + + goto :lm_bg + + :lm_bg_done + aput-boolean v8, v2, v4 + + :lm_next + add-int/lit8 v4, v4, 0x1 + + goto :lm_line + + :lm_eff + new-array v5, v0, [J + + const/4 v4, 0x0 + + :lm_eff_loop + if-ge v4, v0, :lm_store + + # Hold until the next lead vocal + const-wide v6, 0x7fffffffffffffffL + + add-int/lit8 v8, v4, 0x1 + + :lm_scan + if-ge v8, v0, :lm_have_next + + aget-boolean v9, v2, v8 + + if-nez v9, :lm_scan_next + + aget-wide v6, v3, v8 + + goto :lm_have_next + + :lm_scan_next + add-int/lit8 v8, v8, 0x1 + + goto :lm_scan + + :lm_have_next + aget-wide v9, v1, v4 + + const-wide/16 v11, 0x9c4 + + add-long/2addr v11, v9 + + cmp-long v13, v6, v11 + + if-gez v13, :lm_cap_ok + + move-wide v11, v6 + + :lm_cap_ok + cmp-long v13, v11, v9 + + if-gez v13, :lm_eff_set + + move-wide v11, v9 + + :lm_eff_set + aput-wide v11, v5, v4 + + add-int/lit8 v4, v4, 0x1 + + goto :lm_eff_loop + + :lm_store + sput-object v1, Lradiant/WordLyrics;->lineEnds:[J + + sput-object v2, Lradiant/WordLyrics;->lineIsBg:[Z + + sput-object v5, Lradiant/WordLyrics;->lineEff:[J + + return-void +.end method + +# The last line that has started +.method static activeIdx()I + .locals 3 + + sget-object v0, Lradiant/WordLyrics;->lineStarts:[J + + invoke-static {}, Lradiant/WordLyrics;->computeNow()J + + move-result-wide v1 + + invoke-static {v0, v1, v2}, Lradiant/WordLyrics;->search([JJ)I + + move-result v0 + + return v0 +.end method + +# Is this line still being sung +.method public static isActiveLine(I)Z + .locals 8 + + const/4 v0, 0x0 + + sget-object v2, Lradiant/WordLyrics;->lineEff:[J + + if-nez v2, :al_meta + + # No ends, fall back to one line + invoke-static {}, Lradiant/WordLyrics;->activeIdx()I + + move-result v7 + + if-ne p0, v7, :ret + + const/4 v0, 0x1 + + return v0 + + :al_meta + sget-object v1, Lradiant/WordLyrics;->lineStarts:[J + + if-eqz v1, :ret + + if-ltz p0, :ret + + array-length v7, v1 + + if-ge p0, v7, :ret + + array-length v7, v2 + + if-ge p0, v7, :ret + + invoke-static {}, Lradiant/WordLyrics;->computeNow()J + + move-result-wide v3 + + aget-wide v5, v1, p0 + + cmp-long v7, v3, v5 + + if-ltz v7, :ret + + aget-wide v5, v2, p0 + + cmp-long v7, v3, v5 + + if-gez v7, :ret + + const/4 v0, 0x1 + + :ret + return v0 +.end method + +# Has this line finished for good +.method public static isPastLine(I)Z + .locals 6 + + const/4 v0, 0x0 + + sget-object v1, Lradiant/WordLyrics;->lineEff:[J + + if-nez v1, :pl_meta + + invoke-static {}, Lradiant/WordLyrics;->activeIdx()I + + move-result v5 + + if-ge p0, v5, :pl_ret + + const/4 v0, 0x1 + + return v0 + + :pl_meta + if-ltz p0, :pl_ret + + array-length v5, v1 + + if-ge p0, v5, :pl_ret + + invoke-static {}, Lradiant/WordLyrics;->computeNow()J + + move-result-wide v2 + + aget-wide v4, v1, p0 + + cmp-long v5, v2, v4 + + if-ltz v5, :pl_ret + + const/4 v0, 0x1 + + :pl_ret + return v0 +.end method + +# First of any overlapping pair +.method public static primaryLine(I)I + .locals 4 + + sget-object v0, Lradiant/WordLyrics;->lineEff:[J + + if-eqz v0, :pr_ret + + array-length v1, v0 + + const/4 v2, 0x0 + + :pr_loop + if-ge v2, v1, :pr_ret + + invoke-static {v2}, Lradiant/WordLyrics;->isActiveLine(I)Z + + move-result v3 + + if-eqz v3, :pr_next + + return v2 + + :pr_next + add-int/lit8 v2, v2, 0x1 + + goto :pr_loop + + :pr_ret + return p0 +.end method + # MARKER: Context Aware Lyrics ingest # Which syllables are adlibs .method static buildSylBg(Lorg/json/JSONArray;)V @@ -2751,27 +3118,18 @@ invoke-static {v6, v15, v7, v9}, Lradiant/WordLyrics;->applyParagraphs(Landroidx/compose/ui/text/AnnotatedString$Builder;III)V - # Which line is playing now + # Recompose when the playing line changes invoke-static {}, Lradiant/WordLyrics;->lineState()Landroidx/compose/runtime/MutableState; move-result-object v0 invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; - move-result-object v0 - - const/4 v5, -0x1 - - if-eqz v0, :sl_have_al - - check-cast v0, Ljava/lang/Integer; - - invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I + invoke-static {v15}, Lradiant/WordLyrics;->isPastLine(I)Z move-result v5 - :sl_have_al - if-ge v15, v5, :sl_not_past + if-eqz v5, :sl_not_past # Past lines stay fully sung invoke-static {}, Lradiant/WordLyrics;->sungStyle()Landroidx/compose/ui/text/SpanStyle; @@ -2794,7 +3152,11 @@ invoke-virtual {v6, v0, v8, v9}, Landroidx/compose/ui/text/AnnotatedString$Builder;->addStyle(Landroidx/compose/ui/text/SpanStyle;II)V - if-ne v15, v5, :sl_emit + invoke-static {v15}, Lradiant/WordLyrics;->isActiveLine(I)Z + + move-result v5 + + if-eqz v5, :sl_emit # Re-render this line every tick invoke-static {}, Lradiant/WordLyrics;->state()Landroidx/compose/runtime/MutableState; diff --git a/patches/extension/radiant/gestures/LyricsDrag$Guard.smali b/patches/extension/radiant/gestures/LyricsDrag$Guard.smali new file mode 100644 index 0000000..a85b17a --- /dev/null +++ b/patches/extension/radiant/gestures/LyricsDrag$Guard.smali @@ -0,0 +1,53 @@ +.class public final Lradiant/gestures/LyricsDrag$Guard; +.super Ljava/lang/Object; + +# interfaces +.implements Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection; + +# Blocks leftover scroll from the sheet + + +# static state + +.field public static final INSTANCE:Lradiant/gestures/LyricsDrag$Guard; + + +.method static constructor ()V + .locals 1 + + new-instance v0, Lradiant/gestures/LyricsDrag$Guard; + + invoke-direct {v0}, Lradiant/gestures/LyricsDrag$Guard;->()V + + sput-object v0, Lradiant/gestures/LyricsDrag$Guard;->INSTANCE:Lradiant/gestures/LyricsDrag$Guard; + + return-void +.end method + +.method private constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods + +# Consume what the list didn't use +.method public onPostScroll-DzOQY0M(JJI)J + .locals 0 + + return-wide p3 +.end method + +.method public onPostFling-RZ2iAVY(JJLkotlin/coroutines/e;)Ljava/lang/Object; + .locals 2 + + invoke-static {p3, p4}, Landroidx/compose/ui/unit/Velocity;->box-impl(J)Landroidx/compose/ui/unit/Velocity; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/gestures/LyricsDrag.smali b/patches/extension/radiant/gestures/LyricsDrag.smali new file mode 100644 index 0000000..d80bac7 --- /dev/null +++ b/patches/extension/radiant/gestures/LyricsDrag.smali @@ -0,0 +1,28 @@ +.class public final Lradiant/gestures/LyricsDrag; +.super Ljava/lang/Object; + +# Stops lyrics scroll dismissing the player + + +.method private constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + +# Stop leftover scroll reaching the sheet +.method public static wrap(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; + .locals 2 + + sget-object v0, Lradiant/gestures/LyricsDrag$Guard;->INSTANCE:Lradiant/gestures/LyricsDrag$Guard; + + const/4 v1, 0x0 + + invoke-static {p0, v0, v1}, Landroidx/compose/ui/input/nestedscroll/NestedScrollModifierKt;->nestedScroll(Landroidx/compose/ui/Modifier;Landroidx/compose/ui/input/nestedscroll/NestedScrollConnection;Landroidx/compose/ui/input/nestedscroll/NestedScrollDispatcher;)Landroidx/compose/ui/Modifier; + + move-result-object p0 + + return-object p0 +.end method diff --git a/patches/extension/radiant/MiniPlayerGestures$ApplyPending.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali similarity index 52% rename from patches/extension/radiant/MiniPlayerGestures$ApplyPending.smali rename to patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali index d54eaaf..e2b20da 100644 --- a/patches/extension/radiant/MiniPlayerGestures$ApplyPending.smali +++ b/patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali @@ -1,10 +1,10 @@ -.class public final Lradiant/MiniPlayerGestures$ApplyPending; +.class public final Lradiant/gestures/MiniPlayerGestures$ApplyPending; .super Ljava/lang/Object; .implements Ljava/lang/Runnable; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerGestures; + value = Lradiant/gestures/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -25,9 +25,9 @@ invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; + iput-object p1, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; - iput p2, p0, Lradiant/MiniPlayerGestures$ApplyPending;->b:I + iput p2, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->b:I return-void .end method @@ -39,23 +39,23 @@ .method public final run()V .locals 3 - iget-object v0, p0, Lradiant/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; - invoke-static {v0}, Lradiant/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V - iget v1, p0, Lradiant/MiniPlayerGestures$ApplyPending;->b:I + iget v1, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->b:I add-int/lit8 v1, v1, -0x1 if-lez v1, :done - invoke-static {v0}, Lradiant/MiniPlayerGestures;->needsApply(Landroidx/compose/material3/SheetState;)Z + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->needsApply(Landroidx/compose/material3/SheetState;)Z move-result v2 if-eqz v2, :done - invoke-static {v0, v1}, Lradiant/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V :done return-void diff --git a/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali similarity index 60% rename from patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali rename to patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali index e11fad1..e344d11 100644 --- a/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali +++ b/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerGestures$FeedbackLayer; +.class public final Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; .super Ljava/lang/Object; .implements Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerGestures; + value = Lradiant/gestures/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,18 +15,18 @@ # static fields -.field public static final INSTANCE:Lradiant/MiniPlayerGestures$FeedbackLayer; +.field public static final INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lradiant/MiniPlayerGestures$FeedbackLayer; + new-instance v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; - invoke-direct {v0}, Lradiant/MiniPlayerGestures$FeedbackLayer;->()V + invoke-direct {v0}, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->()V - sput-object v0, Lradiant/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/MiniPlayerGestures$FeedbackLayer; + sput-object v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; return-void .end method @@ -44,7 +44,7 @@ .method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; .locals 1 - sget-object v0, Lradiant/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -62,7 +62,7 @@ check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerGestures$FeedbackResetAnimator.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali similarity index 75% rename from patches/extension/radiant/MiniPlayerGestures$FeedbackResetAnimator.smali rename to patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali index e0f1c4b..b957874 100644 --- a/patches/extension/radiant/MiniPlayerGestures$FeedbackResetAnimator.smali +++ b/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerGestures$FeedbackResetAnimator; +.class public final Lradiant/gestures/MiniPlayerGestures$FeedbackResetAnimator; .super Ljava/lang/Object; .implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerGestures; + value = Lradiant/gestures/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -41,7 +41,7 @@ move-result v1 - invoke-static {v1}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v1}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V invoke-virtual {v0}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F @@ -53,7 +53,7 @@ if-gez v1, :done - invoke-static {v0}, Lradiant/MiniPlayerGestures;->clearSwipeFeedbackAnimator(Landroid/animation/ValueAnimator;)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clearSwipeFeedbackAnimator(Landroid/animation/ValueAnimator;)V :done return-void diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali new file mode 100644 index 0000000..0007797 --- /dev/null +++ b/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali @@ -0,0 +1,521 @@ +.class public final Lradiant/gestures/MiniPlayerGestures$Gesture; +.super Ljava/lang/Object; +.implements Lam0/l; + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/gestures/MiniPlayerGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "Gesture" +.end annotation + + +# instance fields +.field public final a:Lam0/l; + +# Y at ACTION_DOWN +.field public b:F + +# Last Y seen (on this pointer stream) +.field public c:F + +# True while this listener owns an active pointer stream +.field public d:Z + +# True when sheet drag has started +.field public e:Z + +.field public final f:Landroidx/compose/material3/SheetState; + +.field public g:F + +# X at ACTION_DOWN +.field public i:F + +# True once horizontal movement wins (prevents later vertical start) +.field public j:Z + +# Drag option enabled +.field public final k:Z + + +# direct methods +.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;Z)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->a:Lam0/l; + + iput-object p2, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iput-boolean p3, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->k:Z + + return-void +.end method + +.method private static dp(F)F + .locals 1 + + invoke-static {}, Landroid/content/res/Resources;->getSystem()Landroid/content/res/Resources; + + move-result-object v0 + + invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; + + move-result-object v0 + + iget v0, v0, Landroid/util/DisplayMetrics;->density:F + + mul-float/2addr p0, v0 + + return p0 +.end method + +.method private dragSheet(FJ)V + .locals 1 + + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + invoke-static {v0, p1, p2, p3}, Lradiant/gestures/MiniPlayerGestures;->updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V + + return-void +.end method + +.method private finishSheet(F)V + .locals 2 + + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget-object v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->a:Lam0/l; + + invoke-static {v0, v1, p1}, Lradiant/gestures/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V + + return-void +.end method + +.method private openPlayer()V + .locals 2 + + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->a:Lam0/l; + + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; + + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + return-void +.end method + +.method private reset()V + .locals 1 + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->d:Z + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->j:Z + + const/4 v0, 0x0 + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->i:F + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->g:F + + return-void +.end method + +.method private startSheet(FJ)V + .locals 2 + + # empty player guard + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->hasMiniPlayerMedia()Z + + move-result v0 + + if-nez v0, :start_guard + + return-void + + :start_guard + + # avoid starting twice + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :start + + return-void + + :start + const/4 v0, 0x1 + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->b:F + + invoke-static {v1, p1, v0, p2, p3}, Lradiant/gestures/MiniPlayerGestures;->beginDrag(Landroidx/compose/material3/SheetState;FFJ)V + + invoke-direct {p0}, Lradiant/gestures/MiniPlayerGestures$Gesture;->openPlayer()V + + :done + return-void +.end method + + +# virtual methods +# Listens for MotionEvents +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; + .locals 11 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I + + move-result v0 + + if-eqz v0, :down + + const/4 v1, 0x1 + + if-eq v0, v1, :up + + const/4 v1, 0x2 + + if-eq v0, v1, :move + + const/4 v1, 0x3 + + if-eq v0, v1, :cancel + + goto :done + + # ACTION_DOWN + :down + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V + + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->beginMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->b:F + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->c:F + + const/4 v0, 0x1 + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->d:Z + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + const/4 v0, 0x0 + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->g:F + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v0 + + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->i:F + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->j:Z + + iget v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->b:F + + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->beginSwipeGesture(F)V + + :skip_feedback_down + + goto :done + + # ACTION_MOVE + :move + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->d:Z + + if-eqz v0, :done + + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J + + move-result-wide v5 + + iget v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->c:F + + sub-float v1, v0, v1 + + iput v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->g:F + + iget v2, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->b:F + + sub-float v2, v0, v2 + + iget-boolean v3, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v3, :maybe_start + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->suppressHorizontalGestures()V + + iget-boolean v3, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v3, :feedback_active + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/MiniPlayerGestures$Gesture;->dragSheet(FJ)V + + :feedback_active + invoke-static {v2}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + + goto :store_last + + :maybe_start + iget-boolean v3, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->j:Z + + if-eqz v3, :axis_check + + goto :store_last + + :axis_check + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v7 + + iget v8, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->i:F + + sub-float/2addr v7, v8 + + invoke-static {v7}, Ljava/lang/Math;->abs(F)F + + move-result v7 + + invoke-static {v2}, Ljava/lang/Math;->abs(F)F + + move-result v8 + + const/high16 v9, 0x40c00000 # 6.0f axis deadzone + + invoke-static {v9}, Lradiant/gestures/MiniPlayerGestures$Gesture;->dp(F)F + + move-result v9 + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isHorizontalGestureLocked()Z + + move-result v10 + + if-eqz v10, :horizontal_check + + const/4 v10, 0x0 + + invoke-static {v10}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + + goto :store_last + + :horizontal_check + + cmpg-float v10, v7, v9 + + if-gez v10, :horizontal_dominance + + goto :vertical_check + + :horizontal_dominance + + const v10, 0x3f8ccccd # 1.1f + + mul-float/2addr v10, v8 + + cmpg-float v10, v7, v10 + + if-gez v10, :horizontal_wins + + goto :vertical_check + + :horizontal_wins + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->lockHorizontalGesture()Z + + move-result v10 + + if-eqz v10, :store_last + + const/4 v10, 0x1 + + iput-boolean v10, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->j:Z + + const/4 v10, 0x0 + + invoke-static {v10}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + + goto :store_last + + # At least 16dp up to open the player + :vertical_check + neg-float v9, v9 + + cmpg-float v10, v2, v9 + + if-lez v10, :vertical_dominance + + invoke-static {v2}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + + goto :store_last + + :vertical_dominance + const v10, 0x3f8ccccd # 1.1f -> early vertical axis lock + + mul-float/2addr v7, v10 + + cmpl-float v10, v8, v7 + + if-gtz v10, :begin + + goto :store_last + + :begin + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->lockVerticalGesture()Z + + move-result v10 + + if-eqz v10, :store_last + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/MiniPlayerGestures$Gesture;->startSheet(FJ)V + + iget-boolean v10, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v10, :store_last + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->suppressHorizontalGestures()V + + iget-boolean v10, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v10, :feedback_begin + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/MiniPlayerGestures$Gesture;->dragSheet(FJ)V + + :feedback_begin + invoke-static {v2}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + + + :store_last + iput v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->c:F + + goto :done + + # ACTION_UP + :up + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->d:Z + + if-eqz v0, :done + + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :up_no_drag + + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v0, :open_simple + + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J + + move-result-wide v5 + + iget-object v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + invoke-static {v1, v0, v5, v6}, Lradiant/gestures/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + invoke-static {v1}, Lradiant/gestures/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F + + move-result v0 + + invoke-direct {p0, v0}, Lradiant/gestures/MiniPlayerGestures$Gesture;->finishSheet(F)V + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :finish + + :up_no_drag + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :finish + + :open_simple + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->suppressHorizontalGestures()V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + iget-object v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->a:Lam0/l; + + invoke-static {v1, v0}, Lradiant/gestures/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + + :finish + invoke-direct {p0}, Lradiant/gestures/MiniPlayerGestures$Gesture;->reset()V + + goto :done + + # ACTION_CANCEL + :cancel + iget-boolean v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :cancel_no_active + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget-object v1, p0, Lradiant/gestures/MiniPlayerGestures$Gesture;->a:Lam0/l; + + invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V + + goto :cancel_reset + + :cancel_no_active + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + :cancel_reset + invoke-direct {p0}, Lradiant/gestures/MiniPlayerGestures$Gesture;->reset()V + + + :done + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + + return-object p1 +.end method + +.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; + .locals 0 + + check-cast p1, Landroid/view/MotionEvent; + + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali new file mode 100644 index 0000000..54fd219 --- /dev/null +++ b/patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali @@ -0,0 +1,178 @@ +.class public final Lradiant/gestures/MiniPlayerGestures$RootGesture; +.super Ljava/lang/Object; +.implements Lam0/l; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/gestures/MiniPlayerGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "RootGesture" +.end annotation + + +# instance fields +.field public final a:Lam0/l; + +.field public final b:Landroidx/compose/material3/SheetState; + + +# direct methods +.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->a:Lam0/l; + + iput-object p2, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; + + return-void +.end method + + +# virtual methods +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; + .locals 6 + + iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I + + move-result v1 + + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + + move-result v2 + + if-eqz v2, :maybe_reset_only + + const/4 v2, 0x1 + + if-eq v1, v2, :up + + const/4 v2, 0x2 + + if-eq v1, v2, :move + + const/4 v2, 0x3 + + if-eq v1, v2, :cancel + + goto :done + + :maybe_reset_only + const/4 v2, 0x1 + + if-eq v1, v2, :simple_up + + const/4 v2, 0x3 + + if-eq v1, v2, :reset_only + + const/4 v2, 0x2 + + if-eq v1, v2, :simple_move + + goto :done + + :reset_only + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + :simple_move + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + invoke-static {v1}, Lradiant/gestures/MiniPlayerGestures;->updateSimpleSwipe(F)Z + + goto :done + + :simple_up + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + iget-object v2, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->a:Lam0/l; + + invoke-static {v2, v1}, Lradiant/gestures/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + + # ACTION_MOVE + :move + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v2 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J + + move-result-wide v4 + + invoke-static {v0, v2, v4, v5}, Lradiant/gestures/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + goto :done + + # ACTION_UP + :up + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->trackMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getEventTime()J + + move-result-wide v4 + + invoke-static {v0, v1, v4, v5}, Lradiant/gestures/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F + + move-result v1 + + iget-object v2, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->a:Lam0/l; + + invoke-static {v0, v2, v1}, Lradiant/gestures/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + # ACTION_CANCEL + :cancel + iget-object v2, p0, Lradiant/gestures/MiniPlayerGestures$RootGesture;->a:Lam0/l; + + invoke-static {v0, v2}, Lradiant/gestures/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V + + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + :done + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + + return-object p1 +.end method + +.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; + .locals 0 + + check-cast p1, Landroid/view/MotionEvent; + + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerGestures$RootGesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/MiniPlayerGestures.smali b/patches/extension/radiant/gestures/MiniPlayerGestures.smali similarity index 65% rename from patches/extension/radiant/MiniPlayerGestures.smali rename to patches/extension/radiant/gestures/MiniPlayerGestures.smali index bec29e9..2b95ac1 100644 --- a/patches/extension/radiant/MiniPlayerGestures.smali +++ b/patches/extension/radiant/gestures/MiniPlayerGestures.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/MiniPlayerGestures; +.class public final Lradiant/gestures/MiniPlayerGestures; .super Ljava/lang/Object; @@ -82,7 +82,7 @@ move-result-object v0 - sput-object v0, Lradiant/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; return-void .end method @@ -98,7 +98,7 @@ .method public static animateSwipeFeedbackReset()V .locals 7 - sget-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :read_offset @@ -106,10 +106,10 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :read_offset - sget-object v0, Lradiant/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -155,20 +155,20 @@ invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V - new-instance v0, Lradiant/MiniPlayerGestures$FeedbackResetAnimator; + new-instance v0, Lradiant/gestures/MiniPlayerGestures$FeedbackResetAnimator; - invoke-direct {v0}, Lradiant/MiniPlayerGestures$FeedbackResetAnimator;->()V + invoke-direct {v0}, Lradiant/gestures/MiniPlayerGestures$FeedbackResetAnimator;->()V invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - sput-object v1, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v1, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; invoke-virtual {v1}, Landroid/animation/ValueAnimator;->start()V return-void :snap_zero - invoke-static {v3}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v3}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -176,7 +176,7 @@ .method public static beginSwipeFeedback()V .locals 1 - sget-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :zero @@ -184,12 +184,12 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -197,13 +197,13 @@ .method public static beginSwipeGesture(F)V .locals 1 - sput p0, Lradiant/MiniPlayerGestures;->y:F + sput p0, Lradiant/gestures/MiniPlayerGestures;->y:F const/4 v0, 0x0 - sput v0, Lradiant/MiniPlayerGestures;->z:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->z:F - invoke-static {}, Lradiant/MiniPlayerGestures;->beginSwipeFeedback()V + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->beginSwipeFeedback()V return-void .end method @@ -211,11 +211,11 @@ .method public static applyPendingDrag(Landroidx/compose/material3/SheetState;)V .locals 5 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-eqz v0, :done - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :done @@ -238,15 +238,15 @@ move-result v4 # targetOffset = startRawY + dragOffset - hiddenAnchor. - sget v0, Lradiant/MiniPlayerGestures;->e:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->e:F - sget v1, Lradiant/MiniPlayerGestures;->c:F + sget v1, Lradiant/gestures/MiniPlayerGestures;->c:F add-float/2addr v0, v1 sub-float/2addr v0, v4 - sget v1, Lradiant/MiniPlayerGestures;->d:F + sget v1, Lradiant/gestures/MiniPlayerGestures;->d:F sub-float v2, v0, v1 @@ -260,11 +260,11 @@ move-result v2 - sget v0, Lradiant/MiniPlayerGestures;->d:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->d:F add-float/2addr v0, v2 - sput v0, Lradiant/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F :done return-void @@ -309,44 +309,44 @@ .method public static beginDrag(Landroidx/compose/material3/SheetState;FFJ)V .locals 1 - sput-object p0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sput-object p0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; const/4 v0, 0x1 - sput-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z - sput p1, Lradiant/MiniPlayerGestures;->c:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->c:F const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object v0, Lradiant/MiniPlayerGestures;->h:Lam0/l; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; - sput v0, Lradiant/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F - sput p2, Lradiant/MiniPlayerGestures;->e:F + sput p2, Lradiant/gestures/MiniPlayerGestures;->e:F - sput v0, Lradiant/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F - sput p1, Lradiant/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F - sput v0, Lradiant/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F - sget v0, Lradiant/MiniPlayerGestures;->n:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->n:F - sput v0, Lradiant/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F - sput-wide p3, Lradiant/MiniPlayerGestures;->i:J + sput-wide p3, Lradiant/gestures/MiniPlayerGestures;->i:J - sput-wide p3, Lradiant/MiniPlayerGestures;->k:J + sput-wide p3, Lradiant/gestures/MiniPlayerGestures;->k:J # Try immediately then retry because anchors can be created one frame later - invoke-static {p0}, Lradiant/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/16 v0, 0xa - invoke-static {p0, v0}, Lradiant/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V return-void .end method @@ -354,7 +354,7 @@ .method public static beginMotion(Landroid/view/MotionEvent;)V .locals 2 - sget-object v0, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-eqz v0, :obtain @@ -365,7 +365,7 @@ move-result-object v0 - sput-object v0, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; const/4 v1, 0x0 @@ -373,15 +373,15 @@ move-result v1 - sput v1, Lradiant/MiniPlayerGestures;->p:I + sput v1, Lradiant/gestures/MiniPlayerGestures;->p:I - invoke-static {v0, p0}, Lradiant/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V + invoke-static {v0, p0}, Lradiant/gestures/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V invoke-virtual {p0}, Landroid/view/MotionEvent;->getRawX()F move-result v1 - sput v1, Lradiant/MiniPlayerGestures;->n:F + sput v1, Lradiant/gestures/MiniPlayerGestures;->n:F return-void .end method @@ -389,31 +389,31 @@ .method public static endDrag(Landroidx/compose/material3/SheetState;)V .locals 3 - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :done const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z - sput v0, Lradiant/MiniPlayerGestures;->c:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->c:F - sput v0, Lradiant/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F - sput v0, Lradiant/MiniPlayerGestures;->e:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->e:F - sput v0, Lradiant/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F - sput v0, Lradiant/MiniPlayerGestures;->j:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->j:F - sput v0, Lradiant/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F - sput v0, Lradiant/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F - sput v0, Lradiant/MiniPlayerGestures;->n:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->n:F - sget-object v2, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v2, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-eqz v2, :motion_recycled @@ -421,17 +421,17 @@ const/4 v2, 0x0 - sput-object v2, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v2, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; :motion_recycled const/4 v1, 0x0 - sput-object v1, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sput-object v1, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; const-wide/16 v0, 0x0 - sput-wide v0, Lradiant/MiniPlayerGestures;->k:J + sput-wide v0, Lradiant/gestures/MiniPlayerGestures;->k:J :done return-void @@ -440,13 +440,13 @@ .method public static cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V .locals 1 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result v0 if-eqz v0, :done - invoke-static {p0}, Lradiant/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; @@ -459,27 +459,27 @@ .method public static finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V .locals 6 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result v0 if-eqz v0, :done - sget-object v0, Lradiant/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; if-ne v0, p0, :fallback_snap - sget-object v0, Lradiant/MiniPlayerGestures;->h:Lam0/l; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; if-eqz v0, :fallback_snap - invoke-static {p0, p2}, Lradiant/MiniPlayerGestures;->prepareSettleVelocity(Landroidx/compose/material3/SheetState;F)F + invoke-static {p0, p2}, Lradiant/gestures/MiniPlayerGestures;->prepareSettleVelocity(Landroidx/compose/material3/SheetState;F)F move-result p2 :native_settle - invoke-static {p0}, Lradiant/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V invoke-static {p2}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; @@ -578,14 +578,14 @@ invoke-static {v0, v3}, Landroidx/compose/material3/internal/AnchoredDraggableState;->access$setLastVelocity(Landroidx/compose/material3/internal/AnchoredDraggableState;F)V - invoke-static {p0}, Lradiant/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V sget-object v3, Landroidx/compose/material3/SheetValue;->Hidden:Landroidx/compose/material3/SheetValue; if-ne v2, v3, :done :close - invoke-static {p0}, Lradiant/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; @@ -598,11 +598,11 @@ .method public static isDragging(Landroidx/compose/material3/SheetState;)Z .locals 1 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :no @@ -619,11 +619,11 @@ .method public static isAnyDragging()Z .locals 1 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-nez v0, :yes - invoke-static {}, Lradiant/MiniPlayerGestures;->isHorizontalGestureSuppressed()Z + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isHorizontalGestureSuppressed()Z move-result v0 @@ -638,7 +638,7 @@ .method public static isHorizontalGestureSuppressed()Z .locals 2 - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x1 @@ -657,7 +657,7 @@ .method public static isHorizontalGestureLocked()Z .locals 2 - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -676,7 +676,7 @@ .method public static lockHorizontalGesture()Z .locals 2 - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x1 @@ -689,7 +689,7 @@ :lock const/4 v0, 0x2 - sput v0, Lradiant/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v0, 0x1 @@ -702,11 +702,11 @@ const/4 v0, 0x0 - sput v0, Lradiant/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I - sput v0, Lradiant/MiniPlayerGestures;->y:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->y:F - sput v0, Lradiant/MiniPlayerGestures;->z:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->z:F return-void .end method @@ -714,7 +714,7 @@ .method public static lockVerticalGesture()Z .locals 2 - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -727,7 +727,7 @@ :lock const/4 v0, 0x1 - sput v0, Lradiant/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I return v0 .end method @@ -735,7 +735,7 @@ .method public static hasMiniPlayerMedia()Z .locals 1 - sget-boolean v0, Lradiant/MiniPlayerGestures;->r:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->r:Z return v0 .end method @@ -743,7 +743,7 @@ .method public static setHasMiniPlayerMedia(Z)V .locals 0 - sput-boolean p0, Lradiant/MiniPlayerGestures;->r:Z + sput-boolean p0, Lradiant/gestures/MiniPlayerGestures;->r:Z return-void .end method @@ -751,11 +751,11 @@ .method public static configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V .locals 0 - sput-object p0, Lradiant/MiniPlayerGestures;->s:Lam0/l; + sput-object p0, Lradiant/gestures/MiniPlayerGestures;->s:Lam0/l; - sput-object p1, Lradiant/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + sput-object p1, Lradiant/gestures/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; - sput-boolean p2, Lradiant/MiniPlayerGestures;->u:Z + sput-boolean p2, Lradiant/gestures/MiniPlayerGestures;->u:Z return-void .end method @@ -763,13 +763,13 @@ .method public static clearSwipeFeedbackAnimator(Landroid/animation/ValueAnimator;)V .locals 1 - sget-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-ne v0, p0, :done const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :done return-void @@ -796,7 +796,7 @@ .method public static feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 1 - sget-object v0, Lradiant/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/MiniPlayerGestures$FeedbackLayer; + sget-object v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; @@ -812,7 +812,7 @@ move-result v0 - invoke-static {}, Lradiant/MiniPlayerGestures;->minFlingVelocity()F + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->minFlingVelocity()F move-result v1 @@ -851,9 +851,9 @@ .method public static modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; .locals 1 - new-instance v0, Lradiant/MiniPlayerGestures$Gesture; + new-instance v0, Lradiant/gestures/MiniPlayerGestures$Gesture; - invoke-direct {v0, p1, p2, p3}, Lradiant/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V + invoke-direct {v0, p1, p2, p3}, Lradiant/gestures/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; @@ -865,17 +865,17 @@ .method public static trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 3 - sget-object v0, Lradiant/MiniPlayerGestures;->s:Lam0/l; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->s:Lam0/l; if-eqz v0, :done - sget-object v1, Lradiant/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + sget-object v1, Lradiant/gestures/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; if-eqz v1, :done - sget-boolean v2, Lradiant/MiniPlayerGestures;->u:Z + sget-boolean v2, Lradiant/gestures/MiniPlayerGestures;->u:Z - invoke-static {p0, v0, v1, v2}, Lradiant/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0, v1, v2}, Lradiant/gestures/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -892,7 +892,7 @@ if-gtz v0, :snap_zero - sget-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :rubber_band @@ -900,7 +900,7 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :rubber_band invoke-static {p0}, Ljava/lang/Math;->abs(F)F @@ -909,7 +909,7 @@ const/high16 v1, 0x41800000 # 16.0f dp travel - invoke-static {v1}, Lradiant/MiniPlayerGestures;->dp(F)F + invoke-static {v1}, Lradiant/gestures/MiniPlayerGestures;->dp(F)F move-result v1 @@ -936,12 +936,12 @@ neg-float p0, v0 :publish - invoke-static {p0}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void :snap_zero - invoke-static {v4}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v4}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -949,7 +949,7 @@ .method public static setSwipeFeedbackFromDrag(F)V .locals 3 - sput p0, Lradiant/MiniPlayerGestures;->z:F + sput p0, Lradiant/gestures/MiniPlayerGestures;->z:F const/4 v0, 0x0 @@ -957,14 +957,14 @@ if-ltz v1, :maybe_up - invoke-static {v0}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void :maybe_up const/high16 v0, 0x40c00000 # 6.0f feedback deadzone - invoke-static {v0}, Lradiant/MiniPlayerGestures;->dp(F)F + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->dp(F)F move-result v0 @@ -976,14 +976,14 @@ add-float/2addr p0, v0 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->setSwipeFeedback(F)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedback(F)V return-void :snap_zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -991,29 +991,29 @@ .method public static completeSimpleSwipe(Lam0/l;F)Z .locals 4 - sget-boolean v0, Lradiant/MiniPlayerGestures;->u:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->u:Z if-nez v0, :no - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x1 if-ne v0, v1, :no - sget-boolean v0, Lradiant/MiniPlayerGestures;->r:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->r:Z if-eqz v0, :consume_no - sget v0, Lradiant/MiniPlayerGestures;->y:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->y:F sub-float/2addr p1, v0 - sput p1, Lradiant/MiniPlayerGestures;->z:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->z:F const/high16 v0, 0x42400000 # 48.0f release threshold - invoke-static {v0}, Lradiant/MiniPlayerGestures;->dp(F)F + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->dp(F)F move-result v0 @@ -1024,14 +1024,14 @@ if-lez v2, :open :consume_no - invoke-static {}, Lradiant/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V const/4 v0, 0x0 return v0 :open - invoke-static {}, Lradiant/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; @@ -1050,21 +1050,21 @@ .method public static updateSimpleSwipe(F)Z .locals 3 - sget-boolean v0, Lradiant/MiniPlayerGestures;->u:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->u:Z if-nez v0, :no - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x1 if-ne v0, v1, :no - sget v0, Lradiant/MiniPlayerGestures;->y:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->y:F sub-float/2addr p0, v0 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V const/4 v0, 0x1 @@ -1079,7 +1079,7 @@ .method public static setSwipeFeedbackDirect(F)V .locals 1 - sget-object v0, Lradiant/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0, p0}, Landroidx/compose/runtime/MutableFloatState;->setFloatValue(F)V @@ -1089,7 +1089,7 @@ .method public static suppressHorizontalGestures()V .locals 2 - sget v0, Lradiant/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -1100,7 +1100,7 @@ :lock const/4 v0, 0x1 - sput v0, Lradiant/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I return-void .end method @@ -1224,13 +1224,13 @@ .method public static releaseVelocity(Landroidx/compose/material3/SheetState;)F .locals 6 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result p0 if-eqz p0, :zero - sget-object v0, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-eqz v0, :sampled_velocity @@ -1240,38 +1240,38 @@ invoke-virtual {v0, v1, v2}, Landroid/view/VelocityTracker;->computeCurrentVelocity(IF)V - sget v1, Lradiant/MiniPlayerGestures;->p:I + sget v1, Lradiant/gestures/MiniPlayerGestures;->p:I invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->getYVelocity(I)F move-result p0 - invoke-static {p0}, Lradiant/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result p0 - sget v1, Lradiant/MiniPlayerGestures;->p:I + sget v1, Lradiant/gestures/MiniPlayerGestures;->p:I invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->getXVelocity(I)F move-result v0 - invoke-static {v0}, Lradiant/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result v0 goto :have_velocity :sampled_velocity - sget p0, Lradiant/MiniPlayerGestures;->f:F + sget p0, Lradiant/gestures/MiniPlayerGestures;->f:F - invoke-static {p0}, Lradiant/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result p0 - sget v0, Lradiant/MiniPlayerGestures;->l:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->l:F - invoke-static {v0}, Lradiant/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result v0 @@ -1310,9 +1310,9 @@ .method public static rootModifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; .locals 1 - new-instance v0, Lradiant/MiniPlayerGestures$RootGesture; + new-instance v0, Lradiant/gestures/MiniPlayerGestures$RootGesture; - invoke-direct {v0, p1, p2}, Lradiant/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V + invoke-direct {v0, p1, p2}, Lradiant/gestures/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; @@ -1324,9 +1324,9 @@ .method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V .locals 0 - sput-object p0, Lradiant/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sput-object p0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object p1, Lradiant/MiniPlayerGestures;->h:Lam0/l; + sput-object p1, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; return-void .end method @@ -1334,7 +1334,7 @@ .method public static trackMotion(Landroid/view/MotionEvent;)V .locals 2 - sget-object v0, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-nez v0, :have_tracker @@ -1342,16 +1342,16 @@ move-result-object v0 - sput-object v0, Lradiant/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; :have_tracker - invoke-static {v0, p0}, Lradiant/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V + invoke-static {v0, p0}, Lradiant/gestures/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V invoke-virtual {p0}, Landroid/view/MotionEvent;->getRawX()F move-result v1 - sput v1, Lradiant/MiniPlayerGestures;->n:F + sput v1, Lradiant/gestures/MiniPlayerGestures;->n:F return-void .end method @@ -1359,17 +1359,17 @@ .method public static needsApply(Landroidx/compose/material3/SheetState;)Z .locals 3 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :no - sget v0, Lradiant/MiniPlayerGestures;->c:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->c:F - sget v1, Lradiant/MiniPlayerGestures;->d:F + sget v1, Lradiant/gestures/MiniPlayerGestures;->d:F sub-float/2addr v0, v1 @@ -1406,9 +1406,9 @@ invoke-direct {v0, v1}, Landroid/os/Handler;->(Landroid/os/Looper;)V - new-instance v1, Lradiant/MiniPlayerGestures$ApplyPending; + new-instance v1, Lradiant/gestures/MiniPlayerGestures$ApplyPending; - invoke-direct {v1, p0, p1}, Lradiant/MiniPlayerGestures$ApplyPending;->(Landroidx/compose/material3/SheetState;I)V + invoke-direct {v1, p0, p1}, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->(Landroidx/compose/material3/SheetState;I)V const-wide/16 v2, 0x10 @@ -1421,15 +1421,15 @@ .method public static updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V .locals 8 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-eqz v0, :done - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :done - sget v0, Lradiant/MiniPlayerGestures;->c:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->c:F sub-float v0, p1, v0 @@ -1439,11 +1439,11 @@ if-eqz v1, :no_movement - sput-wide p2, Lradiant/MiniPlayerGestures;->i:J + sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->i:J - sput p1, Lradiant/MiniPlayerGestures;->c:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->c:F - sget-wide v1, Lradiant/MiniPlayerGestures;->k:J + sget-wide v1, Lradiant/gestures/MiniPlayerGestures;->k:J sub-long v1, p2, v1 @@ -1454,7 +1454,7 @@ if-gez v5, :apply :sample_velocity - sget v0, Lradiant/MiniPlayerGestures;->j:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->j:F sub-float v0, p1, v0 @@ -1462,9 +1462,9 @@ const/high16 v2, 0x447a0000 # 1000.0f - sget v6, Lradiant/MiniPlayerGestures;->n:F + sget v6, Lradiant/gestures/MiniPlayerGestures;->n:F - sget v7, Lradiant/MiniPlayerGestures;->m:F + sget v7, Lradiant/gestures/MiniPlayerGestures;->m:F sub-float v6, v6, v7 @@ -1497,7 +1497,7 @@ move v0, v1 :store_velocity - sput v0, Lradiant/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F const v1, 0x469c4000 # 20000.0f @@ -1520,20 +1520,20 @@ move v6, v1 :store_x_velocity - sput v6, Lradiant/MiniPlayerGestures;->l:F + sput v6, Lradiant/gestures/MiniPlayerGestures;->l:F - sput p1, Lradiant/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F - sget v6, Lradiant/MiniPlayerGestures;->n:F + sget v6, Lradiant/gestures/MiniPlayerGestures;->n:F - sput v6, Lradiant/MiniPlayerGestures;->m:F + sput v6, Lradiant/gestures/MiniPlayerGestures;->m:F - sput-wide p2, Lradiant/MiniPlayerGestures;->k:J + sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->k:J goto :apply :no_movement - sget-wide v1, Lradiant/MiniPlayerGestures;->k:J + sget-wide v1, Lradiant/gestures/MiniPlayerGestures;->k:J sub-long v1, p2, v1 @@ -1549,27 +1549,27 @@ const/4 v0, 0x0 - sput v0, Lradiant/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F - sput v0, Lradiant/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F - sput p1, Lradiant/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F - sget v0, Lradiant/MiniPlayerGestures;->n:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->n:F - sput v0, Lradiant/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F - sput-wide p2, Lradiant/MiniPlayerGestures;->k:J + sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->k:J :apply - invoke-static {p1}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V - invoke-static {p0}, Lradiant/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/4 v0, 0x3 - invoke-static {p0, v0}, Lradiant/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V :done return-void @@ -1578,11 +1578,11 @@ .method public static updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V .locals 1 - sget v0, Lradiant/MiniPlayerGestures;->e:F + sget v0, Lradiant/gestures/MiniPlayerGestures;->e:F sub-float/2addr p1, v0 - invoke-static {p0, p1, p2, p3}, Lradiant/MiniPlayerGestures;->updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V + invoke-static {p0, p1, p2, p3}, Lradiant/gestures/MiniPlayerGestures;->updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V return-void .end method @@ -1590,19 +1590,19 @@ .method public static suppressAutoShow(Landroidx/compose/material3/SheetState;)Z .locals 1 - sget-boolean v0, Lradiant/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :no - invoke-static {p0}, Lradiant/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/4 v0, 0x5 - invoke-static {p0, v0}, Lradiant/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V const/4 v0, 0x1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali similarity index 68% rename from patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali rename to patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali index 7eeb0c5..ca7ada0 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali +++ b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerTrackGestures$Gesture; +.class public final Lradiant/gestures/MiniPlayerTrackGestures$Gesture; .super Ljava/lang/Object; .implements Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerTrackGestures; + value = Lradiant/gestures/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -24,7 +24,7 @@ invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iput-object p1, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; return-void .end method @@ -32,7 +32,7 @@ .method private nextTrack()V .locals 2 - iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iget-object v0, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$a;->a:Lcom/tidal/android/feature/appscaffold/ui/r$a; # Tidal's built-in next track mini-player event @@ -44,7 +44,7 @@ .method private previousTrack()V .locals 2 - iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iget-object v0, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # Our synthetic previous track event @@ -86,7 +86,7 @@ invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v1 - invoke-static {v0, v1}, Lradiant/MiniPlayerTrackGestures;->beginDrag(FF)V + invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->beginDrag(FF)V goto :done # ACTION_MOVE @@ -97,7 +97,7 @@ invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v1 - invoke-static {v0, v1}, Lradiant/MiniPlayerTrackGestures;->moveDrag(FF)V + invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->moveDrag(FF)V goto :done # ACTION_UP @@ -108,7 +108,7 @@ invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v1 - invoke-static {v0, v1}, Lradiant/MiniPlayerTrackGestures;->finishDrag(FF)I + invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->finishDrag(FF)I move-result v0 @@ -117,19 +117,19 @@ # Negative result = swipe left -> next. Positive result = swipe right -> previous if-gez v0, :previous - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-direct {p0}, Lradiant/MiniPlayerTrackGestures$Gesture;->nextTrack()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-direct {p0}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->nextTrack()V goto :done :previous - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-direct {p0}, Lradiant/MiniPlayerTrackGestures$Gesture;->previousTrack()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-direct {p0}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->previousTrack()V goto :done # ACTION_CANCEL :cancel - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->cancelDrag()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->cancelDrag()V :done sget-object p1, Lkotlin/u;->a:Lkotlin/u; @@ -142,7 +142,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali similarity index 59% rename from patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali rename to patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali index c91c480..e0e260c 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali +++ b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerTrackGestures$OffsetLayer; +.class public final Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; .super Ljava/lang/Object; .implements Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerTrackGestures; + value = Lradiant/gestures/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,18 +15,18 @@ # static fields -.field public static final INSTANCE:Lradiant/MiniPlayerTrackGestures$OffsetLayer; +.field public static final INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lradiant/MiniPlayerTrackGestures$OffsetLayer; + new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; - invoke-direct {v0}, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->()V + invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->()V - sput-object v0, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/MiniPlayerTrackGestures$OffsetLayer; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; return-void .end method @@ -44,7 +44,7 @@ .method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; .locals 1 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -62,7 +62,7 @@ check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$ResetAnimator.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali similarity index 75% rename from patches/extension/radiant/MiniPlayerTrackGestures$ResetAnimator.smali rename to patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali index 2f839b0..1acfde8 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$ResetAnimator.smali +++ b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerTrackGestures$ResetAnimator; +.class public final Lradiant/gestures/MiniPlayerTrackGestures$ResetAnimator; .super Ljava/lang/Object; .implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerTrackGestures; + value = Lradiant/gestures/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -40,7 +40,7 @@ move-result v1 - invoke-static {v1}, Lradiant/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v1}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V invoke-virtual {v0}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F @@ -52,7 +52,7 @@ if-gez v1, :done - invoke-static {v0}, Lradiant/MiniPlayerTrackGestures;->clearResetAnimator(Landroid/animation/ValueAnimator;)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerTrackGestures;->clearResetAnimator(Landroid/animation/ValueAnimator;)V :done diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali similarity index 81% rename from patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali rename to patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali index 94590ad..5d153dc 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali +++ b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/MiniPlayerTrackGestures$TextDraw; +.class public final Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; .super Ljava/lang/Object; .implements Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/MiniPlayerTrackGestures; + value = Lradiant/gestures/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,18 +15,18 @@ # static fields -.field public static final INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; +.field public static final INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lradiant/MiniPlayerTrackGestures$TextDraw; + new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; - invoke-direct {v0}, Lradiant/MiniPlayerTrackGestures$TextDraw;->()V + invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->()V - sput-object v0, Lradiant/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; return-void .end method @@ -44,7 +44,7 @@ .method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; .locals 12 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -132,7 +132,7 @@ 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; + invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali similarity index 60% rename from patches/extension/radiant/MiniPlayerTrackGestures.smali rename to patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali index 2f1129d..a89b059 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures.smali +++ b/patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/MiniPlayerTrackGestures; +.class public final Lradiant/gestures/MiniPlayerTrackGestures; .super Ljava/lang/Object; @@ -32,7 +32,7 @@ move-result-object v0 - sput-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; return-void .end method @@ -48,7 +48,7 @@ .method public static animateReset()V .locals 7 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :read_offset @@ -56,10 +56,10 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :read_offset - sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -105,20 +105,20 @@ invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V - new-instance v0, Lradiant/MiniPlayerTrackGestures$ResetAnimator; + new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$ResetAnimator; - invoke-direct {v0}, Lradiant/MiniPlayerTrackGestures$ResetAnimator;->()V + invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$ResetAnimator;->()V invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - sput-object v1, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v1, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; invoke-virtual {v1}, Landroid/animation/ValueAnimator;->start()V return-void :snap_zero - invoke-static {v3}, Lradiant/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v3}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -126,21 +126,21 @@ .method public static beginDrag(FF)V .locals 2 - invoke-static {}, Lradiant/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V - sput p0, Lradiant/MiniPlayerTrackGestures;->e:F + sput p0, Lradiant/gestures/MiniPlayerTrackGestures;->e:F - sput p1, Lradiant/MiniPlayerTrackGestures;->f:F + sput p1, Lradiant/gestures/MiniPlayerTrackGestures;->f:F const/4 v0, 0x1 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - sget-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :zero @@ -148,12 +148,12 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -163,11 +163,11 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V return-void .end method @@ -175,13 +175,13 @@ .method public static clearResetAnimator(Landroid/animation/ValueAnimator;)V .locals 1 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-ne v0, p0, :done const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :done return-void @@ -190,7 +190,7 @@ .method public static finishDrag(FF)I .locals 5 - invoke-static {}, Lradiant/MiniPlayerGestures;->isAnyDragging()Z + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isAnyDragging()Z move-result v0 @@ -198,17 +198,17 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V return v0 :check_active - sget-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z if-nez v0, :active @@ -219,26 +219,26 @@ :active const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z - sget-boolean v1, Lradiant/MiniPlayerTrackGestures;->h:Z + sget-boolean v1, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - sget v2, Lradiant/MiniPlayerTrackGestures;->e:F + sget v2, Lradiant/gestures/MiniPlayerTrackGestures;->e:F sub-float/2addr p0, v2 - sget v2, Lradiant/MiniPlayerTrackGestures;->f:F + sget v2, Lradiant/gestures/MiniPlayerTrackGestures;->f:F sub-float/2addr p1, v2 if-eqz v1, :reset - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V :reset - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V invoke-static {p0}, Ljava/lang/Math;->abs(F)F @@ -246,7 +246,7 @@ const/high16 v2, 0x42400000 # 48.0f -> at least 48dp horizontal swipe - invoke-static {v2}, Lradiant/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v2}, Lradiant/gestures/MiniPlayerTrackGestures;->dp(F)F move-result v2 @@ -291,11 +291,11 @@ .method public static moveDrag(FF)V .locals 6 - sget-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sget-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z if-eqz v0, :done - invoke-static {}, Lradiant/MiniPlayerGestures;->isAnyDragging()Z + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isAnyDragging()Z move-result v0 @@ -303,20 +303,20 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V goto :done :move_continue - sget v0, Lradiant/MiniPlayerTrackGestures;->e:F + sget v0, Lradiant/gestures/MiniPlayerTrackGestures;->e:F sub-float/2addr p0, v0 - sget v0, Lradiant/MiniPlayerTrackGestures;->f:F + sget v0, Lradiant/gestures/MiniPlayerTrackGestures;->f:F sub-float/2addr p1, v0 @@ -328,13 +328,13 @@ move-result v1 - sget-boolean v2, Lradiant/MiniPlayerTrackGestures;->h:Z + sget-boolean v2, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z if-nez v2, :publish const/high16 v2, 0x40c00000 # 6.0f dp dead zone - invoke-static {v2}, Lradiant/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v2}, Lradiant/gestures/MiniPlayerTrackGestures;->dp(F)F move-result v2 @@ -356,7 +356,7 @@ goto :done :accept - invoke-static {}, Lradiant/MiniPlayerGestures;->lockHorizontalGesture()Z + invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->lockHorizontalGesture()Z move-result v2 @@ -364,16 +364,16 @@ const/4 v2, 0x1 - sput-boolean v2, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v2, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z :publish const/4 v2, 0x0 - invoke-static {v2}, Lradiant/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v2}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-static {p0}, Lradiant/MiniPlayerTrackGestures;->setDragOffset(F)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffset(F)V :done return-void @@ -381,11 +381,11 @@ :cancel_locked const/4 v0, 0x0 - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V goto :done .end method @@ -417,7 +417,7 @@ move-result-object p0 - sget-object v0, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/MiniPlayerTrackGestures$OffsetLayer; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; @@ -429,7 +429,7 @@ .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 + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; # text clip on right only invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; @@ -441,7 +441,7 @@ .method public static onRenderedItem(Ljava/lang/Object;)V .locals 2 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; if-eqz v0, :store_initial @@ -451,14 +451,14 @@ if-nez v1, :done - sput-object p0, Lradiant/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sput-object p0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; - invoke-static {}, Lradiant/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V return-void :store_initial - sput-object p0, Lradiant/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sput-object p0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; :done return-void @@ -467,7 +467,7 @@ .method public static consumeTapOpenSuppression()Z .locals 5 - sget-wide v0, Lradiant/MiniPlayerTrackGestures;->a:J + sget-wide v0, Lradiant/gestures/MiniPlayerTrackGestures;->a:J const-wide/16 v2, 0x0 @@ -480,7 +480,7 @@ return v0 :check_time - sput-wide v2, Lradiant/MiniPlayerTrackGestures;->a:J + sput-wide v2, Lradiant/gestures/MiniPlayerTrackGestures;->a:J invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J @@ -511,7 +511,7 @@ add-long/2addr v0, v2 - sput-wide v0, Lradiant/MiniPlayerTrackGestures;->a:J + sput-wide v0, Lradiant/gestures/MiniPlayerTrackGestures;->a:J return-void .end method @@ -519,7 +519,7 @@ .method public static setDragOffset(F)V .locals 5 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :rubber_band @@ -527,7 +527,7 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :rubber_band invoke-static {p0}, Ljava/lang/Math;->abs(F)F @@ -536,7 +536,7 @@ const/high16 v1, 0x42800000 # 64.0f dp free travel - invoke-static {v1}, Lradiant/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v1}, Lradiant/gestures/MiniPlayerTrackGestures;->dp(F)F move-result v1 @@ -575,7 +575,7 @@ :publish - invoke-static {p0}, Lradiant/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {p0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -583,7 +583,7 @@ .method public static setDragOffsetDirect(F)V .locals 1 - sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0, p0}, Landroidx/compose/runtime/MutableFloatState;->setFloatValue(F)V @@ -593,9 +593,9 @@ .method public static trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; .locals 1 - new-instance v0, Lradiant/MiniPlayerTrackGestures$Gesture; + new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture; - invoke-direct {v0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V + invoke-direct {v0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; diff --git a/patches/gestures/lyrics-gesture-scroll-guard.patch b/patches/gestures/lyrics-gesture-scroll-guard.patch new file mode 100644 index 0000000..2705939 --- /dev/null +++ b/patches/gestures/lyrics-gesture-scroll-guard.patch @@ -0,0 +1,13 @@ +--- a/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali +@@ -6107,6 +6107,10 @@ + + move-object v15, v10 + ++ invoke-static {v15}, Lradiant/gestures/LyricsDrag;->wrap(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # lyrics own their scroll ++ ++ move-result-object v15 ++ + .line 61 + invoke-static/range {v15 .. v27}, Landroidx/compose/foundation/lazy/LazyDslKt;->LazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;ZLandroidx/compose/foundation/OverscrollEffect;Lam0/l;Landroidx/compose/runtime/Composer;II)V + diff --git a/patches/mini-player-gestures-left-right.patch b/patches/gestures/mini-player-left-right-gesture.patch similarity index 77% rename from patches/mini-player-gestures-left-right.patch rename to patches/gestures/mini-player-left-right-gesture.patch index 890ea5e..aab9ca2 100644 --- a/patches/mini-player-gestures-left-right.patch +++ b/patches/gestures/mini-player-left-right-gesture.patch @@ -4,7 +4,7 @@ move-result-object v6 -+ invoke-static {v6, v1}, Lradiant/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener ++ invoke-static {v6, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener + + move-result-object v6 + @@ -15,7 +15,7 @@ .line 56 iget-object v11, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->b:Lcom/tidal/android/feature/appscaffold/ui/q; -+ invoke-static {v11}, Lradiant/MiniPlayerTrackGestures;->onRenderedItem(Ljava/lang/Object;)V # reset stale drag offset if track metadata changes mid-gesture ++ invoke-static {v11}, Lradiant/gestures/MiniPlayerTrackGestures;->onRenderedItem(Ljava/lang/Object;)V # reset stale drag offset if track metadata changes mid-gesture + .line 57 invoke-virtual/range {v16 .. v16}, Lcom/squareup/ui/market/core/theme/MarketStylesheet;->getBorderRadii()Lcom/squareup/ui/market/core/theme/MarketStylesheet$b; @@ -24,7 +24,7 @@ move-result-object v6 -+ invoke-static {v6}, Lradiant/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move the whole cover container with horizontal swipe ++ invoke-static {v6}, Lradiant/gestures/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move the whole cover container with horizontal swipe + + move-result-object v6 + @@ -35,7 +35,7 @@ move-result-object v5 -+ invoke-static {v5}, Lradiant/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist ++ invoke-static {v5}, Lradiant/gestures/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist + + move-result-object v5 + @@ -107,7 +107,7 @@ .method public final invoke()Ljava/lang/Object; .locals 2 -+ invoke-static {}, Lradiant/MiniPlayerTrackGestures;->consumeTapOpenSuppression()Z # skip open-player if a horizontal skip-swipe just happened ++ invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->consumeTapOpenSuppression()Z # skip open-player if a horizontal skip-swipe just happened + + move-result v0 + diff --git a/patches/gestures/mini-player-up-gesture.patch b/patches/gestures/mini-player-up-gesture.patch new file mode 100644 index 0000000..68344bd --- /dev/null +++ b/patches/gestures/mini-player-up-gesture.patch @@ -0,0 +1,76 @@ +# rl-locals: com/tidal/android/feature/appscaffold/ui/composable/i.smali b( 52 +--- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali +@@ -1691,6 +1691,14 @@ + + move-result-object v24 + ++ move-object/from16 v49, p5 # gesture expand lambda (AppScaffold Function1 param) ++ ++ move-object/from16 v50, v24 # SheetState ++ ++ const/16 v51, __RL_MINI_PLAYER_SWIPE_UP_DRAG__ # Enable Drag option ++ ++ invoke-static/range {v49 .. v51}, Lradiant/gestures/MiniPlayerGestures;->configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet ++ + .line 69 + invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/ProvidableCompositionLocal; + +--- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +@@ -712,6 +712,22 @@ + + iget-object v3, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->c:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; + ++ iget-object v5, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->a:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # currently rendered mini player media type ++ ++ sget-object v6, Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;->Unknown:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # Unknown = no media playing ++ ++ if-ne v5, v6, :rl_has_media # prevent swipe up when nothing playing ++ ++ const/4 v5, 0x0 ++ ++ goto :rl_set_media ++ ++ :rl_has_media ++ const/4 v5, 0x1 ++ ++ :rl_set_media ++ invoke-static {v5}, Lradiant/gestures/MiniPlayerGestures;->setHasMiniPlayerMedia(Z)V ++ + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + const v4, -0x571456a1 +@@ -1215,6 +1231,10 @@ + + move-result-object v6 + ++ invoke-static {v6}, Lradiant/gestures/MiniPlayerGestures;->trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # attach swipe up listener ++ ++ move-result-object v6 ++ + .line 38 + sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; + +@@ -1390,6 +1410,10 @@ + + move-result-object v6 + ++ invoke-static {v6}, Lradiant/gestures/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) ++ ++ move-result-object v6 ++ + .line 63 + invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; + +@@ -1501,6 +1525,10 @@ + + move-result-object v5 + ++ invoke-static {v5}, Lradiant/gestures/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist (swipe up feedback) ++ ++ move-result-object v5 ++ + .line 72 + invoke-virtual/range {v32 .. v32}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; + diff --git a/patches/gestures/player-swipe-gesture.patch b/patches/gestures/player-swipe-gesture.patch new file mode 100644 index 0000000..d3dc383 --- /dev/null +++ b/patches/gestures/player-swipe-gesture.patch @@ -0,0 +1,55 @@ +--- a/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali ++++ b/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali +@@ -212,6 +212,12 @@ + .line 24 + iget-object p1, p0, Landroidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1;->$sheetState:Landroidx/compose/material3/SheetState; + ++ invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->suppressAutoShow(Landroidx/compose/material3/SheetState;)Z # avoid Material3 show() taking over manual drag ++ ++ move-result v1 ++ ++ if-nez v1, :skip_show ++ + .line 25 + .line 26 + iput v2, p0, Landroidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1;->label:I +@@ -232,6 +238,7 @@ + .line 34 + return-object v0 + ++ :skip_show + .line 35 + :cond_2 + :goto_0 +--- a/androidx/compose/material3/ModalBottomSheetKt.smali ++++ b/androidx/compose/material3/ModalBottomSheetKt.smali +@@ -1288,12 +1288,18 @@ + + .line 33 + invoke-interface {v5, v12}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V + + .line 34 + :cond_47 ++ move-object v14, v12 # settle callback ++ ++ check-cast v14, Lam0/l; # to Function1 ++ ++ invoke-static {v13, v14}, Lradiant/gestures/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # reuse native settle animation on release ++ + move-object/from16 v32, v12 + + check-cast v32, Lam0/l; + + .line 35 + invoke-interface {v5}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; +--- a/androidx/compose/material3/SheetDefaultsKt.smali ++++ b/androidx/compose/material3/SheetDefaultsKt.smali +@@ -98,7 +98,7 @@ + const/4 v2, 0x0 + + .line 16 +- const/16 v3, 0x12c ++ const/16 v3, 0x64 # 100ms + + .line 17 + .line 18 diff --git a/patches/lyrics-progress-pill.patch b/patches/lyrics-progress-pill.patch index 5923383..98a6653 100644 --- a/patches/lyrics-progress-pill.patch +++ b/patches/lyrics-progress-pill.patch @@ -17,23 +17,7 @@ + + sget-object v18, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; # base modifier + -+ const/16 v19, 0x0 # clickable enabled=true default -+ -+ const/16 v20, 0x0 # null role -+ -+ const/16 v21, 0x0 # null onClickLabel -+ -+ sget-object v22, Lradiant/NoOp;->a:Lradiant/NoOp; # swallow taps -+ -+ const/16 v23, 0xe # default-flag bitmask -+ -+ const/16 v24, 0x0 # synthetic null -+ -+ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lam0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # apply clickable -+ -+ move-result-object v23 # clickable modifier -+ -+ move-object/from16 v0, v23 # mod to low reg ++ move-object/from16 v0, v18 # mod to low reg + + const/4 v1, 0x0 # ignored fraction + @@ -59,6 +43,22 @@ + + invoke-static/range {v23 .. v25}, Landroidx/compose/foundation/layout/PaddingKt;->padding-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier; # apply padding + ++ move-result-object v18 # sized modifier ++ ++ const/16 v19, 0x0 # clickable enabled=true default ++ ++ const/16 v20, 0x0 # null onClickLabel ++ ++ const/16 v21, 0x0 # null role ++ ++ sget-object v22, Lradiant/NoOp;->a:Lradiant/NoOp; # block taps ++ ++ const/16 v23, 0xe # default-flag bitmask ++ ++ const/16 v24, 0x0 # synthetic null ++ ++ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lam0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # taps stop at the pill ++ + move-result-object v18 # final modifier + + const/16 v19, 0x0 # null update lambda diff --git a/patches/lyrics-rl-api-observer.patch b/patches/lyrics-rl-api-observer.patch index 5985e39..73dcc1d 100644 --- a/patches/lyrics-rl-api-observer.patch +++ b/patches/lyrics-rl-api-observer.patch @@ -23,3 +23,14 @@ if-gez v4, :cond_4 .line 68 +@@ -203,6 +212,10 @@ + + .line 71 + :goto_1 ++ invoke-static {v5}, Lradiant/WordLyrics;->primaryLine(I)I # stick to the first overlapping line ++ ++ move-result v5 ++ + iget v4, v2, Lcom/tidal/android/feature/playerscreen/ui/g$c;->c:I + + .line 72 diff --git a/patches/manifest.json b/patches/manifest.json index ca75bbe..cf15ffa 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -80,7 +80,7 @@ "type": "toggle", "key": "context_aware", "title": "Context Aware Lyrics", - "description": "Return a romanized transcription and show that instead of the original script", + "description": "Display voice context cues (adlibs and duet singers get displayed seperately)", "default": true, "token": "RL_CTX_ON" }, @@ -370,15 +370,19 @@ "description": "Adds swipe up gesture to the mini-player to reopen the player", "default": true, "fileNames": [ - "mini-player-gestures.patch" + "mini-player-up-gesture.patch", + "player-swipe-gesture.patch", + "lyrics-gesture-scroll-guard.patch" ], "extensionFiles": [ - "radiant/MiniPlayerGestures.smali", - "radiant/MiniPlayerGestures$Gesture.smali", - "radiant/MiniPlayerGestures$FeedbackLayer.smali", - "radiant/MiniPlayerGestures$FeedbackResetAnimator.smali", - "radiant/MiniPlayerGestures$RootGesture.smali", - "radiant/MiniPlayerGestures$ApplyPending.smali" + "radiant/gestures/MiniPlayerGestures.smali", + "radiant/gestures/MiniPlayerGestures$Gesture.smali", + "radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali", + "radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali", + "radiant/gestures/MiniPlayerGestures$RootGesture.smali", + "radiant/gestures/MiniPlayerGestures$ApplyPending.smali", + "radiant/gestures/LyricsDrag.smali", + "radiant/gestures/LyricsDrag$Guard.smali" ] }, { @@ -405,14 +409,14 @@ "default": false, "requiresOption": "gestures", "fileNames": [ - "mini-player-gestures-left-right.patch" + "mini-player-left-right-gesture.patch" ], "extensionFiles": [ - "radiant/MiniPlayerTrackGestures.smali", - "radiant/MiniPlayerTrackGestures$Gesture.smali", - "radiant/MiniPlayerTrackGestures$OffsetLayer.smali", - "radiant/MiniPlayerTrackGestures$ResetAnimator.smali", - "radiant/MiniPlayerTrackGestures$TextDraw.smali", + "radiant/gestures/MiniPlayerTrackGestures.smali", + "radiant/gestures/MiniPlayerTrackGestures$Gesture.smali", + "radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali", + "radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali", + "radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali", "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } diff --git a/patches/mini-player-gestures.patch b/patches/mini-player-gestures.patch deleted file mode 100644 index 3ef5a8e..0000000 --- a/patches/mini-player-gestures.patch +++ /dev/null @@ -1,131 +0,0 @@ -# rl-locals: com/tidal/android/feature/appscaffold/ui/composable/i.smali b( 52 ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali -@@ -1691,6 +1691,14 @@ - - move-result-object v24 - -+ move-object/from16 v49, p5 # gesture expand lambda (AppScaffold Function1 param) -+ -+ move-object/from16 v50, v24 # SheetState -+ -+ const/16 v51, __RL_MINI_PLAYER_SWIPE_UP_DRAG__ # Enable Drag option -+ -+ invoke-static/range {v49 .. v51}, Lradiant/MiniPlayerGestures;->configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet -+ - .line 69 - invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/ProvidableCompositionLocal; - ---- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali -@@ -712,6 +712,22 @@ - - iget-object v3, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->c:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; - -+ iget-object v5, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->a:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # currently rendered mini player media type -+ -+ sget-object v6, Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;->Unknown:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # Unknown = no media playing -+ -+ if-ne v5, v6, :rl_has_media # prevent swipe up when nothing playing -+ -+ const/4 v5, 0x0 -+ -+ goto :rl_set_media -+ -+ :rl_has_media -+ const/4 v5, 0x1 -+ -+ :rl_set_media -+ invoke-static {v5}, Lradiant/MiniPlayerGestures;->setHasMiniPlayerMedia(Z)V -+ - invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; - - const v4, -0x571456a1 -@@ -1215,6 +1231,10 @@ - - 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 - sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; - -@@ -1390,6 +1410,10 @@ - - move-result-object v6 - -+ invoke-static {v6}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) -+ -+ move-result-object v6 -+ - .line 63 - invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; - -@@ -1501,6 +1525,10 @@ - - move-result-object v5 - -+ invoke-static {v5}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist (swipe up feedback) -+ -+ move-result-object v5 -+ - .line 72 - invoke-virtual/range {v32 .. v32}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; - ---- a/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali -+++ b/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali -@@ -212,6 +212,12 @@ - .line 24 - iget-object p1, p0, Landroidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1;->$sheetState:Landroidx/compose/material3/SheetState; - -+ invoke-static {p1}, Lradiant/MiniPlayerGestures;->suppressAutoShow(Landroidx/compose/material3/SheetState;)Z # avoid Material3 show() taking over manual drag -+ -+ move-result v1 -+ -+ if-nez v1, :skip_show -+ - .line 25 - .line 26 - iput v2, p0, Landroidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1;->label:I -@@ -232,6 +238,7 @@ - .line 34 - return-object v0 - -+ :skip_show - .line 35 - :cond_2 - :goto_0 ---- a/androidx/compose/material3/ModalBottomSheetKt.smali -+++ b/androidx/compose/material3/ModalBottomSheetKt.smali -@@ -1288,12 +1288,18 @@ - - .line 33 - invoke-interface {v5, v12}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V - - .line 34 - :cond_47 -+ move-object v14, v12 # settle callback -+ -+ check-cast v14, Lam0/l; # to Function1 -+ -+ invoke-static {v13, v14}, Lradiant/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # reuse native settle animation on release -+ - move-object/from16 v32, v12 - - check-cast v32, Lam0/l; - - .line 35 - invoke-interface {v5}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; ---- a/androidx/compose/material3/SheetDefaultsKt.smali -+++ b/androidx/compose/material3/SheetDefaultsKt.smali -@@ -98,7 +98,7 @@ - const/4 v2, 0x0 - - .line 16 -- const/16 v3, 0x12c -+ const/16 v3, 0x64 # 100ms - - .line 17 - .line 18 From ba9bba203074005cf108382ac370de31c33e0dcc Mon Sep 17 00:00:00 2001 From: meowarex Date: Tue, 11 Aug 2026 07:57:30 +0000 Subject: [PATCH 2/2] WIP | Syllable AI [RL API] --- .../app/src/main/assets/patches-manifest.json | 9 ++++++ .../ui/screens/patchopts/PatchOptionsModel.kt | 4 ++- patches/data.json | 2 +- .../extension/radiant/RLAPILyricsWorker.smali | 11 ++++++++ patches/extension/radiant/WordLyrics.smali | 28 ++++++++++++------- patches/manifest.json | 9 ++++++ 6 files changed, 51 insertions(+), 12 deletions(-) diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index cf15ffa..333c5f4 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -76,6 +76,15 @@ "token": "RL_ROMANIZE", "inline": true }, + { + "type": "toggle", + "key": "synthesize", + "title": "WIP | AI Generate Syllables", + "description": "[Only works with API results] - Generates Syllable timings from Line timings using a self trained AI model ", + "default": false, + "inline": true, + "token": "RL_SYNTHESIZE" + }, { "type": "toggle", "key": "context_aware", diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptionsModel.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptionsModel.kt index 294d933..ae1d19e 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptionsModel.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptionsModel.kt @@ -190,7 +190,9 @@ class PatchOptionsModel( fun isAdvancedModified(spec: PatchSpec): Boolean = spec.advancedOptions.any { option -> when (option) { - is OptionSpec.Toggle -> toggleValue(spec, option) != option.default + // inline toggles sit next to the variant picker, not in the sheet, so they + // must not light up the sheet's "modified" dot + is OptionSpec.Toggle -> !option.inline && toggleValue(spec, option) != option.default is OptionSpec.Slider -> sliderValue(spec, option) != option.default is OptionSpec.Choice -> choiceValue(spec, option) != option.defaultIndex is OptionSpec.Color -> colorValue(spec, option) != option.default diff --git a/patches/data.json b/patches/data.json index 218530a..28ae557 100644 --- a/patches/data.json +++ b/patches/data.json @@ -1,5 +1,5 @@ { "tidalVersionCode": 10004, "tidalApkUrl": "https://github.com/meowarex/rl-mobile/releases/download/latest/tidal-stock.apk", - "patchesVersion": "1.0.0" + "patchesVersion": "1.1.2" } diff --git a/patches/extension/radiant/RLAPILyricsWorker.smali b/patches/extension/radiant/RLAPILyricsWorker.smali index ef1dde5..183cc85 100644 --- a/patches/extension/radiant/RLAPILyricsWorker.smali +++ b/patches/extension/radiant/RLAPILyricsWorker.smali @@ -690,6 +690,17 @@ invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + invoke-static {}, Lradiant/WordLyrics;->synthesizeOn()Z + + move-result v0 + + if-eqz v0, :no_synthesize + + const-string v0, "&synthesize=true" + + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + :no_synthesize invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 diff --git a/patches/extension/radiant/WordLyrics.smali b/patches/extension/radiant/WordLyrics.smali index 079db85..c8f707e 100644 --- a/patches/extension/radiant/WordLyrics.smali +++ b/patches/extension/radiant/WordLyrics.smali @@ -1010,11 +1010,7 @@ new-array v9, v8, [Ljava/lang/String; - const-string v10, "text" - - const-string v11, "" - - invoke-virtual {v6, v10, v11}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + invoke-static {v6}, Lradiant/WordLyrics;->lineText(Lorg/json/JSONObject;)Ljava/lang/String; move-result-object v10 @@ -1238,11 +1234,7 @@ :bs_single # Treat the line as one syllable - const-string v8, "text" - - const-string v9, "" - - invoke-virtual {v5, v8, v9}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + invoke-static {v5}, Lradiant/WordLyrics;->lineText(Lorg/json/JSONObject;)Ljava/lang/String; move-result-object v8 @@ -1350,6 +1342,22 @@ # Baked in by the Manager's options # CTX bits: 0x1 adlibs, 0x2 singers +# Ask the API to invent syllable timings +.method public static synthesizeOn()Z + .locals 2 + + const v0, __RL_SYNTHESIZE__ + + const/4 v1, 0x0 + + if-eqz v0, :off + + const/4 v1, 0x1 + + :off + return v1 +.end method + # Is context aware switched on # The mode bits alone can't say "off" .method static ctxOn()Z diff --git a/patches/manifest.json b/patches/manifest.json index cf15ffa..333c5f4 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -76,6 +76,15 @@ "token": "RL_ROMANIZE", "inline": true }, + { + "type": "toggle", + "key": "synthesize", + "title": "WIP | AI Generate Syllables", + "description": "[Only works with API results] - Generates Syllable timings from Line timings using a self trained AI model ", + "default": false, + "inline": true, + "token": "RL_SYNTHESIZE" + }, { "type": "toggle", "key": "context_aware",