From 9543953794223e23e9a2a6fb72d7cceb16b0ff45 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 13 Aug 2026 11:53:44 +0200 Subject: [PATCH 01/19] feat(wip): swipe left to queue library tracks --- .../app/src/main/assets/patches-manifest.json | 13 + patches/extension/radiant/SwipeToQueue.smali | 464 ++++++++++++++++++ patches/manifest.json | 13 + patches/swipe-to-queue.patch | 157 ++++++ 4 files changed, 647 insertions(+) create mode 100644 patches/extension/radiant/SwipeToQueue.smali create mode 100644 patches/swipe-to-queue.patch diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index f69c6ce..cca4610 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -422,6 +422,19 @@ "description": "Mirrors the bottom player buttons left-to-right for easier one-handed reach.", "default": false }, + { + "id": "SwipeToQueue", + "order": 39, + "fileNames": [ + "swipe-to-queue.patch" + ], + "extensionFiles": [ + "radiant/SwipeToQueue.smali" + ], + "title": "Swipe to Queue", + "description": "Swipe (left only for now) on tracks (in library/my tracks only for now) to add them to the play queue.", + "default": false + }, { "id": "LyricsProgressPill", "order": 40, diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali new file mode 100644 index 0000000..bd10f51 --- /dev/null +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -0,0 +1,464 @@ +.class public final Lradiant/SwipeToQueue; +.super Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback; +.source "SwipeToQueue.smali" + + +# static fields +.field private static final installed:Ljava/util/WeakHashMap; + + +# instance fields +.field private final background:Landroid/graphics/drawable/ColorDrawable; + +.field private final fragment:Ljava/lang/ref/WeakReference; + +.field private final icon:Landroid/graphics/drawable/Drawable; + +.field private pendingPosition:I + +.field private pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + +# direct methods +.method static constructor ()V + .locals 1 + + new-instance v0, Ljava/util/WeakHashMap; + + invoke-direct {v0}, Ljava/util/WeakHashMap;->()V + + sput-object v0, Lradiant/SwipeToQueue;->installed:Ljava/util/WeakHashMap; + + return-void +.end method + +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 3 + + const/4 v0, 0x0 + + # ItemTouchHelper.LEFT + const/4 v1, 0x4 + + invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->(II)V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {p2}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v0 + + new-instance v1, Landroid/graphics/drawable/ColorDrawable; + + sget v2, Lcom/aspiro/wamp/R$color;->green:I + + invoke-virtual {v0, v2}, Landroid/content/Context;->getColor(I)I + + move-result v2 + + invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V + + iput-object v1, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable; + + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + if-eqz v0, :store_icon + + invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + const/4 v1, -0x1 + + invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_icon + iput-object v0, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable; + + return-void +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 4 + + if-eqz p0, :done + + if-eqz p1, :done + + sget-object v0, Lradiant/SwipeToQueue;->installed:Ljava/util/WeakHashMap; + + invoke-virtual {v0, p1}, Ljava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :done + + sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; + + invoke-virtual {v0, p1, v1}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + new-instance v0, Lradiant/SwipeToQueue; + + invoke-direct {v0, p0, p1}, Lradiant/SwipeToQueue;->(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + + new-instance v1, Landroidx/recyclerview/widget/ItemTouchHelper; + + invoke-direct {v1, v0}, Landroidx/recyclerview/widget/ItemTouchHelper;->(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;)V + + invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->attachToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V + + :done + return-void +.end method + +# virtual methods +.method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I + .locals 4 + + iget-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + if-nez v0, :not_swipeable + + instance-of v0, p2, Ln8/d; + + if-eqz v0, :not_swipeable + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result v0 + + const/4 v1, -0x1 + + if-ne v0, v1, :has_position + + const/4 v0, 0x0 + + return v0 + + :has_position + check-cast p2, Ln8/d; + + iget-object v1, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; + + instance-of v2, v1, Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v2, :not_swipeable + + iget-object v2, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + + if-eqz v2, :not_swipeable + + check-cast v1, Lcom/aspiro/wamp/model/FavoriteTrack; + + invoke-virtual {v2, v0, v1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + + move-result v0 + + if-eqz v0, :not_swipeable + + const/4 v0, 0x4 + + return v0 + + :not_swipeable + const/4 v0, 0x0 + + return v0 +.end method + +.method public onChildDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FFIZ)V + .locals 12 + + invoke-super/range {p0 .. p7}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->onChildDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FFIZ)V + + move/from16 v10, p6 + + move/from16 v11, p4 + + const/4 v0, 0x1 + + if-ne v10, v0, :done + + const/4 v0, 0x0 + + int-to-float v0, v0 + + cmpg-float v0, v11, v0 + + if-gez v0, :not_left + + goto :clear_active + + :not_left + + if-eqz p7, :done + + const/4 v0, 0x0 + + iput-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + goto :done + + :clear_active + + iget-object v0, p3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View; + + invoke-virtual {v0}, Landroid/view/View;->getRight()I + + move-result v1 + + float-to-int v2, v11 + + add-int/2addr v2, v1 + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v4 + + sub-int v5, v1, v2 + + if-lez v5, :done + + iget-object v6, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable; + + invoke-virtual {v6, v2, v3, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V + + invoke-virtual {v0}, Landroid/view/View;->getWidth()I + + move-result v7 + + if-eqz p7, :draw_alpha + + # 30% threshold + mul-int/lit8 v8, v7, 0x3 + + div-int/lit8 v8, v8, 0xa + + if-lt v5, v8, :disarm + + const/4 v8, 0x1 + + invoke-virtual {p3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result v8 + + const/4 v9, -0x1 + + if-ne v8, v9, :resolve_action + + goto :draw_alpha + + :resolve_action + move-object v9, p3 + + check-cast v9, Ln8/d; + + iget-object v10, v9, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; + + instance-of v11, v10, Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v11, :draw_alpha + + check-cast v10, Lcom/aspiro/wamp/model/FavoriteTrack; + + iput v8, p0, Lradiant/SwipeToQueue;->pendingPosition:I + + iput-object v10, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + goto :draw_alpha + + :disarm + const/4 v8, 0x0 + + iput-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + goto :draw_alpha + + :draw_alpha + if-lez v7, :draw_background + + const/16 v8, 0xf8 + + mul-int/2addr v8, v5 + + div-int/2addr v8, v7 + + const/16 v9, 0x1f + + invoke-static {v8, v9}, Ljava/lang/Math;->min(II)I + + move-result v8 + + add-int/lit16 v8, v8, 0xe0 + + invoke-virtual {v6, v8}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V + + :draw_background + invoke-virtual {v6, p1}, Landroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V + + iget-object v6, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable; + + if-eqz v6, :done + + invoke-virtual {v6}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I + + move-result v7 + + invoke-virtual {v6}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I + + move-result v8 + + if-lez v7, :done + + if-lez v8, :done + + # center icon until fixed inset + sub-int v9, v4, v3 + + sub-int/2addr v9, v8 + + div-int/lit8 v9, v9, 0x2 + + sub-int v10, v1, v9 + + sub-int v11, v10, v7 + + add-int v10, v5, v7 + + div-int/lit8 v10, v10, 0x2 + + sub-int v10, v1, v10 + + invoke-static {v10, v11}, Ljava/lang/Math;->max(II)I + + move-result v10 + + add-int v11, v10, v7 + + invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I + + move-result v7 + + invoke-virtual {p1, v2, v3, v1, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z + + add-int v2, v3, v9 + + add-int v5, v2, v8 + + invoke-virtual {v6, v10, v2, v11, v5}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V + + const/16 v8, 0xff + + invoke-virtual {v6, v8}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V + + invoke-virtual {v6, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V + + invoke-virtual {p1, v7}, Landroid/graphics/Canvas;->restoreToCount(I)V + + :done + return-void +.end method + +.method public onMove(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Z + .locals 0 + + const/4 p1, 0x0 + + return p1 +.end method + +.method public getSwipeEscapeVelocity(F)F + .locals 1 + + # Float.MAX_VALUE + const v0, 0x7f7fffff + + return v0 +.end method + +.method public getSwipeThreshold(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)F + .locals 1 + + # 2.0f + const/high16 v0, 0x40000000 + + return v0 +.end method + +.method public onSelectedChanged(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V + .locals 3 + + const/4 v0, 0x1 + + if-ne p2, v0, :release + + if-eqz p1, :dispatch + + const/4 v0, 0x0 + + iput-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + goto :dispatch + + :release + if-nez p2, :dispatch + + iget v0, p0, Lradiant/SwipeToQueue;->pendingPosition:I + + iget-object v1, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + const/4 v2, 0x0 + + iput-object v2, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v1, :dispatch + + iget-object v2, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + + if-eqz v2, :dispatch + + invoke-virtual {v2, v0, v1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V + + :dispatch + invoke-super {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->onSelectedChanged(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V + + return-void +.end method + +.method public onSwiped(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V + .locals 1 + + # fallback + iget-object p1, p1, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View; + + const/4 p2, 0x0 + + int-to-float v0, p2 + + invoke-virtual {p1, v0}, Landroid/view/View;->setTranslationX(F)V + + return-void +.end method diff --git a/patches/manifest.json b/patches/manifest.json index f69c6ce..cca4610 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -422,6 +422,19 @@ "description": "Mirrors the bottom player buttons left-to-right for easier one-handed reach.", "default": false }, + { + "id": "SwipeToQueue", + "order": 39, + "fileNames": [ + "swipe-to-queue.patch" + ], + "extensionFiles": [ + "radiant/SwipeToQueue.smali" + ], + "title": "Swipe to Queue", + "description": "Swipe (left only for now) on tracks (in library/my tracks only for now) to add them to the play queue.", + "default": false + }, { "id": "LyricsProgressPill", "order": 40, diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch new file mode 100644 index 0000000..1f057b6 --- /dev/null +++ b/patches/swipe-to-queue.patch @@ -0,0 +1,157 @@ +--- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali ++++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +@@ -107,6 +107,104 @@ + .end method + + ++.method public final Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z ++ .locals 3 ++ ++ # reject unavailable tracks ++ if-eqz p2, :not_eligible ++ ++ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->d:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; ++ ++ if-eqz v0, :not_eligible ++ ++ invoke-virtual {v0, p1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->b(I)Lcom/aspiro/wamp/model/FavoriteTrack; ++ ++ move-result-object v1 ++ ++ if-eqz v1, :not_eligible ++ ++ invoke-virtual {p2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I ++ ++ move-result v2 ++ ++ invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I ++ ++ move-result p1 ++ ++ if-ne v2, p1, :not_eligible ++ ++ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->f:Lcom/aspiro/wamp/model/AvailabilityInteractor; ++ ++ if-eqz v0, :not_eligible ++ ++ invoke-interface {v0, v1}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; ++ ++ move-result-object v0 ++ ++ invoke-virtual {v0}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z ++ ++ move-result v0 ++ ++ if-eqz v0, :not_eligible ++ ++ const/4 v0, 0x1 ++ ++ return v0 ++ ++ :not_eligible ++ const/4 v0, 0x0 ++ ++ return v0 ++.end method ++ ++.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V ++ .locals 5 ++ ++ invoke-virtual {p0, p1, p2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z ++ ++ move-result p1 ++ ++ if-eqz p1, :done ++ ++ # accepts a Source, wrap the swiped track. ++ iget-object p1, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->d:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; ++ ++ if-eqz p1, :done ++ ++ iget-object v0, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->m:Lcom/tidal/android/navigation/NavigationInfo; ++ ++ invoke-static {v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->m(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/MyItemsSource; ++ ++ move-result-object v4 ++ ++ invoke-virtual {v4, p2}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V ++ ++ iget-object v3, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->k:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; ++ ++ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->b:Lx40/a; ++ ++ instance-of p1, v0, Lh4/a; ++ ++ if-eqz p1, :done ++ ++ check-cast v0, Lh4/a; ++ ++ invoke-virtual {p0}, Landroidx/fragment/app/Fragment;->getActivity()Landroidx/fragment/app/FragmentActivity; ++ ++ move-result-object v1 ++ ++ if-eqz v1, :done ++ ++ move-object v2, p2 ++ ++ invoke-virtual/range {v0 .. v4}, Lh4/a;->q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V ++ ++ :done ++ return-void ++.end method ++ ++ + # virtual methods + .method public final M()Ln8/b; + .locals 1 +@@ -2265,9 +2418,16 @@ + iput-object p0, p1, Lo4/g;->e:Lo4/g$e; + + .line 224 + .line 225 + iput p2, p1, Lo4/g;->b:I ++ iget-object p1, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->l:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; ++ ++ invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; ++ ++ iget-object p1, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;->f:Landroidx/recyclerview/widget/RecyclerView; ++ ++ invoke-static {p0, p1}, Lradiant/SwipeToQueue;->install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + + .line 226 + .line 227 + invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; +--- a/h4/a.smali ++++ b/h4/a.smali +@@ -931,3 +931,32 @@ + .end method ++ ++.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V ++ .locals 2 ++ ++ iget-object v0, p0, Lh4/a;->n:Lcom/aspiro/wamp/contextmenu/menu/track/TrackContextMenu$a; ++ ++ check-cast v0, Lcom/aspiro/wamp/contextmenu/menu/track/d; ++ ++ iget-object v0, v0, Lcom/aspiro/wamp/contextmenu/menu/track/d;->a:Lcom/aspiro/wamp/contextmenu/menu/track/c; ++ ++ iget-object v0, v0, Lcom/aspiro/wamp/contextmenu/menu/track/c;->b:Ldagger/internal/j; ++ ++ invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; ++ ++ move-result-object v0 ++ ++ check-cast v0, Lm3/f$a; ++ ++ invoke-interface {v0, p2, p3, p4}, Lm3/f$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f; ++ ++ move-result-object v0 ++ ++ # call add to queue method ++ invoke-virtual {v0, p1}, Lm3/f;->b(Landroidx/fragment/app/FragmentActivity;)V ++ ++ return-void ++.end method ++ + + .method public final o(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Credit;Lcom/tidal/android/navigation/NavigationInfo;)V From 6ace2d9e165f847b1cf537020f8f9dbdf9ab4305 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 13 Aug 2026 12:09:17 +0200 Subject: [PATCH 02/19] feat(swipe to queue): haptic feedback + bg fade adjustment --- patches/extension/radiant/SwipeToQueue.smali | 41 +++++++++++++++----- patches/swipe-to-queue.patch | 4 +- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index bd10f51..c60ee3e 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -246,19 +246,19 @@ if-eqz p7, :draw_alpha - # 30% threshold + # row width * 3 mul-int/lit8 v8, v7, 0x3 + # / 10 = 30% of row width (30% threshold) div-int/lit8 v8, v8, 0xa if-lt v5, v8, :disarm - const/4 v8, 0x1 - invoke-virtual {p3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I move-result v8 + # RecyclerView.NO_POSITION. const/4 v9, -0x1 if-ne v8, v9, :resolve_action @@ -280,11 +280,30 @@ iput v8, p0, Lradiant/SwipeToQueue;->pendingPosition:I + iget-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iput-object v10, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + if-nez v8, :draw_alpha + + # HapticFeedbackConstants.CLOCK_TICK + const/4 v8, 0x4 + + invoke-virtual {v0, v8}, Landroid/view/View;->performHapticFeedback(I)Z + goto :draw_alpha :disarm + iget-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v8, :clear_pending + + # HapticFeedbackConstants.CLOCK_TICK + const/4 v8, 0x4 + + invoke-virtual {v0, v8}, Landroid/view/View;->performHapticFeedback(I)Z + + :clear_pending const/4 v8, 0x0 iput-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; @@ -294,19 +313,23 @@ :draw_alpha if-lez v7, :draw_background - const/16 v8, 0xf8 + mul-int/lit8 v8, v7, 0x3 - mul-int/2addr v8, v5 + div-int/lit8 v8, v8, 0xa - div-int/2addr v8, v7 + const/16 v9, 0x40 - const/16 v9, 0x1f + mul-int/2addr v9, v5 - invoke-static {v8, v9}, Ljava/lang/Math;->min(II)I + div-int/2addr v9, v8 + + const/16 v8, 0x40 + + invoke-static {v9, v8}, Ljava/lang/Math;->min(II)I move-result v8 - add-int/lit16 v8, v8, 0xe0 + add-int/lit16 v8, v8, 0xbf invoke-virtual {v6, v8}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 1f057b6..b33ea97 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali -@@ -107,6 +107,104 @@ +@@ -107,6 +107,103 @@ .end method @@ -123,7 +123,7 @@ invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; --- a/h4/a.smali +++ b/h4/a.smali -@@ -931,3 +931,32 @@ +@@ -931,3 +931,31 @@ .end method + +.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V From 08cb9174a0fbad3ee558724eacc205d5751b8842 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 13 Aug 2026 14:47:04 +0200 Subject: [PATCH 03/19] feat(swipe to queue): swipe direction patch option --- .../app/src/main/assets/patches-manifest.json | 22 +++++- patches/extension/radiant/SwipeToQueue.smali | 75 ++++++++++++++++--- patches/manifest.json | 22 +++++- 3 files changed, 105 insertions(+), 14 deletions(-) diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index cca4610..eb7e76f 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -432,8 +432,26 @@ "radiant/SwipeToQueue.smali" ], "title": "Swipe to Queue", - "description": "Swipe (left only for now) on tracks (in library/my tracks only for now) to add them to the play queue.", - "default": false + "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", + "default": false, + "advancedOptions": [ + { + "type": "choice", + "key": "swipe_direction", + "title": "Swipe Direction", + "description": "Choose direction of the swipe gesture", + "entries": [ + "Left", + "Right" + ], + "values": [ + "0x4", + "0x8" + ], + "defaultIndex": 0, + "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + } + ] }, { "id": "LyricsProgressPill", diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index c60ee3e..b7a670c 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -36,8 +36,8 @@ const/4 v0, 0x0 - # ItemTouchHelper.LEFT - const/4 v1, 0x4 + # ItemTouchHelper.LEFT (0x4) or ItemTouchHelper.RIGHT (0x8) + const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__ invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->(II)V @@ -169,7 +169,7 @@ if-eqz v0, :not_swipeable - const/4 v0, 0x4 + const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__ return v0 @@ -196,13 +196,26 @@ int-to-float v0, v0 - cmpg-float v0, v11, v0 + const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__ - if-gez v0, :not_left + const/4 v9, 0x4 + + if-ne v8, v9, :expect_right + + cmpg-float v8, v11, v0 + + if-gez v8, :wrong_direction goto :clear_active - :not_left + :expect_right + cmpl-float v8, v11, v0 + + if-lez v8, :wrong_direction + + goto :clear_active + + :wrong_direction if-eqz p7, :done @@ -216,6 +229,20 @@ iget-object v0, p3, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View; + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v4 + + const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + const/4 v9, 0x4 + + if-ne v8, v9, :right_bounds + invoke-virtual {v0}, Landroid/view/View;->getRight()I move-result v1 @@ -224,13 +251,18 @@ add-int/2addr v2, v1 - invoke-virtual {v0}, Landroid/view/View;->getTop()I + goto :bounds_ready - move-result v3 + :right_bounds + invoke-virtual {v0}, Landroid/view/View;->getLeft()I - invoke-virtual {v0}, Landroid/view/View;->getBottom()I + move-result v2 - move-result v4 + float-to-int v1, v11 + + add-int/2addr v1, v2 + + :bounds_ready sub-int v5, v1, v2 @@ -359,6 +391,12 @@ div-int/lit8 v9, v9, 0x2 + const/16 v10, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + const/4 v11, 0x4 + + if-ne v10, v11, :right_icon + sub-int v10, v1, v9 sub-int v11, v10, v7 @@ -373,6 +411,23 @@ move-result v10 + goto :icon_positioned + + :right_icon + add-int v10, v2, v9 + + sub-int v11, v5, v7 + + div-int/lit8 v11, v11, 0x2 + + add-int/2addr v11, v2 + + invoke-static {v11, v10}, Ljava/lang/Math;->min(II)I + + move-result v10 + + :icon_positioned + add-int v11, v10, v7 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I diff --git a/patches/manifest.json b/patches/manifest.json index cca4610..eb7e76f 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -432,8 +432,26 @@ "radiant/SwipeToQueue.smali" ], "title": "Swipe to Queue", - "description": "Swipe (left only for now) on tracks (in library/my tracks only for now) to add them to the play queue.", - "default": false + "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", + "default": false, + "advancedOptions": [ + { + "type": "choice", + "key": "swipe_direction", + "title": "Swipe Direction", + "description": "Choose direction of the swipe gesture", + "entries": [ + "Left", + "Right" + ], + "values": [ + "0x4", + "0x8" + ], + "defaultIndex": 0, + "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + } + ] }, { "id": "LyricsProgressPill", From 38300573aadb4438d9deb46974e64655aa764292 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 13 Aug 2026 15:23:25 +0200 Subject: [PATCH 04/19] feat(swipe to queue): play track directly if nothing is playing --- patches/swipe-to-queue.patch | 57 ++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index b33ea97..9ad6554 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali -@@ -107,6 +107,103 @@ +@@ -107,6 +107,118 @@ .end method @@ -55,13 +55,15 @@ +.end method + +.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V -+ .locals 5 ++ .locals 6 ++ ++ move v5, p1 + + invoke-virtual {p0, p1, p2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + -+ move-result p1 ++ move-result v0 + -+ if-eqz p1, :done ++ if-eqz v0, :done + + # accepts a Source, wrap the swiped track. + iget-object p1, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->d:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; @@ -94,7 +96,20 @@ + + move-object v2, p2 + -+ invoke-virtual/range {v0 .. v4}, Lh4/a;->q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V ++ invoke-virtual/range {v0 .. v4}, Lh4/a;->q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z ++ ++ move-result v0 ++ ++ if-nez v0, :done ++ ++ # if nothing is playing, call row click handler to play the track directly instead of adding it to queue ++ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->l:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; ++ ++ if-eqz v0, :done ++ ++ iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;->f:Landroidx/recyclerview/widget/RecyclerView; ++ ++ invoke-virtual {p0, v0, v5, v0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->w(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V + + :done + return-void @@ -123,19 +138,19 @@ invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; --- a/h4/a.smali +++ b/h4/a.smali -@@ -931,3 +931,31 @@ +@@ -931,3 +931,49 @@ .end method + -+.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V -+ .locals 2 ++.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z ++ .locals 3 + + iget-object v0, p0, Lh4/a;->n:Lcom/aspiro/wamp/contextmenu/menu/track/TrackContextMenu$a; + + check-cast v0, Lcom/aspiro/wamp/contextmenu/menu/track/d; + -+ iget-object v0, v0, Lcom/aspiro/wamp/contextmenu/menu/track/d;->a:Lcom/aspiro/wamp/contextmenu/menu/track/c; ++ iget-object v1, v0, Lcom/aspiro/wamp/contextmenu/menu/track/d;->a:Lcom/aspiro/wamp/contextmenu/menu/track/c; + -+ iget-object v0, v0, Lcom/aspiro/wamp/contextmenu/menu/track/c;->b:Ldagger/internal/j; ++ iget-object v0, v1, Lcom/aspiro/wamp/contextmenu/menu/track/c;->b:Ldagger/internal/j; + + invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; + @@ -147,10 +162,28 @@ + + move-result-object v0 + -+ # call add to queue method ++ iget-object v2, v0, Lm3/f;->j:Lcom/aspiro/wamp/playqueue/g1; ++ ++ invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; ++ ++ move-result-object v2 ++ ++ invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; ++ ++ move-result-object v2 ++ ++ if-eqz v2, :empty_queue ++ + invoke-virtual {v0, p1}, Lm3/f;->b(Landroidx/fragment/app/FragmentActivity;)V + -+ return-void ++ const/4 v0, 0x1 ++ ++ return v0 ++ ++ :empty_queue ++ const/4 v0, 0x0 ++ ++ return v0 +.end method + From 3aabcdff26270912598ae4ddc30a25937349d69e Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 13 Aug 2026 16:24:45 +0200 Subject: [PATCH 05/19] feat(swipe to queue): remove from queue gesture rework --- .../app/src/main/assets/patches-manifest.json | 3 +- .../extension/radiant/QueueSwipeRemove.smali | 222 ++++++++++++++++++ patches/manifest.json | 3 +- patches/swipe-to-queue.patch | 114 ++++++++- 4 files changed, 338 insertions(+), 4 deletions(-) create mode 100644 patches/extension/radiant/QueueSwipeRemove.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index eb7e76f..401a27a 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -429,7 +429,8 @@ "swipe-to-queue.patch" ], "extensionFiles": [ - "radiant/SwipeToQueue.smali" + "radiant/SwipeToQueue.smali", + "radiant/QueueSwipeRemove.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", diff --git a/patches/extension/radiant/QueueSwipeRemove.smali b/patches/extension/radiant/QueueSwipeRemove.smali new file mode 100644 index 0000000..c117a82 --- /dev/null +++ b/patches/extension/radiant/QueueSwipeRemove.smali @@ -0,0 +1,222 @@ +.class public final Lradiant/QueueSwipeRemove; +.super Ljava/lang/Object; +.source "QueueSwipeRemove.smali" + + +# direct methods +.method public static draw(Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FIZ)V + .locals 10 + + const/4 v0, 0x1 + + if-ne p4, v0, :done + + iget-object v0, p2, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->itemView:Landroid/view/View; + + const/4 v1, 0x0 + + int-to-float v1, v1 + + cmpg-float v2, p3, v1 + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v3 + + invoke-virtual {v0}, Landroid/view/View;->getBottom()I + + move-result v4 + + if-gez v2, :right_swipe + + # left swipe + invoke-virtual {v0}, Landroid/view/View;->getRight()I + + move-result v1 + + float-to-int v2, p3 + + add-int/2addr v2, v1 + + goto :bounds_ready + + :right_swipe + cmpl-float v1, p3, v1 + + if-lez v1, :done + + # right swipe + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v2 + + float-to-int v1, p3 + + add-int/2addr v1, v2 + + :bounds_ready + sub-int v5, v1, v2 + + if-lez v5, :done + + iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->c:Landroid/graphics/drawable/ColorDrawable; + + invoke-virtual {v6, v2, v3, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V + + invoke-virtual {v0}, Landroid/view/View;->getWidth()I + + move-result v7 + + if-lez v7, :draw_background + + # 30% threshold + mul-int/lit8 v8, v7, 0x3 + + div-int/lit8 v8, v8, 0xa + + if-eqz p5, :draw_alpha + + if-lt v5, v8, :below_threshold + + const/4 v9, 0x1 + + goto :update_haptic + + :below_threshold + const/4 v9, 0x0 + + :update_haptic + iget-boolean p2, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z + + if-eq v9, p2, :draw_alpha + + iput-boolean v9, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z + + # CLOCK_TICK + const/4 p2, 0x4 + + invoke-virtual {v0, p2}, Landroid/view/View;->performHapticFeedback(I)Z + + :draw_alpha + const/16 v9, 0x40 + + mul-int/2addr v9, v5 + + div-int/2addr v9, v8 + + const/16 v8, 0x40 + + invoke-static {v9, v8}, Ljava/lang/Math;->min(II)I + + move-result v8 + + add-int/lit16 v8, v8, 0xbf + + invoke-virtual {v6, v8}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V + + :draw_background + invoke-virtual {v6, p1}, Landroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V + + iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->h:Landroid/graphics/drawable/Drawable; + + if-eqz v6, :done + + invoke-virtual {v6}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I + + move-result v7 + + invoke-virtual {v6}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I + + move-result v8 + + if-lez v7, :done + + if-lez v8, :done + + sub-int v9, v4, v3 + + sub-int/2addr v9, v8 + + div-int/lit8 v9, v9, 0x2 + + const/4 p2, 0x0 + + int-to-float p2, p2 + + cmpg-float p2, p3, p2 + + if-gez p2, :right_icon + + sub-int p2, v1, v9 + + sub-int p4, p2, v7 + + add-int p2, v5, v7 + + div-int/lit8 p2, p2, 0x2 + + sub-int p2, v1, p2 + + invoke-static {p2, p4}, Ljava/lang/Math;->max(II)I + + move-result p2 + + goto :icon_positioned + + :right_icon + add-int p2, v2, v9 + + sub-int p4, v5, v7 + + div-int/lit8 p4, p4, 0x2 + + add-int/2addr p4, v2 + + invoke-static {p4, p2}, Ljava/lang/Math;->min(II)I + + move-result p2 + + :icon_positioned + add-int p4, p2, v7 + + invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I + + move-result v7 + + invoke-virtual {p1, v2, v3, v1, v4}, Landroid/graphics/Canvas;->clipRect(IIII)Z + + add-int v2, v3, v9 + + add-int v3, v2, v8 + + invoke-virtual {v6, p2, v2, p4, v3}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V + + const/16 v8, 0xff + + invoke-virtual {v6, v8}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V + + invoke-virtual {v6, p1}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V + + invoke-virtual {p1, v7}, Landroid/graphics/Canvas;->restoreToCount(I)V + + :done + return-void +.end method + +.method public static setRemoveDuration(Landroidx/recyclerview/widget/RecyclerView;)V + .locals 2 + + invoke-virtual {p0}, Landroidx/recyclerview/widget/RecyclerView;->getItemAnimator()Landroidx/recyclerview/widget/RecyclerView$ItemAnimator; + + move-result-object p0 + + if-eqz p0, :done + + # 80ms (faster animation, native is 120ms) + const-wide/16 v0, 0x50 + + invoke-virtual {p0, v0, v1}, Landroidx/recyclerview/widget/RecyclerView$ItemAnimator;->setRemoveDuration(J)V + + :done + return-void +.end method diff --git a/patches/manifest.json b/patches/manifest.json index eb7e76f..401a27a 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -429,7 +429,8 @@ "swipe-to-queue.patch" ], "extensionFiles": [ - "radiant/SwipeToQueue.smali" + "radiant/SwipeToQueue.smali", + "radiant/QueueSwipeRemove.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 9ad6554..bf6e8d2 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -138,7 +138,7 @@ invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; --- a/h4/a.smali +++ b/h4/a.smali -@@ -931,3 +931,49 @@ +@@ -931,1 +931,46 @@ .end method + +.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z @@ -185,6 +185,116 @@ + + return v0 +.end method +--- a/com/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl.smali ++++ b/com/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl.smali +@@ -31,6 +31,10 @@ + + .field public g:I + ++.field public final h:Landroid/graphics/drawable/Drawable; ++ ++.field public i:Z + - .method public final o(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Credit;Lcom/tidal/android/navigation/NavigationInfo;)V + # direct methods + .method public constructor (Landroid/content/Context;Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a;Lcom/aspiro/wamp/nowplaying/view/playqueue/l;)V +@@ -55,6 +59,26 @@ + + .line 10 + .line 11 ++ # trash icon ++ sget p2, Lcom/aspiro/wamp/R$drawable;->ic_delete:I ++ ++ invoke-virtual {p1, p2}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; ++ ++ move-result-object p2 ++ ++ if-eqz p2, :store_remove_icon ++ ++ invoke-virtual {p2}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; ++ ++ move-result-object p2 ++ ++ const/4 p3, -0x1 ++ ++ invoke-virtual {p2, p3}, Landroid/graphics/drawable/Drawable;->setTint(I)V ++ ++ :store_remove_icon ++ iput-object p2, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->h:Landroid/graphics/drawable/Drawable; ++ + new-instance p2, Landroid/graphics/drawable/ColorDrawable; + + .line 12 +@@ -377,6 +401,10 @@ + .line 5 + .line 6 + .line 7 ++ const/4 v0, 0x0 ++ ++ iput-boolean v0, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z ++ + iget-object v0, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->d:Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl$ActionType; + + .line 8 +@@ -844,7 +872,7 @@ + + .line 32 + .line 33 +- const/4 v1, 0x4 ++ const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + .line 34 + :cond_1 +@@ -896,7 +924,23 @@ + .end method + ++.method public getSwipeEscapeVelocity(F)F ++ .locals 1 ++ # Float.MAX_VALUE ++ const v0, 0x7f7fffff ++ ++ return v0 ++.end method ++ ++.method public getSwipeThreshold(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)F ++ .locals 1 ++ # 0.3f ++ const v0, 0x3e99999a ++ ++ return v0 ++.end method ++ + .method public final onChildDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FFIZ)V +- .locals 2 ++ .locals 8 + + .line 1 + invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; +@@ -916,6 +960,16 @@ + .line 10 + invoke-super/range {p0 .. p7}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->onChildDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FFIZ)V + ++ move-object/from16 v0, p0 ++ move-object/from16 v1, p1 ++ move-object/from16 v2, p3 ++ move/from16 v3, p4 ++ move/from16 v4, p6 ++ move/from16 v5, p7 ++ invoke-static/range {v0 .. v5}, Lradiant/QueueSwipeRemove;->draw(Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FIZ)V ++ ++ goto :cond_0 ++ + .line 11 + .line 12 + .line 13 +--- a/com/aspiro/wamp/nowplaying/view/playqueue/l.smali ++++ b/com/aspiro/wamp/nowplaying/view/playqueue/l.smali +@@ -983,6 +983,8 @@ + .line 121 + move-result-object p1 + ++ invoke-static {p1}, Lradiant/QueueSwipeRemove;->setRemoveDuration(Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 122 + new-instance p2, Landroidx/recyclerview/widget/LinearLayoutManager; + From 89122deb0cc49dfa9c5913984f2935ccc00c65f4 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Fri, 14 Aug 2026 14:18:05 +0200 Subject: [PATCH 06/19] feat(swipe to queue): queue collection albums support + dynamic legacy track lists --- .../app/src/main/assets/patches-manifest.json | 10 +- patches/extension/radiant/SwipeToQueue.smali | 152 ++---- .../radiant/swipe/DynamicTrackResolver.smali | 477 ++++++++++++++++++ .../swipe/FavoriteTracksResolver.smali | 181 +++++++ .../radiant/swipe/MyAlbumsResolver.smali | 267 ++++++++++ .../radiant/swipe/QueueExecutor.smali | 180 +++++++ .../radiant/swipe/QueueRequest.smali | 27 + .../radiant/swipe/QueueRowResolver.smali | 14 + patches/manifest.json | 10 +- patches/swipe-to-queue.patch | 54 +- 10 files changed, 1270 insertions(+), 102 deletions(-) create mode 100644 patches/extension/radiant/swipe/DynamicTrackResolver.smali create mode 100644 patches/extension/radiant/swipe/FavoriteTracksResolver.smali create mode 100644 patches/extension/radiant/swipe/MyAlbumsResolver.smali create mode 100644 patches/extension/radiant/swipe/QueueExecutor.smali create mode 100644 patches/extension/radiant/swipe/QueueRequest.smali create mode 100644 patches/extension/radiant/swipe/QueueRowResolver.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 401a27a..23b9419 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -430,10 +430,16 @@ ], "extensionFiles": [ "radiant/SwipeToQueue.smali", - "radiant/QueueSwipeRemove.smali" + "radiant/QueueSwipeRemove.smali", + "radiant/swipe/QueueRequest.smali", + "radiant/swipe/QueueRowResolver.smali", + "radiant/swipe/QueueExecutor.smali", + "radiant/swipe/FavoriteTracksResolver.smali", + "radiant/swipe/DynamicTrackResolver.smali", + "radiant/swipe/MyAlbumsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", + "description": "Swipe on tracks/albums to add them to the play queue.", "default": false, "advancedOptions": [ { diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index b7a670c..14b1947 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -10,13 +10,13 @@ # instance fields .field private final background:Landroid/graphics/drawable/ColorDrawable; -.field private final fragment:Ljava/lang/ref/WeakReference; - .field private final icon:Landroid/graphics/drawable/Drawable; -.field private pendingPosition:I +.field private pendingRequest:Lradiant/swipe/QueueRequest; -.field private pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; +.field private releaseAllowed:Z + +.field private final resolver:Lradiant/swipe/QueueRowResolver; # direct methods .method static constructor ()V @@ -31,7 +31,7 @@ return-void .end method -.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V +.method private constructor (Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V .locals 3 const/4 v0, 0x0 @@ -41,13 +41,9 @@ invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->(II)V - new-instance v0, Ljava/lang/ref/WeakReference; + iput-object p2, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; - invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - - iput-object v0, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; - - invoke-virtual {p2}, Landroid/view/View;->getContext()Landroid/content/Context; + invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object v0 @@ -85,7 +81,7 @@ return-void .end method -.method public static install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V +.method public static install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V .locals 4 if-eqz p0, :done @@ -94,7 +90,7 @@ sget-object v0, Lradiant/SwipeToQueue;->installed:Ljava/util/WeakHashMap; - invoke-virtual {v0, p1}, Ljava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z + invoke-virtual {v0, p0}, Ljava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z move-result v1 @@ -102,17 +98,32 @@ sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; - invoke-virtual {v0, p1, v1}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + invoke-virtual {v0, p0, v1}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; new-instance v0, Lradiant/SwipeToQueue; - invoke-direct {v0, p0, p1}, Lradiant/SwipeToQueue;->(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + invoke-direct {v0, p0, p1}, Lradiant/SwipeToQueue;->(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V new-instance v1, Landroidx/recyclerview/widget/ItemTouchHelper; invoke-direct {v1, v0}, Landroidx/recyclerview/widget/ItemTouchHelper;->(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;)V - invoke-virtual {v1, p1}, Landroidx/recyclerview/widget/ItemTouchHelper;->attachToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V + invoke-virtual {v1, p0}, Landroidx/recyclerview/widget/ItemTouchHelper;->attachToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V + + :done + return-void +.end method + +.method public static setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V + .locals 1 + + instance-of v0, p0, Lradiant/SwipeToQueue; + + if-eqz v0, :done + + check-cast p0, Lradiant/SwipeToQueue; + + iput-boolean p1, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z :done return-void @@ -120,52 +131,17 @@ # virtual methods .method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I - .locals 4 + .locals 2 - iget-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iget-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; if-nez v0, :not_swipeable - instance-of v0, p2, Ln8/d; + iget-object v0, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; - if-eqz v0, :not_swipeable + invoke-interface {v0, p1, p2}, Lradiant/swipe/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; - invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I - - move-result v0 - - const/4 v1, -0x1 - - if-ne v0, v1, :has_position - - const/4 v0, 0x0 - - return v0 - - :has_position - check-cast p2, Ln8/d; - - iget-object v1, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; - - instance-of v2, v1, Lcom/aspiro/wamp/model/FavoriteTrack; - - if-eqz v2, :not_swipeable - - iget-object v2, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; - - invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; - - move-result-object v2 - - check-cast v2, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; - - if-eqz v2, :not_swipeable - - check-cast v1, Lcom/aspiro/wamp/model/FavoriteTrack; - - invoke-virtual {v2, v0, v1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z - - move-result v0 + move-result-object v0 if-eqz v0, :not_swipeable @@ -221,7 +197,7 @@ const/4 v0, 0x0 - iput-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iput-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; goto :done @@ -286,37 +262,19 @@ if-lt v5, v8, :disarm - invoke-virtual {p3}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + iget-object v8, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; - move-result v8 + iget-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; - # RecyclerView.NO_POSITION. - const/4 v9, -0x1 + if-nez v10, :draw_alpha - if-ne v8, v9, :resolve_action + invoke-interface {v8, p2, p3}, Lradiant/swipe/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; - goto :draw_alpha + move-result-object v10 - :resolve_action - move-object v9, p3 + if-eqz v10, :draw_alpha - check-cast v9, Ln8/d; - - iget-object v10, v9, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; - - instance-of v11, v10, Lcom/aspiro/wamp/model/FavoriteTrack; - - if-eqz v11, :draw_alpha - - check-cast v10, Lcom/aspiro/wamp/model/FavoriteTrack; - - iput v8, p0, Lradiant/SwipeToQueue;->pendingPosition:I - - iget-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; - - iput-object v10, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; - - if-nez v8, :draw_alpha + iput-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; # HapticFeedbackConstants.CLOCK_TICK const/4 v8, 0x4 @@ -326,7 +284,7 @@ goto :draw_alpha :disarm - iget-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iget-object v8, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; if-eqz v8, :clear_pending @@ -338,7 +296,7 @@ :clear_pending const/4 v8, 0x0 - iput-object v8, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iput-object v8, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; goto :draw_alpha @@ -491,34 +449,36 @@ const/4 v0, 0x0 - iput-object v0, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iput-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; goto :dispatch :release if-nez p2, :dispatch - iget v0, p0, Lradiant/SwipeToQueue;->pendingPosition:I - - iget-object v1, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iget-boolean v0, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z const/4 v2, 0x0 - iput-object v2, p0, Lradiant/SwipeToQueue;->pendingTrack:Lcom/aspiro/wamp/model/FavoriteTrack; + iput-boolean v2, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z + + iget-object v1, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + + iput-object v2, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + + if-eqz v0, :dispatch if-eqz v1, :dispatch - iget-object v2, p0, Lradiant/SwipeToQueue;->fragment:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; - invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + invoke-interface {v2, v1}, Lradiant/swipe/QueueRowResolver;->isValid(Lradiant/swipe/QueueRequest;)Z - move-result-object v2 + move-result v0 - check-cast v2, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + if-eqz v0, :dispatch - if-eqz v2, :dispatch - - invoke-virtual {v2, v0, v1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V + invoke-interface {v2, v1}, Lradiant/swipe/QueueRowResolver;->execute(Lradiant/swipe/QueueRequest;)V :dispatch invoke-super {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->onSelectedChanged(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/swipe/DynamicTrackResolver.smali new file mode 100644 index 0000000..7bcb4da --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicTrackResolver.smali @@ -0,0 +1,477 @@ +.class public final Lradiant/swipe/DynamicTrackResolver; +.super Ljava/lang/Object; +.source "DynamicTrackResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final recycler:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; + .locals 8 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lo6/b; + + if-eqz v1, :invalid + + check-cast v0, Lo6/b; + + iget-object v1, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v1, :invalid + + invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object v2 + + instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; + + if-eqz v1, :invalid + + check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; + + invoke-virtual {v2}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v2 + + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v3, :check_size + + goto :invalid + + :check_size + invoke-interface {v2}, Ljava/util/List;->size()I + + move-result v4 + + if-lt v3, v4, :read_row + + goto :invalid + + :read_row + invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v2 + + instance-of v3, v2, Lo6/b; + + if-eqz v3, :invalid + + check-cast v2, Lo6/b; + + iget-object v3, v0, Lo6/b;->a:Lo6/i; + + iget-object v4, v2, Lo6/b;->a:Lo6/i; + + if-ne v3, v4, :invalid + + iget-wide v3, v0, Lo6/b;->b:J + + iget-wide v5, v2, Lo6/b;->b:J + + cmp-long v7, v3, v5 + + if-nez v7, :invalid + + iget-object v3, v0, Lo6/b;->c:Lo6/b$a; + + iget-object v4, v2, Lo6/b;->c:Lo6/b$a; + + if-eqz v3, :invalid + + if-eqz v4, :invalid + + iget v5, v3, Lo6/b$a;->d:I + + iget v6, v4, Lo6/b$a;->d:I + + iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v5, v7, :invalid + + if-ne v6, v7, :invalid + + iget v5, v3, Lo6/b$a;->o:I + + iget v6, v4, Lo6/b$a;->o:I + + if-ne v5, v6, :invalid + + iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; + + iget-object v6, v4, Lo6/b$a;->q:Ljava/lang/String; + + if-eq v5, v6, :valid + + if-eqz v5, :invalid + + invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :invalid + + :valid + return-object v2 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method private currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + .locals 7 + + invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; + + move-result-object v0 + + if-eqz v0, :invalid + + iget-object v1, v0, Lo6/b;->a:Lo6/i; + + iget-object v2, v0, Lo6/b;->c:Lo6/b$a; + + iget-object v3, v1, Lo6/i;->p:Ljava/util/LinkedHashMap; + + iget-object v4, v2, Lo6/b$a;->q:Ljava/lang/String; + + invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v3 + + instance-of v4, v3, Lcom/aspiro/wamp/dynamicpages/data/model/collection/TrackCollectionModule; + + if-eqz v4, :invalid + + check-cast v3, Lcom/aspiro/wamp/dynamicpages/data/model/collection/TrackCollectionModule; + + invoke-virtual {v3}, Lcom/aspiro/wamp/dynamicpages/data/model/collection/MediaItemCollectionModule;->getFilteredPagedListItems()Ljava/util/List; + + move-result-object v3 + + iget v4, v2, Lo6/b$a;->o:I + + if-gez v4, :check_size + + goto :invalid + + :check_size + invoke-interface {v3}, Ljava/util/List;->size()I + + move-result v5 + + if-lt v4, v5, :read_track + + goto :invalid + + :read_track + invoke-interface {v3, v4}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v3 + + instance-of v4, v3, Lcom/aspiro/wamp/model/Track; + + if-eqz v4, :invalid + + check-cast v3, Lcom/aspiro/wamp/model/Track; + + invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v4 + + iget v5, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v4, v5, :invalid + + iget-object v1, v1, Lo6/i;->g:Lcom/aspiro/wamp/model/AvailabilityInteractor; + + invoke-interface {v1, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; + + move-result-object v1 + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + + move-result v1 + + if-eqz v1, :invalid + + return-object v3 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + new-instance v0, Lradiant/swipe/DynamicTrackResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/DynamicTrackResolver;->(Landroidx/recyclerview/widget/RecyclerView;)V + + invoke-static {p0, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 8 + + invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; + + move-result-object v0 + + invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + + move-result-object v1 + + if-eqz v0, :done + + if-eqz v1, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v2 + + if-nez v2, :append + + iget-object v2, v0, Lo6/b;->a:Lo6/i; + + iget-object v3, v0, Lo6/b;->c:Lo6/b$a; + + iget v4, v3, Lo6/b$a;->o:I + + iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; + + invoke-virtual {v2, v4, v5}, Lo6/i;->e(ILjava/lang/String;)V + + goto :done + + :append + iget-object v0, v0, Lo6/b;->a:Lo6/i; + + iget-object v2, v0, Lo6/i;->p:Ljava/util/LinkedHashMap; + + iget-object v3, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + check-cast v3, Lo6/b; + + iget-object v3, v3, Lo6/b;->c:Lo6/b$a; + + iget-object v3, v3, Lo6/b$a;->q:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Lcom/aspiro/wamp/dynamicpages/data/model/collection/TrackCollectionModule; + + new-instance v3, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getPageId()Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getId()Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getPosition()I + + move-result v6 + + invoke-static {v6}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v6 + + invoke-direct {v3, v4, v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v4 + + invoke-static {v4}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v4 + + invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getTitle()Ljava/lang/String; + + move-result-object v5 + + iget-object v6, v0, Lo6/i;->m:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getSelfLink()Ljava/lang/String; + + move-result-object v7 + + invoke-static {v7}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; + + move-result-object v7 + + invoke-static {v4, v5, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v4 + + invoke-virtual {v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget-object v5, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v5}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v5 + + check-cast v5, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v5, :done + + invoke-virtual {v5}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v5 + + invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method public isValid(Lradiant/swipe/QueueRequest;)Z + .locals 1 + + invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + + move-result-object p1 + + if-eqz p1, :invalid + + const/4 p1, 0x1 + + return p1 + + :invalid + const/4 p1, 0x0 + + return p1 +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of v0, p2, Lp7/a$a; + + if-eqz v0, :invalid + + iget-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + if-ne v0, p1, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; + + if-eqz v0, :invalid + + check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + if-gez p2, :check_size + + goto :invalid + + :check_size + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_row + + goto :invalid + + :read_row + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lo6/b; + + if-eqz v0, :invalid + + check-cast p1, Lo6/b; + + iget-object v0, p1, Lo6/b;->c:Lo6/b$a; + + iget v0, v0, Lo6/b$a;->d:I + + new-instance v1, Lradiant/swipe/QueueRequest; + + invoke-direct {v1, p2, p1, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + invoke-direct {p0, v1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + + move-result-object p1 + + if-eqz p1, :invalid + + return-object v1 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali new file mode 100644 index 0000000..f6ae1ed --- /dev/null +++ b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali @@ -0,0 +1,181 @@ +.class public final Lradiant/swipe/FavoriteTracksResolver; +.super Ljava/lang/Object; +.source "FavoriteTracksResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/FavoriteTracksResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/FavoriteTracksResolver;->(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 3 + + invoke-virtual {p0, p1}, Lradiant/swipe/FavoriteTracksResolver;->isValid(Lradiant/swipe/QueueRequest;)Z + + move-result v0 + + if-eqz v0, :done + + iget-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + + if-eqz v0, :done + + iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + + iget-object v2, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + check-cast v2, Lcom/aspiro/wamp/model/FavoriteTrack; + + invoke-virtual {v0, v1, v2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V + + :done + return-void +.end method + +.method public isValid(Lradiant/swipe/QueueRequest;)Z + .locals 4 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v1, :invalid + + iget-object v1, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + + if-eqz v1, :invalid + + iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + + check-cast v0, Lcom/aspiro/wamp/model/FavoriteTrack; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v3 + + iget p1, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v3, p1, :invalid + + invoke-virtual {v1, v2, v0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + + move-result p1 + + return p1 + + :invalid + const/4 p1, 0x0 + + return p1 +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of p1, p2, Ln8/d; + + if-eqz p1, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p1 + + const/4 v0, -0x1 + + if-ne p1, v0, :has_position + + goto :invalid + + :has_position + check-cast p2, Ln8/d; + + iget-object p2, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; + + instance-of v0, p2, Lcom/aspiro/wamp/model/FavoriteTrack; + + if-eqz v0, :invalid + + check-cast p2, Lcom/aspiro/wamp/model/FavoriteTrack; + + iget-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; + + if-eqz v0, :invalid + + invoke-virtual {v0, p1, p2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + + move-result v0 + + if-eqz v0, :invalid + + invoke-virtual {p2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v0 + + new-instance v1, Lradiant/swipe/QueueRequest; + + invoke-direct {v1, p1, p2, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v1 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/MyAlbumsResolver.smali b/patches/extension/radiant/swipe/MyAlbumsResolver.smali new file mode 100644 index 0000000..e638c85 --- /dev/null +++ b/patches/extension/radiant/swipe/MyAlbumsResolver.smali @@ -0,0 +1,267 @@ +.class public final Lradiant/swipe/MyAlbumsResolver; +.super Ljava/lang/Object; +.source "MyAlbumsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lzc/a; + .locals 7 + + if-eqz p1, :invalid + + iget-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView; + + if-eqz v0, :invalid + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->h:Lad/f; + + if-eqz v1, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->N()La50/d; + + move-result-object v0 + + invoke-virtual {v0}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v0 + + iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v1, :check_size + + goto :invalid + + :check_size + invoke-interface {v0}, Ljava/util/List;->size()I + + move-result v2 + + if-lt v1, v2, :read_item + + goto :invalid + + :read_item + invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v0 + + instance-of v1, v0, Lzc/a; + + if-eqz v1, :invalid + + check-cast v0, Lzc/a; + + iget-boolean v1, v0, Lzc/a;->k:Z + + if-eqz v1, :invalid + + iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v1, v2, :invalid + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/MyAlbumsResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/MyAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 7 + + invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView; + + if-eqz v0, :done + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->c:Lfd/c; + + if-eqz v1, :done + + iget-object v2, v1, Lfd/c;->a:Lx40/a; + + instance-of v3, v2, Lh4/a; + + if-eqz v3, :done + + check-cast v2, Lh4/a; + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v3 + + iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v6, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->j:Lio/reactivex/disposables/CompositeDisposable; + + invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + + :done + return-void +.end method + +.method public isValid(Lradiant/swipe/QueueRequest;)Z + .locals 1 + + invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; + + move-result-object p1 + + if-eqz p1, :invalid + + const/4 p1, 0x1 + + return p1 + + :invalid + const/4 p1, 0x0 + + return p1 +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 6 + + instance-of v0, p2, Lbd/d$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/d; + + if-eqz v0, :invalid + + check-cast p1, La50/d; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lzc/a; + + if-eqz v0, :invalid + + check-cast p1, Lzc/a; + + iget-boolean v0, p1, Lzc/a;->k:Z + + if-eqz v0, :invalid + + iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v1 + + new-instance v2, Lradiant/swipe/QueueRequest; + + invoke-direct {v2, p2, v0, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v2 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali new file mode 100644 index 0000000..34411d2 --- /dev/null +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -0,0 +1,180 @@ +.class public final Lradiant/swipe/QueueExecutor; +.super Ljava/lang/Object; +.source "QueueExecutor.smali" + + +# direct methods +.method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + .locals 8 + + const/4 v0, 0x0 + + if-eqz p0, :done + + if-eqz p1, :done + + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v1 + + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v1 + + check-cast v1, Le5/z$n2; + + invoke-virtual {v1}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; + + move-result-object v2 + + invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; + + move-result-object v2 + + invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; + + move-result-object v2 + + if-eqz v2, :play + + if-eqz p4, :done + + iget-object v2, p4, Lh4/a;->b:Lo3/a$a; + + invoke-interface {v2, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + + move-result-object v2 + + iget-object v2, v2, Lo3/a;->e:Lc3/i$a; + + invoke-interface {v2, p1, p2, p3}, Lc3/i$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i; + + move-result-object p1 + + instance-of p2, p0, Landroidx/fragment/app/FragmentActivity; + + if-eqz p2, :done + + check-cast p0, Landroidx/fragment/app/FragmentActivity; + + invoke-virtual {p1, p0}, Lc3/i;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-virtual {v1}, Le5/z$n2;->u3()Lcom/aspiro/wamp/playback/f; + + move-result-object p0 + + invoke-virtual {p1}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result p1 + + const/4 p2, 0x1 + + invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/f;->a(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f; + + move-result-object v0 + + :done + return-object v0 +.end method + +.method public static hasActiveQueue()Z + .locals 2 + + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v0 + + check-cast v0, Le5/z$n2; + + invoke-virtual {v0}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; + + move-result-object v0 + + if-eqz v0, :empty + + const/4 v0, 0x1 + + return v0 + + :empty + const/4 v0, 0x0 + + return v0 +.end method + +.method public static track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + .locals 2 + + const/4 v0, 0x0 + + :unwrap_context + instance-of v1, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v1, :has_activity + + instance-of v1, p0, Landroid/content/ContextWrapper; + + if-eqz v1, :done + + move-object v1, p0 + + check-cast v1, Landroid/content/ContextWrapper; + + invoke-virtual {v1}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v1 + + if-eq v1, p0, :done + + move-object p0, v1 + + goto :unwrap_context + + :has_activity + + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v1 + + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v1 + + check-cast v1, Le5/z$n2; + + iget-object v1, v1, Le5/z$n2;->k9:Ldagger/internal/f; + + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lm3/f$a; + + invoke-interface {v1, p1, p2, p3}, Lm3/f$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f; + + move-result-object p1 + + check-cast p0, Landroidx/fragment/app/FragmentActivity; + + invoke-virtual {p1, p0}, Lm3/f;->b(Landroidx/fragment/app/FragmentActivity;)V + + const/4 v0, 0x1 + + :done + return v0 +.end method diff --git a/patches/extension/radiant/swipe/QueueRequest.smali b/patches/extension/radiant/swipe/QueueRequest.smali new file mode 100644 index 0000000..566ba23 --- /dev/null +++ b/patches/extension/radiant/swipe/QueueRequest.smali @@ -0,0 +1,27 @@ +.class public final Lradiant/swipe/QueueRequest; +.super Ljava/lang/Object; +.source "QueueRequest.smali" + + +# instance fields +.field public final id:I + +.field public final media:Ljava/lang/Object; + +.field public final position:I + + +# direct methods +.method public constructor (ILjava/lang/Object;I)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput p1, p0, Lradiant/swipe/QueueRequest;->position:I + + iput-object p2, p0, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + iput p3, p0, Lradiant/swipe/QueueRequest;->id:I + + return-void +.end method diff --git a/patches/extension/radiant/swipe/QueueRowResolver.smali b/patches/extension/radiant/swipe/QueueRowResolver.smali new file mode 100644 index 0000000..bfbea58 --- /dev/null +++ b/patches/extension/radiant/swipe/QueueRowResolver.smali @@ -0,0 +1,14 @@ +.class public interface abstract Lradiant/swipe/QueueRowResolver; +.super Ljava/lang/Object; +.source "QueueRowResolver.smali" + + +# virtual methods +.method public abstract execute(Lradiant/swipe/QueueRequest;)V +.end method + +.method public abstract isValid(Lradiant/swipe/QueueRequest;)Z +.end method + +.method public abstract resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.end method diff --git a/patches/manifest.json b/patches/manifest.json index 401a27a..23b9419 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -430,10 +430,16 @@ ], "extensionFiles": [ "radiant/SwipeToQueue.smali", - "radiant/QueueSwipeRemove.smali" + "radiant/QueueSwipeRemove.smali", + "radiant/swipe/QueueRequest.smali", + "radiant/swipe/QueueRowResolver.smali", + "radiant/swipe/QueueExecutor.smali", + "radiant/swipe/FavoriteTracksResolver.smali", + "radiant/swipe/DynamicTrackResolver.smali", + "radiant/swipe/MyAlbumsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks (in library/my tracks only for now) to add them to the play queue.", + "description": "Swipe on tracks/albums to add them to the play queue.", "default": false, "advancedOptions": [ { diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index bf6e8d2..568c489 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -2,7 +2,7 @@ +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali @@ -107,6 +107,118 @@ .end method - + +.method public final Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + .locals 3 @@ -131,11 +131,61 @@ + + iget-object p1, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;->f:Landroidx/recyclerview/widget/RecyclerView; + -+ invoke-static {p0, p1}, Lradiant/SwipeToQueue;->install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p1}, Lradiant/swipe/FavoriteTracksResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V .line 226 .line 227 invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; +--- a/p7/a.smali ++++ b/p7/a.smali +@@ -33,3 +33,11 @@ + .end method + ++.method public b(Landroidx/recyclerview/widget/RecyclerView;)V ++ .locals 0 ++ ++ invoke-static {p1}, Lradiant/swipe/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V ++ ++ return-void ++.end method ++ + .method public final c(Ljava/lang/Object;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V +--- a/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali ++++ b/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali +@@ -1286,6 +1286,8 @@ + .line 23 + invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/MyAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 24 + .line 25 + .line 26 +--- a/androidx/recyclerview/widget/ItemTouchHelper$2.smali ++++ b/androidx/recyclerview/widget/ItemTouchHelper$2.smali +@@ -773,7 +773,11 @@ + const/4 v5, 0x1 + + .line 54 +- if-eq p1, v5, :cond_9 ++ if-ne p1, v5, :rl_not_explicit_release ++ iget-object v6, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback; ++ invoke-static {v6, v5}, Lradiant/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V ++ goto :cond_9 ++ :rl_not_explicit_release + + .line 55 + .line 56 +@@ -867,6 +871,9 @@ + + .line 97 + :cond_6 ++ const/4 v6, 0x0 ++ iget-object v1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback; ++ invoke-static {v1, v6}, Lradiant/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V + iget-object p1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker; + + .line 98 --- a/h4/a.smali +++ b/h4/a.smali @@ -931,1 +931,46 @@ From ad196c32283b770ad4a6ed3a311f974a5a66d108 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Fri, 14 Aug 2026 15:52:44 +0200 Subject: [PATCH 07/19] feat(swipe to queue): queue collection playlists support --- .../app/src/main/assets/patches-manifest.json | 5 +- .../radiant/swipe/MyPlaylistsResolver.smali | 311 ++++++++++++++++++ .../radiant/swipe/QueueExecutor.smali | 82 +++++ patches/manifest.json | 5 +- patches/swipe-to-queue.patch | 11 + 5 files changed, 410 insertions(+), 4 deletions(-) create mode 100644 patches/extension/radiant/swipe/MyPlaylistsResolver.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 23b9419..a1a5ed1 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -436,10 +436,11 @@ "radiant/swipe/QueueExecutor.smali", "radiant/swipe/FavoriteTracksResolver.smali", "radiant/swipe/DynamicTrackResolver.smali", - "radiant/swipe/MyAlbumsResolver.smali" + "radiant/swipe/MyAlbumsResolver.smali", + "radiant/swipe/MyPlaylistsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks/albums to add them to the play queue.", + "description": "Swipe on tracks/albums/playlists to add them to the play queue.", "default": false, "advancedOptions": [ { diff --git a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali new file mode 100644 index 0000000..e938c6b --- /dev/null +++ b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali @@ -0,0 +1,311 @@ +.class public final Lradiant/swipe/MyPlaylistsResolver; +.super Ljava/lang/Object; +.source "MyPlaylistsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lcf/b; + .locals 6 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lcom/aspiro/wamp/model/Playlist; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/model/Playlist; + + iget-object v1, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView; + + if-eqz v1, :invalid + + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->j:Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h; + + if-eqz v2, :invalid + + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->N()La50/d; + + move-result-object v1 + + invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v2, :check_size + + goto :invalid + + :check_size + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v3 + + if-lt v2, v3, :read_item + + goto :invalid + + :read_item + invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v1 + + instance-of v2, v1, Lcf/b; + + if-eqz v2, :invalid + + check-cast v1, Lcf/b; + + iget-boolean v2, v1, Lcf/b;->h:Z + + if-eqz v2, :invalid + + iget-boolean v2, v1, Lcf/b;->f:Z + + if-eqz v2, :check_playlist + + const-string v2, "NOT_READY" + + iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v2 + + if-nez v2, :invalid + + :check_playlist + iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v3 + + if-lez v3, :invalid + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :invalid + + return-object v1 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/MyPlaylistsResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/MyPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 6 + + invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView; + + if-eqz v0, :done + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->d:Lhf/c; + + if-eqz v1, :done + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v2 + + iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v5, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + +.method public isValid(Lradiant/swipe/QueueRequest;)Z + .locals 1 + + invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; + + move-result-object p1 + + if-eqz p1, :invalid + + const/4 p1, 0x1 + + return p1 + + :invalid + const/4 p1, 0x0 + + return p1 +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of v0, p2, Ldf/d$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/d; + + if-eqz v0, :invalid + + check-cast p1, La50/d; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lcf/b; + + if-eqz v0, :invalid + + check-cast p1, Lcf/b; + + iget-boolean v0, p1, Lcf/b;->h:Z + + if-eqz v0, :invalid + + iget-boolean v0, p1, Lcf/b;->f:Z + + if-eqz v0, :check_playlist + + const-string v0, "NOT_READY" + + iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :invalid + + :check_playlist + iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v1 + + if-lez v1, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/String;->hashCode()I + + move-result v2 + + new-instance v3, Lradiant/swipe/QueueRequest; + + invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v3 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali index 34411d2..67fb25c 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -117,6 +117,88 @@ return v0 .end method +.method public static playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + .locals 4 + + if-eqz p0, :done + + if-eqz p1, :done + + invoke-virtual {p1}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v0 + + if-lez v0, :done + + :unwrap_context + instance-of v0, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v0, :has_activity + + instance-of v0, p0, Landroid/content/ContextWrapper; + + if-eqz v0, :done + + move-object v0, p0 + + check-cast v0, Landroid/content/ContextWrapper; + + invoke-virtual {v0}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v0 + + if-eq v0, p0, :done + + move-object p0, v0 + + goto :unwrap_context + + :has_activity + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v0 + + check-cast v0, Le5/z$n2; + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + iget-object v1, v0, Le5/z$n2;->w8:Ldagger/internal/f; + + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a; + + invoke-interface {v1, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/h; + + move-result-object p2 + + check-cast p0, Landroidx/fragment/app/FragmentActivity; + + invoke-virtual {p2, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/h;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-virtual {v0}, Le5/z$n2;->y3()Lcom/aspiro/wamp/playback/k0; + + move-result-object p0 + + invoke-virtual {p0, p1, p3}, Lcom/aspiro/wamp/playback/k0;->c(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + .method public static track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z .locals 2 diff --git a/patches/manifest.json b/patches/manifest.json index 23b9419..2672623 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -436,10 +436,11 @@ "radiant/swipe/QueueExecutor.smali", "radiant/swipe/FavoriteTracksResolver.smali", "radiant/swipe/DynamicTrackResolver.smali", - "radiant/swipe/MyAlbumsResolver.smali" + "radiant/swipe/MyAlbumsResolver.smali", + "radiant/swipe/MyPlaylistsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks/albums to add them to the play queue.", + "description": "Swipe on tracks/albums/playlists to add them to the play queue", "default": false, "advancedOptions": [ { diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 568c489..84c8560 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -157,6 +157,17 @@ invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + invoke-static {p0, p2}, Lradiant/swipe/MyAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 24 + .line 25 + .line 26 +--- a/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali ++++ b/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali +@@ -1297,6 +1297,8 @@ + .line 23 + invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/MyPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 24 .line 25 From 28bf8ad14884c10e9391b198057a186499d6744b Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Fri, 14 Aug 2026 17:25:59 +0200 Subject: [PATCH 08/19] feat(swipe to queue): mixes/radio queuing support --- .../app/src/main/assets/patches-manifest.json | 3 +- .../swipe/MyMixesAndRadioResolver.smali | 322 ++++++++++++++++++ .../radiant/swipe/QueueExecutor.smali | 88 +++++ patches/manifest.json | 3 +- patches/swipe-to-queue.patch | 16 +- 5 files changed, 428 insertions(+), 4 deletions(-) create mode 100644 patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index a1a5ed1..dd2742c 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -437,7 +437,8 @@ "radiant/swipe/FavoriteTracksResolver.smali", "radiant/swipe/DynamicTrackResolver.smali", "radiant/swipe/MyAlbumsResolver.smali", - "radiant/swipe/MyPlaylistsResolver.smali" + "radiant/swipe/MyPlaylistsResolver.smali", + "radiant/swipe/MyMixesAndRadioResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue.", diff --git a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali new file mode 100644 index 0000000..88260a8 --- /dev/null +++ b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali @@ -0,0 +1,322 @@ +.class public final Lradiant/swipe/MyMixesAndRadioResolver; +.super Ljava/lang/Object; +.source "MyMixesAndRadioResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lve/a; + .locals 6 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lcom/aspiro/wamp/mix/model/Mix; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/mix/model/Mix; + + iget-object v1, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView; + + if-eqz v1, :invalid + + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; + + if-eqz v2, :invalid + + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->N()La50/d; + + move-result-object v1 + + invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v2, :check_size + + goto :invalid + + :check_size + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v3 + + if-lt v2, v3, :read_item + + goto :invalid + + :read_item + invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v1 + + instance-of v2, v1, Lve/a; + + if-eqz v2, :invalid + + check-cast v1, Lve/a; + + iget-boolean v2, v1, Lve/a;->f:Z + + if-eqz v2, :invalid + + iget-object v2, v1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + + if-eqz v2, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v0 + + iget-object v3, v1, Lve/a;->a:Ljava/lang/String; + + invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v4 + + if-eqz v4, :invalid + + invoke-virtual {v2}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v2 + + if-eqz v2, :invalid + + invoke-virtual {v3}, Ljava/lang/String;->hashCode()I + + move-result v2 + + iget v3, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v2, v3, :invalid + + return-object v1 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/MyMixesAndRadioResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/MyMixesAndRadioResolver;->(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 7 + + invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView; + + if-eqz v0, :done + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; + + if-eqz v1, :done + + iget-object v2, v1, Lpe/f;->a:Lx40/a; + + instance-of v3, v2, Lh4/a; + + if-eqz v3, :done + + check-cast v2, Lh4/a; + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v3 + + iget-object v4, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + + new-instance v5, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + const-string v6, "mycollection_mixes_and_radio" + + invoke-direct {v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V + + iget-object v6, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->h:Lio/reactivex/disposables/CompositeDisposable; + + invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + + :done + return-void +.end method + +.method public isValid(Lradiant/swipe/QueueRequest;)Z + .locals 1 + + invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a; + + move-result-object p1 + + if-eqz p1, :invalid + + const/4 p1, 0x1 + + return p1 + + :invalid + const/4 p1, 0x0 + + return p1 +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of v0, p2, Lqe/c$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/d; + + if-eqz v0, :invalid + + check-cast p1, La50/d; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + if-gez p2, :check_size + + goto :invalid + + :check_size + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lve/a; + + if-eqz v0, :invalid + + check-cast p1, Lve/a; + + iget-boolean v0, p1, Lve/a;->f:Z + + if-eqz v0, :invalid + + iget-object v0, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + + if-eqz v0, :invalid + + iget-object v1, p1, Lve/a;->a:Ljava/lang/String; + + invoke-virtual {v0}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v2 + + if-eqz v2, :invalid + + invoke-virtual {v1}, Ljava/lang/String;->hashCode()I + + move-result v2 + + new-instance v3, Lradiant/swipe/QueueRequest; + + invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v3 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali index 67fb25c..3b20d5f 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -117,6 +117,94 @@ return v0 .end method +.method public static mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + .locals 4 + + const/4 v0, 0x0 + + if-eqz p0, :done + + if-eqz p1, :done + + :unwrap_context + instance-of v1, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v1, :has_activity + + instance-of v1, p0, Landroid/content/ContextWrapper; + + if-eqz v1, :done + + move-object v1, p0 + + check-cast v1, Landroid/content/ContextWrapper; + + invoke-virtual {v1}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v1 + + if-eq v1, p0, :done + + move-object p0, v1 + + goto :unwrap_context + + :has_activity + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + if-eqz p4, :done + + iget-object v1, p4, Lh4/a;->h:Lu3/a$a; + + invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + + move-result-object v1 + + iget-object v1, v1, Lu3/a;->e:Lj3/n$a; + + invoke-interface {v1, p1, p2, p3}, Lj3/n$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n; + + move-result-object p1 + + check-cast p0, Landroidx/fragment/app/FragmentActivity; + + invoke-virtual {p1, p0}, Lj3/n;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object p0 + + invoke-virtual {p0}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object p0 + + check-cast p0, Le5/z$n2; + + invoke-virtual {p0}, Le5/z$n2;->x3()Lcom/aspiro/wamp/playback/e0; + + move-result-object p0 + + invoke-virtual {p1}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object p1 + + const/4 p2, 0x1 + + invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/e0;->a(Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lio/reactivex/disposables/Disposable; + + move-result-object v0 + + :done + return-object v0 +.end method + .method public static playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V .locals 4 diff --git a/patches/manifest.json b/patches/manifest.json index 2672623..d3e6a61 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -437,7 +437,8 @@ "radiant/swipe/FavoriteTracksResolver.smali", "radiant/swipe/DynamicTrackResolver.smali", "radiant/swipe/MyAlbumsResolver.smali", - "radiant/swipe/MyPlaylistsResolver.smali" + "radiant/swipe/MyPlaylistsResolver.smali", + "radiant/swipe/MyMixesAndRadioResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue", diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 84c8560..51d132e 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -152,7 +152,7 @@ .method public final c(Ljava/lang/Object;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V --- a/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali -@@ -1286,6 +1286,8 @@ +@@ -559,6 +559,8 @@ .line 23 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; @@ -163,11 +163,23 @@ .line 26 --- a/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali -@@ -1297,6 +1297,8 @@ +@@ -581,6 +581,8 @@ .line 23 invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + invoke-static {p0, p2}, Lradiant/swipe/MyPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 24 + .line 25 + .line 26 +--- a/com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali ++++ b/com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali +@@ -556,6 +556,8 @@ + .line 22 + .line 23 + invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/MyMixesAndRadioResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 24 .line 25 From 05b6f4edb2b3743b98665259363bd84496f06e9b Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Fri, 14 Aug 2026 17:54:13 +0200 Subject: [PATCH 09/19] refactor(swipe to queue): fixes and logic improvements --- .../extension/radiant/QueueSwipeRemove.smali | 2 + patches/extension/radiant/SwipeToQueue.smali | 14 +++-- .../radiant/swipe/DynamicTrackResolver.smali | 21 +------- .../swipe/FavoriteTracksResolver.smali | 51 ------------------- .../radiant/swipe/MyAlbumsResolver.smali | 19 ------- .../swipe/MyMixesAndRadioResolver.smali | 19 ------- .../radiant/swipe/MyPlaylistsResolver.smali | 19 ------- .../radiant/swipe/QueueRowResolver.smali | 3 -- patches/swipe-to-queue.patch | 8 ++- 9 files changed, 17 insertions(+), 139 deletions(-) diff --git a/patches/extension/radiant/QueueSwipeRemove.smali b/patches/extension/radiant/QueueSwipeRemove.smali index c117a82..8b5a4bb 100644 --- a/patches/extension/radiant/QueueSwipeRemove.smali +++ b/patches/extension/radiant/QueueSwipeRemove.smali @@ -74,6 +74,8 @@ div-int/lit8 v8, v8, 0xa + if-lez v8, :draw_background + if-eqz p5, :draw_alpha if-lt v5, v8, :below_threshold diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index 14b1947..111afcf 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -260,6 +260,8 @@ # / 10 = 30% of row width (30% threshold) div-int/lit8 v8, v8, 0xa + if-lez v8, :disarm + if-lt v5, v8, :disarm iget-object v8, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; @@ -307,6 +309,8 @@ div-int/lit8 v8, v8, 0xa + if-lez v8, :draw_background + const/16 v9, 0x40 mul-int/2addr v9, v5 @@ -470,15 +474,9 @@ if-eqz v1, :dispatch - iget-object v2, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; + iget-object v0, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; - invoke-interface {v2, v1}, Lradiant/swipe/QueueRowResolver;->isValid(Lradiant/swipe/QueueRequest;)Z - - move-result v0 - - if-eqz v0, :dispatch - - invoke-interface {v2, v1}, Lradiant/swipe/QueueRowResolver;->execute(Lradiant/swipe/QueueRequest;)V + invoke-interface {v0, v1}, Lradiant/swipe/QueueRowResolver;->execute(Lradiant/swipe/QueueRequest;)V :dispatch invoke-super {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->onSelectedChanged(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/swipe/DynamicTrackResolver.smali index 7bcb4da..721717e 100644 --- a/patches/extension/radiant/swipe/DynamicTrackResolver.smali +++ b/patches/extension/radiant/swipe/DynamicTrackResolver.smali @@ -371,25 +371,6 @@ return-void .end method -.method public isValid(Lradiant/swipe/QueueRequest;)Z - .locals 1 - - invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; - - move-result-object p1 - - if-eqz p1, :invalid - - const/4 p1, 0x1 - - return p1 - - :invalid - const/4 p1, 0x0 - - return p1 -.end method - .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 5 @@ -456,6 +437,8 @@ iget-object v0, p1, Lo6/b;->c:Lo6/b$a; + if-eqz v0, :invalid + iget v0, v0, Lo6/b$a;->d:I new-instance v1, Lradiant/swipe/QueueRequest; diff --git a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali index f6ae1ed..87bbd2b 100644 --- a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali +++ b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali @@ -47,12 +47,6 @@ .method public execute(Lradiant/swipe/QueueRequest;)V .locals 3 - invoke-virtual {p0, p1}, Lradiant/swipe/FavoriteTracksResolver;->isValid(Lradiant/swipe/QueueRequest;)Z - - move-result v0 - - if-eqz v0, :done - iget-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -75,51 +69,6 @@ return-void .end method -.method public isValid(Lradiant/swipe/QueueRequest;)Z - .locals 4 - - if-eqz p1, :invalid - - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; - - instance-of v1, v0, Lcom/aspiro/wamp/model/FavoriteTrack; - - if-eqz v1, :invalid - - iget-object v1, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; - - invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; - - move-result-object v1 - - check-cast v1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment; - - if-eqz v1, :invalid - - iget v2, p1, Lradiant/swipe/QueueRequest;->position:I - - check-cast v0, Lcom/aspiro/wamp/model/FavoriteTrack; - - invoke-virtual {v0}, Lcom/aspiro/wamp/model/MediaItem;->getId()I - - move-result v3 - - iget p1, p1, Lradiant/swipe/QueueRequest;->id:I - - if-ne v3, p1, :invalid - - invoke-virtual {v1, v2, v0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z - - move-result p1 - - return p1 - - :invalid - const/4 p1, 0x0 - - return p1 -.end method - .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 5 diff --git a/patches/extension/radiant/swipe/MyAlbumsResolver.smali b/patches/extension/radiant/swipe/MyAlbumsResolver.smali index e638c85..274aa7b 100644 --- a/patches/extension/radiant/swipe/MyAlbumsResolver.smali +++ b/patches/extension/radiant/swipe/MyAlbumsResolver.smali @@ -174,25 +174,6 @@ return-void .end method -.method public isValid(Lradiant/swipe/QueueRequest;)Z - .locals 1 - - invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; - - move-result-object p1 - - if-eqz p1, :invalid - - const/4 p1, 0x1 - - return p1 - - :invalid - const/4 p1, 0x0 - - return p1 -.end method - .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 6 diff --git a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali index 88260a8..bfd52de 100644 --- a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali +++ b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali @@ -210,25 +210,6 @@ return-void .end method -.method public isValid(Lradiant/swipe/QueueRequest;)Z - .locals 1 - - invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a; - - move-result-object p1 - - if-eqz p1, :invalid - - const/4 p1, 0x1 - - return p1 - - :invalid - const/4 p1, 0x0 - - return p1 -.end method - .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 5 diff --git a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali index e938c6b..a436c07 100644 --- a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali +++ b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali @@ -193,25 +193,6 @@ return-void .end method -.method public isValid(Lradiant/swipe/QueueRequest;)Z - .locals 1 - - invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; - - move-result-object p1 - - if-eqz p1, :invalid - - const/4 p1, 0x1 - - return p1 - - :invalid - const/4 p1, 0x0 - - return p1 -.end method - .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 5 diff --git a/patches/extension/radiant/swipe/QueueRowResolver.smali b/patches/extension/radiant/swipe/QueueRowResolver.smali index bfbea58..865b89b 100644 --- a/patches/extension/radiant/swipe/QueueRowResolver.smali +++ b/patches/extension/radiant/swipe/QueueRowResolver.smali @@ -7,8 +7,5 @@ .method public abstract execute(Lradiant/swipe/QueueRequest;)V .end method -.method public abstract isValid(Lradiant/swipe/QueueRequest;)Z -.end method - .method public abstract resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .end method diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 51d132e..bcf5d68 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali -@@ -107,6 +107,118 @@ +@@ -107,6 +107,124 @@ .end method @@ -70,6 +70,12 @@ + + if-eqz p1, :done + ++ invoke-virtual {p1, v5}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->b(I)Lcom/aspiro/wamp/model/FavoriteTrack; ++ ++ move-result-object p2 ++ ++ if-eqz p2, :done ++ + iget-object v0, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->m:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->m(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/MyItemsSource; From dcf207d307349fdeb0b975b2f3748c48a482feac Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Mon, 17 Aug 2026 14:23:29 +0200 Subject: [PATCH 10/19] feat(swipe to queue): queue search items support --- .../app/src/main/assets/patches-manifest.json | 6 +- .../radiant/swipe/PlaylistItemsResolver.smali | 392 +++++++++++++++++ .../radiant/swipe/SearchAlbumsResolver.smali | 248 +++++++++++ .../swipe/SearchPlaylistsResolver.smali | 296 +++++++++++++ .../radiant/swipe/UnifiedSearchResolver.smali | 416 ++++++++++++++++++ patches/manifest.json | 6 +- patches/swipe-to-queue.patch | 52 +++ 7 files changed, 1414 insertions(+), 2 deletions(-) create mode 100644 patches/extension/radiant/swipe/PlaylistItemsResolver.smali create mode 100644 patches/extension/radiant/swipe/SearchAlbumsResolver.smali create mode 100644 patches/extension/radiant/swipe/SearchPlaylistsResolver.smali create mode 100644 patches/extension/radiant/swipe/UnifiedSearchResolver.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index dd2742c..c36c802 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -438,7 +438,11 @@ "radiant/swipe/DynamicTrackResolver.smali", "radiant/swipe/MyAlbumsResolver.smali", "radiant/swipe/MyPlaylistsResolver.smali", - "radiant/swipe/MyMixesAndRadioResolver.smali" + "radiant/swipe/MyMixesAndRadioResolver.smali", + "radiant/swipe/SearchAlbumsResolver.smali", + "radiant/swipe/SearchPlaylistsResolver.smali", + "radiant/swipe/PlaylistItemsResolver.smali", + "radiant/swipe/UnifiedSearchResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue.", diff --git a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali new file mode 100644 index 0000000..a88b44b --- /dev/null +++ b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali @@ -0,0 +1,392 @@ +.class public final Lradiant/swipe/PlaylistItemsResolver; +.super Ljava/lang/Object; +.source "PlaylistItemsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + +# instance fields +.field private final recycler:Ljava/lang/ref/WeakReference; + +# direct methods +.method private constructor (Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + iput-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + .locals 7 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + iget-object v1, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v1 + check-cast v1, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; + if-eqz v1, :invalid + + invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + move-result-object v2 + instance-of v3, v2, La50/b; + if-eqz v3, :invalid + check-cast v2, La50/b; + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + if-gez v3, :check_size + goto :invalid + + :check_size + invoke-virtual {v2}, Ljava/util/ArrayList;->size()I + move-result v4 + if-lt v3, v4, :read_item + goto :invalid + + :read_item + invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + move-result-object v2 + + instance-of v3, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; + if-eqz v3, :captured_podcast + instance-of v3, v2, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; + if-eqz v3, :invalid + goto :member + + :captured_podcast + instance-of v3, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; + if-eqz v3, :captured_suggestion + instance-of v3, v2, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; + if-eqz v3, :invalid + + :member + move-object v3, v0 + check-cast v3, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel; + move-object v4, v2 + check-cast v4, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel; + + invoke-interface {v4}, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel;->getShouldHideItem()Z + move-result v5 + if-nez v5, :invalid + + invoke-interface {v4}, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel;->getAvailability()Lcom/aspiro/wamp/model/Availability$MediaItem; + move-result-object v5 + invoke-virtual {v5}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + move-result v5 + if-eqz v5, :invalid + + invoke-interface {v3}, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel;->getUuid()Ljava/lang/String; + move-result-object v5 + invoke-interface {v4}, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel;->getUuid()Ljava/lang/String; + move-result-object v6 + if-eq v5, v6, :member_identity + if-eqz v5, :invalid + invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + move-result v5 + if-eqz v5, :invalid + + :member_identity + invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object v0 + invoke-static {v2}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object v3 + if-eqz v0, :invalid + if-eqz v3, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/MediaItem;->getIndex()I + move-result v4 + invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getIndex()I + move-result v5 + if-ne v4, v5, :invalid + goto :check_track + + :captured_suggestion + instance-of v3, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz v3, :invalid + instance-of v3, v2, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz v3, :invalid + + move-object v3, v2 + check-cast v3, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + invoke-virtual {v3}, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel;->getAvailability()Lcom/aspiro/wamp/model/Availability; + move-result-object v3 + invoke-interface {v3}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z + move-result v3 + if-eqz v3, :invalid + + invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object v0 + invoke-static {v2}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object v3 + if-eqz v0, :invalid + if-eqz v3, :invalid + + :check_track + invoke-virtual {v0}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v4 + invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v5 + if-ne v4, v5, :invalid + iget v6, p1, Lradiant/swipe/QueueRequest;->id:I + if-ne v5, v6, :invalid + + iget-object v4, v1, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + if-eqz v4, :invalid + invoke-interface {v4, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; + move-result-object v4 + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + move-result v4 + if-eqz v4, :invalid + + return-object v2 + + :invalid + const/4 v0, 0x0 + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + .locals 1 + + if-eqz p0, :done + new-instance v0, Lradiant/swipe/PlaylistItemsResolver; + invoke-direct {v0, p0}, Lradiant/swipe/PlaylistItemsResolver;->(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + invoke-static {p0, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + +.method private playlistIndex(Lradiant/swipe/QueueRequest;)I + .locals 6 + + iget-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v0 + check-cast v0, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; + if-eqz v0, :invalid + + invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + move-result-object v0 + instance-of v1, v0, La50/b; + if-eqz v1, :invalid + check-cast v0, La50/b; + iget-object v0, v0, La50/b;->b:Ljava/util/ArrayList; + + iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + const/4 v2, 0x0 + const/4 v3, 0x0 + + :loop + if-ge v2, v1, :done + invoke-virtual {v0, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + move-result-object v4 + instance-of v5, v4, Lcom/aspiro/wamp/playlist/viewmodel/item/PlaylistItemViewModel; + if-eqz v5, :next + add-int/lit8 v3, v3, 0x1 + + :next + add-int/lit8 v2, v2, 0x1 + goto :loop + + :done + return v3 + + :invalid + const/4 v0, -0x1 + return v0 +.end method + +.method private static track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + .locals 1 + + instance-of v0, p0, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; + if-eqz v0, :podcast + check-cast p0, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; + invoke-virtual {p0}, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel;->getTrack()Lcom/aspiro/wamp/model/Track; + move-result-object p0 + return-object p0 + + :podcast + instance-of v0, p0, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; + if-eqz v0, :suggestion + check-cast p0, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; + invoke-virtual {p0}, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel;->getItem()Lcom/aspiro/wamp/model/MediaItemParent; + move-result-object p0 + invoke-virtual {p0}, Lcom/aspiro/wamp/model/MediaItemParent;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; + move-result-object p0 + instance-of v0, p0, Lcom/aspiro/wamp/model/Track; + if-eqz v0, :invalid + check-cast p0, Lcom/aspiro/wamp/model/Track; + return-object p0 + + :suggestion + instance-of v0, p0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz v0, :invalid + check-cast p0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + invoke-virtual {p0}, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel;->getTrack()Lcom/aspiro/wamp/model/Track; + move-result-object p0 + return-object p0 + + :invalid + const/4 p0, 0x0 + return-object p0 +.end method + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 8 + + invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + move-result-object v0 + if-eqz v0, :done + invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object v1 + if-eqz v1, :done + + iget-object v2, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v2 + check-cast v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; + if-eqz v2, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + move-result v3 + if-eqz v3, :play + + instance-of v3, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz v3, :append_member + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v3 + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + move-result-object v3 + sget v4, Lcom/aspiro/wamp/R$string;->recommended_tracks:I + invoke-static {v4}, Lcom/aspiro/wamp/util/h0;->c(I)Ljava/lang/String; + move-result-object v4 + iget-object v5, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; + sget-object v6, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None;->INSTANCE:Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None; + invoke-static {v3, v4, v5, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + move-result-object v7 + invoke-virtual {v7, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + sget-object v6, Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Suggestions;->INSTANCE:Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Suggestions; + goto :append + + :append_member + iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; + if-eqz v3, :done + invoke-interface {v3}, Lcom/aspiro/wamp/playlist/ui/items/a;->k()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel; + move-result-object v3 + invoke-virtual {v3}, Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;->getPlaylist()Lcom/aspiro/wamp/model/Playlist; + move-result-object v3 + if-eqz v3, :done + iget-object v4, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; + if-eqz v4, :member_nav_ready + invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + move-result-object v4 + :member_nav_ready + invoke-static {v3, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->f(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/PlaylistSource; + move-result-object v7 + invoke-virtual {v7, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + sget-object v6, Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Items;->INSTANCE:Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Items; + + :append + invoke-virtual {v2}, Landroid/view/View;->getContext()Landroid/content/Context; + move-result-object v3 + invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + goto :done + + :play + iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; + if-eqz v3, :done + instance-of v0, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz v0, :play_member + invoke-interface {v3, v1}, Lcom/aspiro/wamp/playlist/ui/items/a;->c(Lcom/aspiro/wamp/model/Track;)V + goto :done + + :play_member + invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->playlistIndex(Lradiant/swipe/QueueRequest;)I + move-result v0 + if-gez v0, :start_member + goto :done + :start_member + invoke-interface {v3, v0}, Lcom/aspiro/wamp/playlist/ui/items/a;->i(I)V + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + iget-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v0 + if-ne v0, p1, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + move-result v0 + const/4 v1, -0x1 + if-ne v0, v1, :has_position + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + move-result-object p1 + instance-of v1, p1, La50/b; + if-eqz v1, :invalid + check-cast p1, La50/b; + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + invoke-virtual {p1}, Ljava/util/ArrayList;->size()I + move-result v1 + if-lt v0, v1, :read_item + goto :invalid + + :read_item + invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + move-result-object p1 + + instance-of v1, p2, Lij/q$a; + if-eqz v1, :podcast_holder + instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; + if-eqz v1, :invalid + goto :create + + :podcast_holder + instance-of v1, p2, Lij/a0$a; + if-eqz v1, :suggestion_holder + instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; + if-eqz v1, :invalid + goto :create + + :suggestion_holder + instance-of p2, p2, Lij/j0$a; + if-eqz p2, :invalid + instance-of p2, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; + if-eqz p2, :invalid + + :create + invoke-static {p1}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + move-result-object p2 + if-eqz p2, :invalid + invoke-virtual {p2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v1 + new-instance v2, Lradiant/swipe/QueueRequest; + invoke-direct {v2, v0, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {p0, v2}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + move-result-object p1 + if-eqz p1, :invalid + return-object v2 + + :invalid + const/4 p1, 0x0 + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali new file mode 100644 index 0000000..28920bf --- /dev/null +++ b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali @@ -0,0 +1,248 @@ +.class public final Lradiant/swipe/SearchAlbumsResolver; +.super Ljava/lang/Object; +.source "SearchAlbumsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lzc/a; + .locals 5 + + if-eqz p1, :invalid + + iget-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView; + + if-eqz v0, :invalid + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->f:Lid/e; + + if-eqz v1, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->N()La50/d; + + move-result-object v0 + + invoke-virtual {v0}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v0 + + iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v1, :check_size + + goto :invalid + + :check_size + invoke-interface {v0}, Ljava/util/List;->size()I + + move-result v2 + + if-lt v1, v2, :read_item + + goto :invalid + + :read_item + invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v0 + + instance-of v1, v0, Lzc/a; + + if-eqz v1, :invalid + + check-cast v0, Lzc/a; + + iget-boolean v1, v0, Lzc/a;->k:Z + + if-eqz v1, :invalid + + iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v1, v2, :invalid + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/SearchAlbumsResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/SearchAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 7 + + invoke-direct {p0, p1}, Lradiant/swipe/SearchAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView; + + if-eqz v0, :done + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->c:Lld/c; + + if-eqz v1, :done + + iget-object v2, v1, Lld/c;->a:Lx40/a; + + instance-of v3, v2, Lh4/a; + + if-eqz v3, :done + + check-cast v2, Lh4/a; + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v3 + + iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v6, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->g:Lio/reactivex/disposables/CompositeDisposable; + + invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of v0, p2, Ljd/d$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/d; + + if-eqz v0, :invalid + + check-cast p1, La50/d; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lzc/a; + + if-eqz v0, :invalid + + check-cast p1, Lzc/a; + + iget-boolean v0, p1, Lzc/a;->k:Z + + if-eqz v0, :invalid + + iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v1 + + new-instance v2, Lradiant/swipe/QueueRequest; + + invoke-direct {v2, p2, v0, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v2 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali new file mode 100644 index 0000000..2c31db2 --- /dev/null +++ b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali @@ -0,0 +1,296 @@ +.class public final Lradiant/swipe/SearchPlaylistsResolver; +.super Ljava/lang/Object; +.source "SearchPlaylistsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lcf/b; + .locals 6 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lcom/aspiro/wamp/model/Playlist; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/model/Playlist; + + iget-object v1, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView; + + if-eqz v1, :invalid + + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->g:Lwf/d; + + if-eqz v2, :invalid + + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->N()La50/d; + + move-result-object v1 + + invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v2, :check_size + + goto :invalid + + :check_size + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v3 + + if-lt v2, v3, :read_item + + goto :invalid + + :read_item + invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v1 + + instance-of v2, v1, Lcf/b; + + if-eqz v2, :invalid + + check-cast v1, Lcf/b; + + iget-boolean v2, v1, Lcf/b;->h:Z + + if-eqz v2, :invalid + + iget-boolean v2, v1, Lcf/b;->f:Z + + if-eqz v2, :check_playlist + + const-string v2, "NOT_READY" + + iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v2 + + if-nez v2, :invalid + + :check_playlist + iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v3 + + if-lez v3, :invalid + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v0 + + invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :invalid + + return-object v1 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/SearchPlaylistsResolver; + + invoke-direct {v0, p0}, Lradiant/swipe/SearchPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 6 + + invoke-direct {p0, p1}, Lradiant/swipe/SearchPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; + + move-result-object p1 + + if-eqz p1, :done + + iget-object v0, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView; + + if-eqz v0, :done + + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->c:Lzf/c; + + if-eqz v1, :done + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v2 + + iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + const-string v5, "mycollection_search_playlists" + + invoke-direct {v4, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V + + iget-object v5, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + instance-of v0, p2, Lxf/d$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/d; + + if-eqz v0, :invalid + + check-cast p1, La50/d; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lcf/b; + + if-eqz v0, :invalid + + check-cast p1, Lcf/b; + + iget-boolean v0, p1, Lcf/b;->h:Z + + if-eqz v0, :invalid + + iget-boolean v0, p1, Lcf/b;->f:Z + + if-eqz v0, :check_playlist + + const-string v0, "NOT_READY" + + iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :invalid + + :check_playlist + iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v1 + + if-lez v1, :invalid + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/String;->hashCode()I + + move-result v2 + + new-instance v3, Lradiant/swipe/QueueRequest; + + invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v3 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali new file mode 100644 index 0000000..96c01f0 --- /dev/null +++ b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali @@ -0,0 +1,416 @@ +.class public final Lradiant/swipe/UnifiedSearchResolver; +.super Ljava/lang/Object; +.source "UnifiedSearchResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; +.field private final recycler:Ljava/lang/ref/WeakReference; + +# direct methods +.method private constructor (Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + new-instance v0, Ljava/lang/ref/WeakReference; + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + iput-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + new-instance v0, Ljava/lang/ref/WeakReference; + invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + iput-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + .locals 7 + + if-eqz p1, :invalid + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + iget-object v1, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v1 + check-cast v1, Landroidx/recyclerview/widget/RecyclerView; + if-eqz v1, :invalid + invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + move-result-object v1 + instance-of v2, v1, La50/d; + if-eqz v2, :invalid + check-cast v1, La50/d; + invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + move-result-object v1 + + iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + if-gez v2, :check_size + goto :invalid + :check_size + invoke-interface {v1}, Ljava/util/List;->size()I + move-result v3 + if-lt v2, v3, :read_item + goto :invalid + :read_item + invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; + move-result-object v1 + + instance-of v2, v0, Lbm/k; + if-eqz v2, :album + instance-of v2, v1, Lbm/k; + if-eqz v2, :invalid + move-object v2, v0 + check-cast v2, Lbm/k; + move-object v3, v1 + check-cast v3, Lbm/k; + iget-object v4, v3, Lbm/k;->e:Lcom/aspiro/wamp/model/Availability$MediaItem; + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + move-result v4 + if-eqz v4, :invalid + iget-object v2, v2, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + iget-object v3, v3, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + invoke-virtual {v2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v2 + invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v3 + if-ne v2, v3, :invalid + iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + if-ne v3, v4, :invalid + return-object v1 + + :album + instance-of v2, v0, Lbm/a; + if-eqz v2, :playlist + instance-of v2, v1, Lbm/a; + if-eqz v2, :invalid + move-object v2, v0 + check-cast v2, Lbm/a; + move-object v3, v1 + check-cast v3, Lbm/a; + iget-object v4, v3, Lbm/a;->c:Lcom/aspiro/wamp/model/Availability$Album; + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$Album;->isAvailable()Z + move-result v4 + if-eqz v4, :invalid + iget-object v2, v2, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + iget-object v3, v3, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Album;->getId()I + move-result v2 + invoke-virtual {v3}, Lcom/aspiro/wamp/model/Album;->getId()I + move-result v3 + if-ne v2, v3, :invalid + iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + if-ne v3, v4, :invalid + return-object v1 + + :playlist + instance-of v2, v0, Lbm/g; + if-eqz v2, :mix + instance-of v2, v1, Lbm/g; + if-eqz v2, :invalid + move-object v2, v0 + check-cast v2, Lbm/g; + move-object v3, v1 + check-cast v3, Lbm/g; + iget-object v2, v2, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v3, v3, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + invoke-virtual {v3}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + move-result v4 + if-lez v4, :invalid + const-string v4, "NOT_READY" + invoke-virtual {v3}, Lcom/aspiro/wamp/model/Playlist;->getStatus()Ljava/lang/String; + move-result-object v5 + invoke-virtual {v4, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + move-result v4 + if-nez v4, :invalid + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + move-result-object v2 + invoke-virtual {v3}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + move-result-object v3 + invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + move-result v2 + if-eqz v2, :invalid + invoke-virtual {v3}, Ljava/lang/String;->hashCode()I + move-result v2 + iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + if-ne v2, v4, :invalid + + iget-object v2, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v2 + check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; + if-eqz v2, :invalid + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + move-result-object v2 + instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; + if-eqz v4, :invalid + check-cast v2, Lcom/aspiro/wamp/search/v2/d; + iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; + invoke-static {v3}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; + move-result-object v3 + invoke-interface {v2, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getPlaylistAvailability(Ljava/util/UUID;)Lcom/aspiro/wamp/model/Availability$Playlist; + move-result-object v2 + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Availability$Playlist;->isAvailable()Z + move-result v2 + if-eqz v2, :invalid + return-object v1 + + :mix + instance-of v2, v0, Lbm/f; + if-eqz v2, :invalid + instance-of v2, v1, Lbm/f; + if-eqz v2, :invalid + move-object v2, v0 + check-cast v2, Lbm/f; + move-object v3, v1 + check-cast v3, Lbm/f; + iget-object v2, v2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v3, v3, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + invoke-virtual {v2}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + move-result-object v2 + invoke-virtual {v3}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + move-result-object v3 + invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + move-result v2 + if-eqz v2, :invalid + invoke-virtual {v3}, Ljava/lang/String;->hashCode()I + move-result v2 + iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + if-ne v2, v4, :invalid + + iget-object v2, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v2 + check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; + if-eqz v2, :invalid + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + move-result-object v2 + instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; + if-eqz v4, :invalid + check-cast v2, Lcom/aspiro/wamp/search/v2/d; + iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; + invoke-interface {v2, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getMixAvailability(Ljava/lang/String;)Lcom/aspiro/wamp/model/Availability$Mix; + move-result-object v2 + invoke-virtual {v2}, Lcom/aspiro/wamp/model/Availability$Mix;->isAvailable()Z + move-result v2 + if-eqz v2, :invalid + return-object v1 + + :invalid + const/4 v0, 0x0 + return-object v0 +.end method + +.method public static install(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + if-eqz p0, :done + if-eqz p1, :done + new-instance v0, Lradiant/swipe/UnifiedSearchResolver; + invoke-direct {v0, p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + :done + return-void +.end method + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 8 + + invoke-direct {p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + move-result-object v0 + if-eqz v0, :done + + iget-object v1, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v1 + check-cast v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; + if-eqz v1, :done + iget-object v2, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->c:Ltl/q; + if-eqz v2, :done + + invoke-static {v0}, Lbm/i;->a(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + move-result-object v3 + iget-object v4, v2, Ltl/q;->c:Lcom/tidal/android/navigation/NavigationInfo; + + instance-of v5, v0, Lbm/k; + if-eqz v5, :album + move-object v5, v0 + check-cast v5, Lbm/k; + iget-object v6, v5, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + move-result v7 + if-nez v7, :append_track + new-instance v2, Lcom/aspiro/wamp/search/v2/a$g; + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + invoke-direct {v2, v0, v3}, Lcom/aspiro/wamp/search/v2/a$g;->(Lbm/h;I)V + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + move-result-object v0 + invoke-interface {v0, v2}, Ltl/f;->e(Lcom/aspiro/wamp/search/v2/a;)V + goto :done + + :append_track + const-string v7, "" + iget-object p1, v5, Lbm/k;->n:Lcom/aspiro/wamp/search/SearchDataSource; + sget-object v0, Lcom/aspiro/wamp/search/SearchDataSource;->REMOTE:Lcom/aspiro/wamp/search/SearchDataSource; + if-ne p1, v0, :query_ready + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + move-result-object p1 + invoke-interface {p1}, Ltl/h;->c()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery; + move-result-object p1 + iget-object v7, p1, Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;->a:Ljava/lang/String; + :query_ready + invoke-virtual {v6}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result p1 + invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + move-result-object p1 + const/4 v0, 0x0 + if-eqz v4, :nav_ready + invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + move-result-object v0 + :nav_ready + invoke-static {p1, v7, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + move-result-object p1 + invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + move-result-object v0 + invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + goto :done + + :album + instance-of v5, v0, Lbm/a; + if-eqz v5, :playlist + iget-object v5, v2, Ltl/q;->a:Lx40/a; + instance-of v6, v5, Lh4/a; + if-eqz v6, :done + check-cast v5, Lh4/a; + check-cast v0, Lbm/a; + iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + move-result-object v7 + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + move-result-object v0 + if-eqz v0, :done + iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; + invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + goto :done + + :playlist + instance-of v5, v0, Lbm/g; + if-eqz v5, :mix + check-cast v0, Lbm/g; + iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + move-result-object v6 + invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + goto :done + + :mix + instance-of v5, v0, Lbm/f; + if-eqz v5, :done + iget-object v5, v2, Ltl/q;->a:Lx40/a; + instance-of v6, v5, Lh4/a; + if-eqz v6, :done + check-cast v5, Lh4/a; + check-cast v0, Lbm/f; + iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + move-result-object v7 + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + move-result-object v0 + if-eqz v0, :done + iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; + invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 6 + + iget-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + move-result-object v0 + if-ne v0, p1, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + move-result v0 + const/4 v1, -0x1 + if-ne v0, v1, :has_position + goto :invalid + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + move-result-object p1 + instance-of v1, p1, La50/d; + if-eqz v1, :invalid + check-cast p1, La50/d; + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + move-result-object p1 + invoke-interface {p1}, Ljava/util/List;->size()I + move-result v1 + if-lt v0, v1, :read_item + goto :invalid + :read_item + invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; + move-result-object p1 + + instance-of v1, p2, Lul/n0$a; + if-eqz v1, :album_holder + instance-of v1, p1, Lbm/k; + if-eqz v1, :invalid + move-object v1, p1 + check-cast v1, Lbm/k; + iget-object v1, v1, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + move-result v1 + goto :create + + :album_holder + instance-of v1, p2, Lul/d$a; + if-eqz v1, :playlist_holder + instance-of v1, p1, Lbm/a; + if-eqz v1, :invalid + move-object v1, p1 + check-cast v1, Lbm/a; + iget-object v1, v1, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I + move-result v1 + goto :create + + :playlist_holder + instance-of v1, p2, Lul/a0$a; + if-eqz v1, :mix_holder + instance-of v1, p1, Lbm/g; + if-eqz v1, :invalid + move-object v1, p1 + check-cast v1, Lbm/g; + iget-object v1, v1, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + move-result-object v1 + invoke-virtual {v1}, Ljava/lang/String;->hashCode()I + move-result v1 + goto :create + + :mix_holder + instance-of p2, p2, Lul/w$a; + if-eqz p2, :invalid + instance-of p2, p1, Lbm/f; + if-eqz p2, :invalid + move-object p2, p1 + check-cast p2, Lbm/f; + iget-object p2, p2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + invoke-virtual {p2}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + move-result-object p2 + invoke-virtual {p2}, Ljava/lang/String;->hashCode()I + move-result v1 + + :create + new-instance v2, Lradiant/swipe/QueueRequest; + invoke-direct {v2, v0, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {p0, v2}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + move-result-object p1 + if-eqz p1, :invalid + return-object v2 + + :invalid + const/4 p1, 0x0 + return-object p1 +.end method diff --git a/patches/manifest.json b/patches/manifest.json index d3e6a61..48194eb 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -438,7 +438,11 @@ "radiant/swipe/DynamicTrackResolver.smali", "radiant/swipe/MyAlbumsResolver.smali", "radiant/swipe/MyPlaylistsResolver.smali", - "radiant/swipe/MyMixesAndRadioResolver.smali" + "radiant/swipe/MyMixesAndRadioResolver.smali", + "radiant/swipe/SearchAlbumsResolver.smali", + "radiant/swipe/SearchPlaylistsResolver.smali", + "radiant/swipe/PlaylistItemsResolver.smali", + "radiant/swipe/UnifiedSearchResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue", diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index bcf5d68..d4bcc4a 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -377,3 +377,55 @@ .line 122 new-instance p2, Landroidx/recyclerview/widget/LinearLayoutManager; +--- a/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali ++++ b/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali +@@ -1176,6 +1176,8 @@ + .line 69 + .line 70 + .line 71 + invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/SearchAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 72 + .line 73 + .line 74 +--- a/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali ++++ b/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali +@@ -5193,6 +5193,8 @@ + .line 127 + .line 128 + .line 129 + invoke-static {v1, p1}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p1}, Lradiant/swipe/PlaylistItemsResolver;->install(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V ++ + .line 130 + .line 131 + .line 132 +--- a/com/aspiro/wamp/search/v2/UnifiedSearchView.smali ++++ b/com/aspiro/wamp/search/v2/UnifiedSearchView.smali +@@ -1596,6 +1596,8 @@ + .line 60 + .line 61 + .line 62 + invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/UnifiedSearchResolver;->install(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 63 + .line 64 + .line 65 +--- a/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali ++++ b/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali +@@ -1204,6 +1204,8 @@ + .line 69 + .line 70 + .line 71 + invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p2}, Lradiant/swipe/SearchPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 72 + .line 73 + .line 74 From 10f3dd724d2db91563394925a773d721c9bb9caf Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 20 Aug 2026 15:33:30 +0200 Subject: [PATCH 11/19] feat(swipe to queue): add compose / dynamic list + compose search refactor support --- .../app/src/main/assets/patches-manifest.json | 22 +- patches/extension/radiant/SwipeToQueue.smali | 8 + .../radiant/swipe/AlbumItemQueueAction.smali | 183 +++++ .../radiant/swipe/ComposeSearchQueue.smali | 270 +++++++ .../swipe/ComposeSearchQueueAction.smali | 220 ++++++ .../swipe/ComposeSearchQueueEvent.smali | 40 ++ .../radiant/swipe/ComposeSwipeAction.smali | 14 + .../swipe/ComposeSwipeState$Draw.smali | 227 ++++++ .../swipe/ComposeSwipeState$Gesture.smali | 231 ++++++ .../ComposeSwipeState$ResetAnimator.smali | 67 ++ .../radiant/swipe/ComposeSwipeState.smali | 657 ++++++++++++++++++ .../radiant/swipe/ComposeTapGuard.smali | 97 +++ .../radiant/swipe/DynamicTrackQueue.smali | 169 +++++ .../swipe/DynamicTrackQueueAction.smali | 95 +++ .../swipe/DynamicTrackQueueEvent.smali | 34 + .../radiant/swipe/DynamicTrackResolver.smali | 268 +++++++ .../radiant/swipe/QueueExecutor.smali | 99 +-- .../radiant/swipe/ViewAllTrackQueue.smali | 200 ++++++ .../swipe/ViewAllTrackQueueAction.smali | 89 +++ patches/manifest.json | 20 +- patches/swipe-to-queue-compose.patch | 253 +++++++ patches/swipe-to-queue.patch | 16 +- 22 files changed, 3232 insertions(+), 47 deletions(-) create mode 100644 patches/extension/radiant/swipe/AlbumItemQueueAction.smali create mode 100644 patches/extension/radiant/swipe/ComposeSearchQueue.smali create mode 100644 patches/extension/radiant/swipe/ComposeSearchQueueAction.smali create mode 100644 patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali create mode 100644 patches/extension/radiant/swipe/ComposeSwipeAction.smali create mode 100644 patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali create mode 100644 patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali create mode 100644 patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali create mode 100644 patches/extension/radiant/swipe/ComposeSwipeState.smali create mode 100644 patches/extension/radiant/swipe/ComposeTapGuard.smali create mode 100644 patches/extension/radiant/swipe/DynamicTrackQueue.smali create mode 100644 patches/extension/radiant/swipe/DynamicTrackQueueAction.smali create mode 100644 patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali create mode 100644 patches/extension/radiant/swipe/ViewAllTrackQueue.smali create mode 100644 patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali create mode 100644 patches/swipe-to-queue-compose.patch diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index c36c802..748ae88 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -426,7 +426,8 @@ "id": "SwipeToQueue", "order": 39, "fileNames": [ - "swipe-to-queue.patch" + "swipe-to-queue.patch", + "swipe-to-queue-compose.patch" ], "extensionFiles": [ "radiant/SwipeToQueue.smali", @@ -442,10 +443,25 @@ "radiant/swipe/SearchAlbumsResolver.smali", "radiant/swipe/SearchPlaylistsResolver.smali", "radiant/swipe/PlaylistItemsResolver.smali", - "radiant/swipe/UnifiedSearchResolver.smali" + "radiant/swipe/UnifiedSearchResolver.smali", + "radiant/swipe/ComposeSwipeAction.smali", + "radiant/swipe/ComposeSwipeState.smali", + "radiant/swipe/ComposeSwipeState$Gesture.smali", + "radiant/swipe/ComposeSwipeState$Draw.smali", + "radiant/swipe/ComposeSwipeState$ResetAnimator.smali", + "radiant/swipe/ComposeTapGuard.smali", + "radiant/swipe/AlbumItemQueueAction.smali", + "radiant/swipe/DynamicTrackQueueEvent.smali", + "radiant/swipe/DynamicTrackQueueAction.smali", + "radiant/swipe/DynamicTrackQueue.smali", + "radiant/swipe/ViewAllTrackQueueAction.smali", + "radiant/swipe/ViewAllTrackQueue.smali", + "radiant/swipe/ComposeSearchQueueEvent.smali", + "radiant/swipe/ComposeSearchQueueAction.smali", + "radiant/swipe/ComposeSearchQueue.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks/albums/playlists to add them to the play queue.", + "description": "Swipe on tracks/albums/playlists to add them to the play queue", "default": false, "advancedOptions": [ { diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index 111afcf..bf20676 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -130,6 +130,14 @@ .end method # virtual methods +.method public getAnimationDuration(Landroidx/recyclerview/widget/RecyclerView;IFF)J + .locals 2 + + const-wide/16 v0, 0x50 + + return-wide v0 +.end method + .method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I .locals 2 diff --git a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali new file mode 100644 index 0000000..b598eda --- /dev/null +++ b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali @@ -0,0 +1,183 @@ +.class public final Lradiant/swipe/AlbumItemQueueAction; +.super Ljava/lang/Object; +.source "AlbumItemQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lu5/b$a$a; + +.field private context:Landroid/content/Context; + +.field private final mediaItemId:I + +.field private final moduleId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lu5/b$a;)V + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iget-object v0, p1, Lu5/b$a;->a:Lu5/b$a$a; + + iput-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a; + + iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; + + iget v1, v0, Lu5/b$a$b;->r:I + + iput v1, p0, Lradiant/swipe/AlbumItemQueueAction;->mediaItemId:I + + iget-object v0, v0, Lu5/b$a$b;->s:Ljava/lang/String; + + iput-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->moduleId:Ljava/lang/String; + + return-void +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 10 + + iget-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a; + + iget v1, p0, Lradiant/swipe/AlbumItemQueueAction;->mediaItemId:I + + iget-object v2, p0, Lradiant/swipe/AlbumItemQueueAction;->moduleId:Ljava/lang/String; + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v3 + + if-nez v3, :active_queue + + invoke-interface {v0, v1, v2}, Lu5/b$a$a;->g(ILjava/lang/String;)V + + goto :done + + :active_queue + iget-object v3, p0, Lradiant/swipe/AlbumItemQueueAction;->context:Landroid/content/Context; + + if-eqz v3, :done + + instance-of v4, v0, Lu5/g; + + if-eqz v4, :done + + check-cast v0, Lu5/g; + + invoke-virtual {v0, v2}, Lk5/f;->l(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module; + + move-result-object v4 + + instance-of v5, v4, Lcom/aspiro/wamp/dynamicpages/data/model/collection/AlbumItemCollectionModule; + + if-eqz v5, :done + + check-cast v4, Lcom/aspiro/wamp/dynamicpages/data/model/collection/AlbumItemCollectionModule; + + invoke-virtual {v4}, Lcom/aspiro/wamp/dynamicpages/data/model/collection/AlbumItemCollectionModule;->getMediaItemParents()Ljava/util/List; + + move-result-object v5 + + invoke-interface {v5}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + + move-result-object v5 + + :find_item + invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z + + move-result v6 + + if-eqz v6, :done + + invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v6 + + check-cast v6, Lcom/aspiro/wamp/model/MediaItemParent; + + invoke-virtual {v6}, Lcom/aspiro/wamp/model/MediaItemParent;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; + + move-result-object v7 + + if-eqz v7, :find_item + + invoke-virtual {v7}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v8 + + if-ne v8, v1, :find_item + + instance-of v8, v7, Lcom/aspiro/wamp/model/Track; + + if-eqz v8, :done + + check-cast v7, Lcom/aspiro/wamp/model/Track; + + iget-object v8, v0, Lu5/g;->h:Lcom/aspiro/wamp/model/AvailabilityInteractor; + + invoke-interface {v8, v7}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; + + move-result-object v8 + + invoke-virtual {v8}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + + move-result v8 + + if-eqz v8, :done + + new-instance v5, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + invoke-virtual {v4}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getPageId()Ljava/lang/String; + + move-result-object v6 + + invoke-virtual {v4}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getId()Ljava/lang/String; + + move-result-object v8 + + invoke-virtual {v4}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getPosition()I + + move-result v9 + + invoke-static {v9}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v9 + + invoke-direct {v5, v6, v8, v9}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + invoke-virtual {v7}, Lcom/aspiro/wamp/model/MediaItem;->getAlbum()Lcom/aspiro/wamp/model/Album; + + move-result-object v6 + + if-eqz v6, :done + + iget-object v8, v0, Lu5/g;->j:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v6, v8}, Lcom/aspiro/wamp/playqueue/source/model/b;->c(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource; + + move-result-object v6 + + invoke-virtual {v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/AlbumItemQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueue.smali b/patches/extension/radiant/swipe/ComposeSearchQueue.smali new file mode 100644 index 0000000..1f20e8c --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSearchQueue.smali @@ -0,0 +1,270 @@ +.class public final Lradiant/swipe/ComposeSearchQueue; +.super Ljava/lang/Object; +.source "ComposeSearchQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/swipe/ComposeSearchQueueEvent;)V + .locals 10 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v8, p1, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context; + + if-eqz v8, :done + + iget-object v2, p1, Lradiant/swipe/ComposeSearchQueueEvent;->id:Ljava/lang/String; + + if-eqz v2, :done + + iget v4, p1, Lradiant/swipe/ComposeSearchQueueEvent;->type:I + + const/4 v0, 0x1 + + if-lt v4, v0, :done + + const/4 v0, 0x4 + + if-gt v4, v0, :done + + iget-object v0, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->n:Ljava/util/List; + + invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :find_row + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :done + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lmb0/e; + + invoke-static {v1}, Lmb0/f;->a(Lmb0/e;)Ljava/lang/String; + + move-result-object v9 + + invoke-virtual {v2, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v9 + + if-eqz v9, :find_row + + instance-of v9, v1, Lmb0/a; + + if-eqz v9, :find_row + + check-cast v1, Lmb0/a; + + iget-object v3, v1, Lmb0/a;->a:Lh40/n; + + const/4 v9, 0x1 + + if-ne v4, v9, :check_album + + instance-of v9, v3, Lh40/p; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_album + const/4 v9, 0x2 + + if-ne v4, v9, :check_playlist + + instance-of v9, v3, Lh40/a; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_playlist + const/4 v9, 0x3 + + if-ne v4, v9, :check_mix + + instance-of v9, v3, Lh40/j; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_mix + instance-of v9, v3, Lh40/i; + + if-eqz v9, :find_row + + :recover_dependencies + iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->d:Lcom/tidal/android/feature/search/ui/e; + + instance-of v0, v9, Lv9/e; + + if-eqz v0, :done + + check-cast v9, Lv9/e; + + iget-object v5, v9, Lv9/e;->b:Lcom/tidal/android/navigation/NavigationInfo; + + iget-object v9, v9, Lv9/e;->a:Lcom/aspiro/wamp/core/k; + + const/4 v6, 0x0 + + const/4 v0, 0x2 + + if-eq v4, v0, :recover_menu + + const/4 v0, 0x4 + + if-ne v4, v0, :dependencies_ready + + :recover_menu + + instance-of v0, v9, Lh9/p1; + + if-eqz v0, :done + + check-cast v9, Lh9/p1; + + iget-object v9, v9, Lh9/p1;->b:Lx40/a; + + instance-of v0, v9, Lh4/a; + + if-eqz v0, :done + + move-object v6, v9 + + check-cast v6, Lh4/a; + + :dependencies_ready + + new-instance v7, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + const-string v0, "search" + + invoke-direct {v7, v0, v2}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v4, v0, :album + + check-cast v3, Lh40/p; + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-eqz v0, :play_track + + invoke-static {v3}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v9 + + iget-object v4, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; + + invoke-interface {v4}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; + + move-result-object v4 + + check-cast v4, Lcom/tidal/android/feature/search/ui/SearchQuery; + + iget-object v4, v4, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; + + if-nez v4, :track_query_ready + + const-string v4, "" + + :track_query_ready + const/4 v1, 0x0 + + if-eqz v5, :track_navigation_ready + + invoke-static {v5}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + + move-result-object v1 + + :track_navigation_ready + invoke-static {v2, v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v4 + + invoke-virtual {v4, v9}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :play_track + iget-object v5, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; + + invoke-interface {v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; + + move-result-object v5 + + check-cast v5, Lcom/tidal/android/feature/search/ui/SearchQuery; + + iget-object v5, v5, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; + + if-nez v5, :play_query_ready + + const-string v5, "" + + :play_query_ready + iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->f:Lcom/tidal/android/feature/search/ui/f; + + iget-wide v0, v3, Lh40/p;->a:J + + invoke-interface {v9, v0, v1, v3, v5}, Lcom/tidal/android/feature/search/ui/f;->a(JLh40/p;Ljava/lang/String;)V + + goto :done + + :album + const/4 v0, 0x2 + + if-ne v4, v0, :playlist + + check-cast v3, Lh40/a; + + invoke-static {v3}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; + + move-result-object v9 + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v4, v0, :mix + + check-cast v3, Lh40/j; + + invoke-static {v3}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; + + move-result-object v9 + + invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :mix + check-cast v3, Lh40/i; + + invoke-static {v3}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; + + move-result-object v9 + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + :done + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali b/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali new file mode 100644 index 0000000..1b2ccf9 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali @@ -0,0 +1,220 @@ +.class public final Lradiant/swipe/ComposeSearchQueueAction; +.super Ljava/lang/Object; +.source "ComposeSearchQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final id:Ljava/lang/String; + +.field private final type:I + + +# direct methods +.method public constructor (Lam0/l;Lpb0/b;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l; + + invoke-static {p2}, Lradiant/swipe/ComposeSearchQueueAction;->key(Lpb0/b;)Ljava/lang/String; + + move-result-object v0 + + iput-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; + + invoke-static {p2}, Lradiant/swipe/ComposeSearchQueueAction;->type(Lpb0/b;)I + + move-result p1 + + iput p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I + + return-void +.end method + +.method public static key(Lpb0/b;)Ljava/lang/String; + .locals 2 + + instance-of v0, p0, Lpb0/b$i; + + if-eqz v0, :album + + check-cast p0, Lpb0/b$i; + + iget-wide v0, p0, Lpb0/b$i;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object p0 + + return-object p0 + + :album + instance-of v0, p0, Lpb0/b$a; + + if-eqz v0, :playlist + + check-cast p0, Lpb0/b$a; + + iget-wide v0, p0, Lpb0/b$a;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object p0 + + return-object p0 + + :playlist + instance-of v0, p0, Lpb0/b$f; + + if-eqz v0, :mix + + check-cast p0, Lpb0/b$f; + + iget-object p0, p0, Lpb0/b$f;->a:Ljava/lang/String; + + return-object p0 + + :mix + instance-of v0, p0, Lpb0/b$e; + + if-eqz v0, :invalid + + check-cast p0, Lpb0/b$e; + + iget-object p0, p0, Lpb0/b$e;->a:Ljava/lang/String; + + return-object p0 + + :invalid + const/4 p0, 0x0 + + return-object p0 +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; + + if-eqz v0, :invalid + + iget v1, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I + + if-eqz v1, :invalid + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v1, 0x3a + + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method private static type(Lpb0/b;)I + .locals 1 + + instance-of v0, p0, Lpb0/b$i; + + if-eqz v0, :album + + const/4 p0, 0x1 + + return p0 + + :album + instance-of v0, p0, Lpb0/b$a; + + if-eqz v0, :playlist + + const/4 p0, 0x2 + + return p0 + + :playlist + instance-of v0, p0, Lpb0/b$f; + + if-eqz v0, :mix + + const/4 p0, 0x3 + + return p0 + + :mix + instance-of p0, p0, Lpb0/b$e; + + if-eqz p0, :invalid + + const/4 p0, 0x4 + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 4 + + iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l; + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/swipe/ComposeSearchQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; + + if-eqz v2, :done + + iget v3, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I + + if-eqz v3, :done + + new-instance p0, Lradiant/swipe/ComposeSearchQueueEvent; + + invoke-direct {p0, v1, v2, v3}, Lradiant/swipe/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;I)V + + invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali b/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali new file mode 100644 index 0000000..c5eeeed --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali @@ -0,0 +1,40 @@ +.class public final Lradiant/swipe/ComposeSearchQueueEvent; +.super Ljava/lang/Object; +.source "ComposeSearchQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/feature/search/ui/b; + + +# static fields +.field public static final TYPE_ALBUM:I = 0x2 + +.field public static final TYPE_MIX:I = 0x4 + +.field public static final TYPE_PLAYLIST:I = 0x3 + +.field public static final TYPE_TRACK:I = 0x1 + + +# instance fields +.field public final context:Landroid/content/Context; + +.field public final id:Ljava/lang/String; + +.field public final type:I + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;I)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/swipe/ComposeSearchQueueEvent;->id:Ljava/lang/String; + + iput p3, p0, Lradiant/swipe/ComposeSearchQueueEvent;->type:I + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeAction.smali b/patches/extension/radiant/swipe/ComposeSwipeAction.smali new file mode 100644 index 0000000..afd97e3 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSwipeAction.smali @@ -0,0 +1,14 @@ +.class public interface abstract Lradiant/swipe/ComposeSwipeAction; +.super Ljava/lang/Object; +.source "ComposeSwipeAction.smali" + +# interfaces +.implements Lam0/a; + + +# virtual methods +.method public abstract invoke()Ljava/lang/Object; +.end method + +.method public abstract setContext(Landroid/content/Context;)V +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali new file mode 100644 index 0000000..52bc098 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali @@ -0,0 +1,227 @@ +.class public final Lradiant/swipe/ComposeSwipeState$Draw; +.super Ljava/lang/Object; +.implements Lam0/l; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/swipe/ComposeSwipeState; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "Draw" +.end annotation + + +# instance fields +.field private final state:Lradiant/swipe/ComposeSwipeState; + + +# direct methods +.method public constructor (Lradiant/swipe/ComposeSwipeState;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$Draw;->state:Lradiant/swipe/ComposeSwipeState; + + return-void +.end method + + +# virtual methods +.method public invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + .locals 16 + + move-object/from16 v0, p1 + + move-object/from16 v5, p0 + + invoke-interface {v0}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getSize-NH-jbRc()J + + move-result-wide v1 + + invoke-static {v1, v2}, Landroidx/compose/ui/geometry/Size;->getWidth-impl(J)F + + move-result v3 + + invoke-static {v1, v2}, Landroidx/compose/ui/geometry/Size;->getHeight-impl(J)F + + move-result v4 + + iget-object v5, v5, Lradiant/swipe/ComposeSwipeState$Draw;->state:Lradiant/swipe/ComposeSwipeState; + + iput v3, v5, Lradiant/swipe/ComposeSwipeState;->rowWidth:F + + iget-object v1, v5, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F + + move-result v6 + + const/4 v1, 0x0 + + cmpl-float v2, v6, v1 + + if-eqz v2, :draw_plain + + invoke-interface {v0}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/DrawContext; + + move-result-object v2 + + invoke-interface {v2}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getCanvas()Landroidx/compose/ui/graphics/Canvas; + + move-result-object v2 + + invoke-static {v2}, Landroidx/compose/ui/graphics/AndroidCanvas_androidKt;->getNativeCanvas(Landroidx/compose/ui/graphics/Canvas;)Landroid/graphics/Canvas; + + move-result-object v7 + + invoke-virtual {v7}, Landroid/graphics/Canvas;->save()I + + move-result v8 + + const/16 v9, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + const/4 v10, 0x4 + + if-ne v9, v10, :right_exposure + + add-float v9, v3, v6 + + invoke-static {v1, v9}, Ljava/lang/Math;->max(FF)F + + move-result v9 + + move v10, v3 + + goto :exposure_ready + + :right_exposure + move v9, v1 + + invoke-static {v3, v6}, Ljava/lang/Math;->min(FF)F + + move-result v10 + + :exposure_ready + invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z + + iget v11, v5, Lradiant/swipe/ComposeSwipeState;->green:I + + invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V + + iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable; + + if-eqz v11, :background_done + + invoke-virtual {v11}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I + + move-result v12 + + invoke-virtual {v11}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I + + move-result v13 + + if-lez v12, :background_done + + if-lez v13, :background_done + + const/high16 v14, 0x41800000 # 16.0f + + invoke-virtual {v5, v14}, Lradiant/swipe/ComposeSwipeState;->dp(F)F + + move-result v14 + + const/16 v15, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + const/4 v1, 0x4 + + if-ne v15, v1, :right_icon + + int-to-float v1, v12 + + sub-float v1, v3, v1 + + sub-float/2addr v1, v14 + + goto :icon_x_ready + + :right_icon + move v1, v14 + + :icon_x_ready + int-to-float v14, v13 + + sub-float v14, v4, v14 + + const/high16 v15, 0x40000000 # 2.0f + + div-float/2addr v14, v15 + + float-to-int v15, v1 + + float-to-int v14, v14 + + add-int v1, v15, v12 + + add-int v12, v14, v13 + + invoke-virtual {v11, v15, v14, v1, v12}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V + + const/16 v1, 0xff + + invoke-virtual {v11, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V + + invoke-virtual {v11, v7}, Landroid/graphics/drawable/Drawable;->draw(Landroid/graphics/Canvas;)V + + :background_done + invoke-virtual {v7, v8}, Landroid/graphics/Canvas;->restoreToCount(I)V + + invoke-virtual {v7}, Landroid/graphics/Canvas;->save()I + + move-result v8 + + const/4 v1, 0x0 + + invoke-virtual {v7, v1, v1, v3, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z + + invoke-virtual {v7, v6, v1}, Landroid/graphics/Canvas;->translate(FF)V + + :try_start_0 + invoke-interface {v0}, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;->drawContent()V + :try_end_0 + .catchall {:try_start_0 .. :try_end_0} :catchall_0 + + invoke-virtual {v7, v8}, Landroid/graphics/Canvas;->restoreToCount(I)V + + goto :done + + :catchall_0 + move-exception v0 + + invoke-virtual {v7, v8}, Landroid/graphics/Canvas;->restoreToCount(I)V + + throw v0 + + :draw_plain + invoke-interface {v0}, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;->drawContent()V + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; + .locals 1 + + check-cast p1, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope; + + invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState$Draw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali b/patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali new file mode 100644 index 0000000..7968b03 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali @@ -0,0 +1,231 @@ +.class public final Lradiant/swipe/ComposeSwipeState$Gesture; +.super Landroidx/compose/ui/input/pointer/PointerInputFilter; +.implements Lam0/l; +.implements Landroidx/compose/ui/input/pointer/PointerInputModifier; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/swipe/ComposeSwipeState; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "Gesture" +.end annotation + + +# instance fields +.field private consumeAfterDispatch:Z + +.field private final state:Lradiant/swipe/ComposeSwipeState; + + +# direct methods +.method public constructor (Lradiant/swipe/ComposeSwipeState;)V + .locals 0 + + invoke-direct {p0}, Landroidx/compose/ui/input/pointer/PointerInputFilter;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + return-void +.end method + + +# virtual methods +.method public getInterceptOutOfBoundsChildEvents()Z + .locals 1 + + const/4 v0, 0x1 + + return v0 +.end method + +.method public getPointerInputFilter()Landroidx/compose/ui/input/pointer/PointerInputFilter; + .locals 0 + + return-object p0 +.end method + +.method public invoke(Landroid/view/MotionEvent;)Lkotlin/u; + .locals 3 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I + + move-result v0 + + const/4 v1, 0x0 + + iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + + 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 + + const/4 v1, 0x5 + + if-eq v0, v1, :cancel + + const/4 v1, 0x6 + + if-eq v0, v1, :cancel + + goto :done + + :down + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v0 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->begin(FF)V + + goto :done + + :move + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v0 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->move(FF)V + + goto :done + + :up + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v0 + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->move(FF)V + + iget-boolean v0, v2, Lradiant/swipe/ComposeSwipeState;->locked:Z + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + + invoke-virtual {v2}, Lradiant/swipe/ComposeSwipeState;->finish()V + + goto :done + + :cancel + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()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 1 + + check-cast p1, Landroid/view/MotionEvent; + + invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + + move-result-object v0 + + return-object v0 +.end method + +.method public onCancel()V + .locals 1 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + + return-void +.end method + +.method public onPointerEvent-H0pRuoY(Landroidx/compose/ui/input/pointer/PointerEvent;Landroidx/compose/ui/input/pointer/PointerEventPass;J)V + .locals 4 + + sget-object v0, Landroidx/compose/ui/input/pointer/PointerEventPass;->Initial:Landroidx/compose/ui/input/pointer/PointerEventPass; + + if-ne p2, v0, :done + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + + iget-boolean v1, v0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + const/4 v2, 0x0 + + iput-boolean v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + + invoke-virtual {p1}, Landroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent()Landroid/view/MotionEvent; + + move-result-object v2 + + if-eqz v2, :after_dispatch + + invoke-virtual {p0, v2}, Lradiant/swipe/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + + :after_dispatch + iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + + or-int/2addr v1, v2 + + iget-boolean v2, v0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + or-int/2addr v1, v2 + + if-eqz v1, :done + + invoke-virtual {p1}, Landroidx/compose/ui/input/pointer/PointerEvent;->getChanges()Ljava/util/List; + + move-result-object v0 + + invoke-interface {v0}, Ljava/util/List;->size()I + + move-result v1 + + const/4 v2, 0x0 + + :consume_loop + if-ge v2, v1, :done + + invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Landroidx/compose/ui/input/pointer/PointerInputChange; + + invoke-virtual {v3}, Landroidx/compose/ui/input/pointer/PointerInputChange;->consume()V + + add-int/lit8 v2, v2, 0x1 + + goto :consume_loop + + :done + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali b/patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali new file mode 100644 index 0000000..34a747b --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali @@ -0,0 +1,67 @@ +.class public final Lradiant/swipe/ComposeSwipeState$ResetAnimator; +.super Ljava/lang/Object; +.implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/swipe/ComposeSwipeState; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "ResetAnimator" +.end annotation + + +# instance fields +.field private final state:Lradiant/swipe/ComposeSwipeState; + + +# direct methods +.method public constructor (Lradiant/swipe/ComposeSwipeState;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->state:Lradiant/swipe/ComposeSwipeState; + + return-void +.end method + + +# virtual methods +.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V + .locals 3 + + invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Float; + + invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F + + move-result v0 + + iget-object v1, p0, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->state:Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v1, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + + invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F + + move-result v0 + + const/high16 v2, 0x3f800000 # 1.0f + + cmpg-float v0, v0, v2 + + if-gez v0, :finished + + return-void + + :finished + invoke-virtual {v1, p1}, Lradiant/swipe/ComposeSwipeState;->clearAnimator(Landroid/animation/ValueAnimator;)V + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/swipe/ComposeSwipeState.smali new file mode 100644 index 0000000..9e91c76 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeSwipeState.smali @@ -0,0 +1,657 @@ +.class public final Lradiant/swipe/ComposeSwipeState; +.super Ljava/lang/Object; + + +# instance fields +.field translation:Landroidx/compose/runtime/MutableFloatState; + +.field action:Lradiant/swipe/ComposeSwipeAction; + +.field context:Landroid/content/Context; + +.field view:Landroid/view/View; + +.field enabled:Z + +.field downX:F + +.field downY:F + +.field tracking:Z + +.field locked:Z + +.field armed:Z + +.field rowWidth:F + +.field animator:Landroid/animation/ValueAnimator; + +.field final gesture:Lradiant/swipe/ComposeSwipeState$Gesture; + +.field final draw:Lradiant/swipe/ComposeSwipeState$Draw; + +.field icon:Landroid/graphics/drawable/Drawable; + +.field green:I + + +# direct methods +.method public constructor ()V + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + const/4 v0, 0x0 + + invoke-static {v0}, Landroidx/compose/runtime/PrimitiveSnapshotStateKt;->mutableFloatStateOf(F)Landroidx/compose/runtime/MutableFloatState; + + move-result-object v0 + + iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + + new-instance v0, Lradiant/swipe/ComposeSwipeState$Gesture; + + invoke-direct {v0, p0}, Lradiant/swipe/ComposeSwipeState$Gesture;->(Lradiant/swipe/ComposeSwipeState;)V + + iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->gesture:Lradiant/swipe/ComposeSwipeState$Gesture; + + new-instance v1, Lradiant/swipe/ComposeSwipeState$Draw; + + invoke-direct {v1, p0}, Lradiant/swipe/ComposeSwipeState$Draw;->(Lradiant/swipe/ComposeSwipeState;)V + + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->draw:Lradiant/swipe/ComposeSwipeState$Draw; + + return-void +.end method + +.method public static attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + .locals 5 + .annotation build Landroidx/compose/runtime/Composable; + .end annotation + + const v0, 0x4a33c921 + + invoke-interface {p4, v0}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + + invoke-static {}, Landroidx/compose/ui/platform/AndroidCompositionLocals_androidKt;->getLocalView()Landroidx/compose/runtime/ProvidableCompositionLocal; + + move-result-object v0 + + invoke-interface {p4, v0}, Landroidx/compose/runtime/Composer;->consume(Landroidx/compose/runtime/CompositionLocal;)Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroid/view/View; + + invoke-interface {p4, p1}, Landroidx/compose/runtime/Composer;->changed(Ljava/lang/Object;)Z + + move-result v1 + + invoke-interface {p4}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; + + move-result-object v2 + + if-nez v1, :new_state + + sget-object v3, Landroidx/compose/runtime/Composer;->Companion:Landroidx/compose/runtime/Composer$Companion; + + invoke-virtual {v3}, Landroidx/compose/runtime/Composer$Companion;->getEmpty()Ljava/lang/Object; + + move-result-object v3 + + if-ne v2, v3, :state_ready + + :new_state + new-instance v2, Lradiant/swipe/ComposeSwipeState; + + invoke-direct {v2}, Lradiant/swipe/ComposeSwipeState;->()V + + invoke-interface {p4, v2}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V + + :state_ready + check-cast v2, Lradiant/swipe/ComposeSwipeState; + + invoke-virtual {v2, p2, p3, v0}, Lradiant/swipe/ComposeSwipeState;->update(Lradiant/swipe/ComposeSwipeAction;ZLandroid/view/View;)V + + iget-object v1, v2, Lradiant/swipe/ComposeSwipeState;->gesture:Lradiant/swipe/ComposeSwipeState$Gesture; + + check-cast v1, Landroidx/compose/ui/Modifier; + + invoke-interface {p0, v1}, Landroidx/compose/ui/Modifier;->then(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; + + move-result-object p0 + + iget-object v1, v2, Lradiant/swipe/ComposeSwipeState;->draw:Lradiant/swipe/ComposeSwipeState$Draw; + + invoke-static {p0, v1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + + move-result-object p0 + + invoke-interface {p4}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V + + return-object p0 +.end method + + +# virtual methods +.method animateReset()V + .locals 7 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + const/4 v1, 0x0 + + if-eqz v0, :read_offset + + invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V + + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + :read_offset + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F + + move-result v0 + + invoke-static {v0}, Ljava/lang/Math;->abs(F)F + + move-result v2 + + const/high16 v3, 0x3f000000 # 0.5f + + cmpg-float v2, v2, v3 + + if-lez v2, :snap + + const/4 v2, 0x2 + + new-array v2, v2, [F + + const/4 v3, 0x0 + + aput v0, v2, v3 + + const/4 v0, 0x1 + + const/4 v3, 0x0 + + aput v3, v2, v0 + + invoke-static {v2}, Landroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator; + + move-result-object v0 + + const-wide/16 v4, 0xb4 + + invoke-virtual {v0, v4, v5}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator; + + new-instance v2, Landroid/view/animation/DecelerateInterpolator; + + const/high16 v4, 0x3fc00000 # 1.5f + + invoke-direct {v2, v4}, Landroid/view/animation/DecelerateInterpolator;->(F)V + + invoke-virtual {v0, v2}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V + + new-instance v2, Lradiant/swipe/ComposeSwipeState$ResetAnimator; + + invoke-direct {v2, p0}, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->(Lradiant/swipe/ComposeSwipeState;)V + + invoke-virtual {v0, v2}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V + + iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + invoke-virtual {v0}, Landroid/animation/ValueAnimator;->start()V + + return-void + + :snap + const/4 v3, 0x0 + + invoke-virtual {p0, v3}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + + return-void +.end method + +.method begin(FF)V + .locals 3 + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + const/4 v1, 0x0 + + if-eqz v0, :initialize + + invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V + + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + :initialize + iput p1, p0, Lradiant/swipe/ComposeSwipeState;->downX:F + + iput p2, p0, Lradiant/swipe/ComposeSwipeState;->downY:F + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + + iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + + if-eqz v2, :inactive + + iget-object v2, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + + if-eqz v2, :inactive + + const/4 v0, 0x1 + + :inactive + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + + return-void +.end method + +.method cancelGesture()V + .locals 1 + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + + return-void +.end method + +.method clearAnimator(Landroid/animation/ValueAnimator;)V + .locals 1 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + if-ne v0, p1, :done + + const/4 v0, 0x0 + + iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + + :done + return-void +.end method + +.method dp(F)F + .locals 1 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + + if-eqz v0, :done + + invoke-virtual {v0}, Landroid/content/Context;->getResources()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 p1, v0 + + :done + return p1 +.end method + +.method finish()V + .locals 3 + + iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + + if-eqz v0, :reset_only + + iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + if-eqz v0, :not_complete + + iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + if-eqz v0, :not_complete + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F + + move-result v0 + + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + + move-result v0 + + goto :complete_ready + + :not_complete + const/4 v0, 0x0 + + :complete_ready + const/4 v1, 0x0 + + iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + + iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + + if-eqz v0, :done + + invoke-static {}, Lradiant/swipe/ComposeTapGuard;->suppressAfterSwipe()V + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + + if-eqz v0, :done + + invoke-interface {v0}, Lradiant/swipe/ComposeSwipeAction;->invoke()Ljava/lang/Object; + + goto :done + + :reset_only + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + + :done + return-void +.end method + +.method isCorrectDirection(F)Z + .locals 3 + + const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__ + + const/4 v1, 0x4 + + const/4 v2, 0x0 + + if-ne v0, v1, :expect_right + + cmpg-float v0, p1, v2 + + if-gez v0, :wrong + + const/4 v0, 0x1 + + return v0 + + :expect_right + cmpl-float v0, p1, v2 + + if-lez v0, :wrong + + const/4 v0, 0x1 + + return v0 + + :wrong + const/4 v0, 0x0 + + return v0 +.end method + +.method move(FF)V + .locals 8 + + iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + + if-eqz v0, :done + + iget v0, p0, Lradiant/swipe/ComposeSwipeState;->downX:F + + sub-float v0, p1, v0 + + iget v1, p0, Lradiant/swipe/ComposeSwipeState;->downY:F + + sub-float v1, p2, v1 + + iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + if-nez v2, :publish + + invoke-static {v0}, Ljava/lang/Math;->abs(F)F + + move-result v2 + + invoke-static {v1}, Ljava/lang/Math;->abs(F)F + + move-result v3 + + const/high16 v4, 0x41000000 # 8.0f + + invoke-virtual {p0, v4}, Lradiant/swipe/ComposeSwipeState;->dp(F)F + + move-result v4 + + cmpg-float v5, v2, v4 + + if-gez v5, :axis_ready + + cmpg-float v5, v3, v4 + + if-ltz v5, :done + + :axis_ready + cmpg-float v5, v2, v3 + + if-gtz v5, :horizontal_candidate + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + + return-void + + :horizontal_candidate + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + + move-result v5 + + if-nez v5, :lock + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + + return-void + + :lock + const/4 v5, 0x1 + + iput-boolean v5, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + + iget-object v6, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + + if-eqz v6, :publish + + invoke-virtual {v6}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v6 + + if-eqz v6, :publish + + invoke-interface {v6, v5}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V + + :publish + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + + move-result v2 + + if-nez v2, :set_offset + + const/4 v2, 0x0 + + invoke-virtual {p0, v2}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + + iput-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + return-void + + :set_offset + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + + iget v2, p0, Lradiant/swipe/ComposeSwipeState;->rowWidth:F + + const/4 v3, 0x0 + + cmpg-float v4, v2, v3 + + if-lez v4, :done + + const v4, 0x3e99999a # 0.3f + + mul-float/2addr v2, v4 + + invoke-static {v0}, Ljava/lang/Math;->abs(F)F + + move-result v0 + + cmpg-float v0, v0, v2 + + if-ltz v0, :below_threshold + + const/4 v0, 0x1 + + goto :arm_ready + + :below_threshold + const/4 v0, 0x0 + + :arm_ready + iget-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + if-eq v0, v1, :done + + iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + + if-eqz v0, :done + + const/4 v1, 0x4 + + invoke-virtual {v0, v1}, Landroid/view/View;->performHapticFeedback(I)Z + + :done + return-void +.end method + +.method releaseParent()V + .locals 2 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + + if-eqz v0, :done + + invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v0 + + if-eqz v0, :done + + const/4 v1, 0x0 + + invoke-interface {v0, v1}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V + + :done + return-void +.end method + +.method setOffset(F)V + .locals 1 + + iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v0, p1}, Landroidx/compose/runtime/MutableFloatState;->setFloatValue(F)V + + return-void +.end method + +.method update(Lradiant/swipe/ComposeSwipeAction;ZLandroid/view/View;)V + .locals 4 + + iput-object p1, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + + iput-object p3, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + + invoke-virtual {p3}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v0 + + iget-object v1, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + + if-ne v0, v1, :load_resources + + goto :context_ready + + :load_resources + iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + + sget v1, Lcom/aspiro/wamp/R$color;->green:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getColor(I)I + + move-result v1 + + iput v1, p0, Lradiant/swipe/ComposeSwipeState;->green:I + + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + if-eqz v1, :store_icon + + invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + const/4 v2, -0x1 + + invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_icon + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable; + + :context_ready + if-eqz p1, :enabled_ready + + invoke-interface {p1, v0}, Lradiant/swipe/ComposeSwipeAction;->setContext(Landroid/content/Context;)V + + :enabled_ready + iget-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + + iput-boolean p2, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + + if-nez v1, :was_enabled + + return-void + + :was_enabled + if-nez p2, :done + + invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + + :done + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeTapGuard.smali b/patches/extension/radiant/swipe/ComposeTapGuard.smali new file mode 100644 index 0000000..e10ac68 --- /dev/null +++ b/patches/extension/radiant/swipe/ComposeTapGuard.smali @@ -0,0 +1,97 @@ +.class public final Lradiant/swipe/ComposeTapGuard; +.super Ljava/lang/Object; +.implements Lam0/a; + + +# static fields +.field private static volatile deadline:J + + +# instance fields +.field private final delegate:Lam0/a; + + +# direct methods +.method public constructor (Lam0/a;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ComposeTapGuard;->delegate:Lam0/a; + + return-void +.end method + +.method public static isSuppressed()Z + .locals 5 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + sget-wide v2, Lradiant/swipe/ComposeTapGuard;->deadline:J + + cmp-long v4, v0, v2 + + if-ltz v4, :suppressed + + const/4 v0, 0x0 + + return v0 + + :suppressed + const/4 v0, 0x1 + + return v0 +.end method + +.method public static suppressAfterSwipe()V + .locals 4 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + const-wide/16 v2, 0x96 + + add-long/2addr v0, v2 + + sput-wide v0, Lradiant/swipe/ComposeTapGuard;->deadline:J + + return-void +.end method + +.method public static wrap(Lam0/a;)Lam0/a; + .locals 1 + + new-instance v0, Lradiant/swipe/ComposeTapGuard; + + invoke-direct {v0, p0}, Lradiant/swipe/ComposeTapGuard;->(Lam0/a;)V + + return-object v0 +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 1 + + invoke-static {}, Lradiant/swipe/ComposeTapGuard;->isSuppressed()Z + + move-result v0 + + if-eqz v0, :dispatch + + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 + + :dispatch + iget-object v0, p0, Lradiant/swipe/ComposeTapGuard;->delegate:Lam0/a; + + invoke-interface {v0}, Lam0/a;->invoke()Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueue.smali b/patches/extension/radiant/swipe/DynamicTrackQueue.smali new file mode 100644 index 0000000..5042d46 --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicTrackQueue.smali @@ -0,0 +1,169 @@ +.class public final Lradiant/swipe/DynamicTrackQueue; +.super Ljava/lang/Object; +.source "DynamicTrackQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/swipe/DynamicTrackQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/swipe/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; + + if-eqz v0, :done + + invoke-virtual {v0}, Ljava/lang/String;->length()I + + move-result v1 + + if-lez v1, :done + + iget-object v1, p1, Lradiant/swipe/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/lang/String;->length()I + + move-result v2 + + if-lez v2, :done + + iget-wide v2, p1, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J + + const-wide/16 v4, 0x0 + + cmp-long v4, v2, v4 + + if-lez v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; + + move-result-object v4 + + instance-of v5, v4, Lc60/b0; + + if-eqz v5, :done + + check-cast v4, Lc60/b0; + + iget-object v5, v4, Lc60/b0;->b:Ljava/lang/String; + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/b0;->f:Ljava/util/ArrayList; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_track + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v5 + + instance-of v6, v5, Lc60/r$b; + + if-eqz v6, :find_track + + check-cast v5, Lc60/r$b; + + iget-object v5, v5, Lc60/r$b;->a:Lh40/n; + + instance-of v6, v5, Lh40/p; + + if-eqz v6, :find_track + + check-cast v5, Lh40/p; + + iget-wide v6, v5, Lh40/p;->a:J + + cmp-long v6, v6, v2 + + if-nez v6, :find_track + + iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; + + instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v2, :done + + check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; + + if-eqz v6, :done + + iget-object v1, p1, Lradiant/swipe/DynamicTrackQueueEvent;->context:Landroid/content/Context; + + if-eqz v1, :done + + invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v7 + + if-eqz v7, :done + + iget-object v2, v4, Lc60/b0;->a:Ljava/lang/String; + + if-eqz v2, :done + + invoke-virtual {v2}, Ljava/lang/String;->length()I + + move-result v3 + + if-lez v3, :done + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget v3, v4, Lc60/b0;->e:I + + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v3 + + invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + iget-wide v2, p1, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J + + invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v2 + + iget-object v3, v4, Lc60/b0;->c:Ljava/lang/String; + + if-eqz v3, :done + + iget-object v10, v4, Lc60/b0;->g:Ljava/lang/String; + + invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; + + move-result-object v4 + + invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v9 + + if-eqz v9, :done + + invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali new file mode 100644 index 0000000..a138a82 --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali @@ -0,0 +1,95 @@ +.class public final Lradiant/swipe/DynamicTrackQueueAction; +.super Ljava/lang/Object; +.source "DynamicTrackQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; + + iput-object p2, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v0, p4, Lm40/e$e;->a:J + + iput-wide v0, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 7 + + iget-wide v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-nez v0, :active_queue + + new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; + + iget-object v3, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iget-object v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;->(JLjava/lang/String;Ljava/lang/String;)V + + goto :emit + + :active_queue + new-instance v0, Lradiant/swipe/DynamicTrackQueueEvent; + + iget-object v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J + + invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + + :emit + iget-object v6, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; + + invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali b/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali new file mode 100644 index 0000000..e666ca6 --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali @@ -0,0 +1,34 @@ +.class public final Lradiant/swipe/DynamicTrackQueueEvent; +.super Ljava/lang/Object; +.source "DynamicTrackQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b; + + +# instance fields +.field public final context:Landroid/content/Context; + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + +.field public final trackId:J + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/swipe/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-wide p4, p0, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J + + return-void +.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/swipe/DynamicTrackResolver.smali index 721717e..354fe10 100644 --- a/patches/extension/radiant/swipe/DynamicTrackResolver.smali +++ b/patches/extension/radiant/swipe/DynamicTrackResolver.smali @@ -11,6 +11,136 @@ # direct methods +.method private currentAlbumRow(Lradiant/swipe/QueueRequest;)Lu5/b$a; + .locals 9 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lu5/b$a; + + if-eqz v1, :invalid + + check-cast v0, Lu5/b$a; + + iget-object v1, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v1, :invalid + + invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object v2 + + instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; + + if-eqz v1, :invalid + + check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; + + invoke-virtual {v2}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object v2 + + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v3, :check_size + + goto :invalid + + :check_size + invoke-interface {v2}, Ljava/util/List;->size()I + + move-result v4 + + if-lt v3, v4, :read_row + + goto :invalid + + :read_row + invoke-interface {v2, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v2 + + instance-of v3, v2, Lu5/b$a; + + if-eqz v3, :invalid + + check-cast v2, Lu5/b$a; + + iget-object v3, v0, Lu5/b$a;->a:Lu5/b$a$a; + + iget-object v4, v2, Lu5/b$a;->a:Lu5/b$a$a; + + if-ne v3, v4, :invalid + + iget-wide v3, v0, Lu5/b$a;->b:J + + iget-wide v5, v2, Lu5/b$a;->b:J + + cmp-long v7, v3, v5 + + if-nez v7, :invalid + + iget-object v3, v0, Lu5/b$a;->c:Lu5/b$a$b; + + iget-object v4, v2, Lu5/b$a;->c:Lu5/b$a$b; + + if-eqz v3, :invalid + + if-eqz v4, :invalid + + iget v5, v3, Lu5/b$a$b;->r:I + + iget v6, v4, Lu5/b$a$b;->r:I + + iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v5, v7, :invalid + + if-ne v6, v7, :invalid + + iget-object v5, v3, Lu5/b$a$b;->s:Ljava/lang/String; + + iget-object v6, v4, Lu5/b$a$b;->s:Ljava/lang/String; + + if-eq v5, v6, :module_valid + + if-eqz v5, :invalid + + invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :invalid + + :module_valid + iget-object v5, v4, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; + + invoke-interface {v5}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z + + move-result v5 + + if-eqz v5, :invalid + + iget-boolean v5, v4, Lu5/b$a$b;->p:Z + + if-nez v5, :invalid + + return-object v2 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + .method private constructor (Landroidx/recyclerview/widget/RecyclerView;)V .locals 1 @@ -234,6 +364,96 @@ return-object v0 .end method +.method private resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + iget-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + if-ne v0, p1, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + const/4 v0, -0x1 + + if-ne p2, v0, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; + + if-eqz v0, :invalid + + check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; + + invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; + + move-result-object p1 + + if-gez p2, :check_size + + goto :invalid + + :check_size + invoke-interface {p1}, Ljava/util/List;->size()I + + move-result v0 + + if-lt p2, v0, :read_row + + goto :invalid + + :read_row + invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lu5/b$a; + + if-eqz v0, :invalid + + check-cast p1, Lu5/b$a; + + iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; + + if-eqz v0, :invalid + + iget-object v1, v0, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; + + invoke-interface {v1}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z + + move-result v1 + + if-eqz v1, :invalid + + iget-boolean v1, v0, Lu5/b$a$b;->p:Z + + if-nez v1, :invalid + + iget v0, v0, Lu5/b$a$b;->r:I + + new-instance v1, Lradiant/swipe/QueueRequest; + + invoke-direct {v1, p2, p1, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + return-object v1 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method + .method public static install(Landroidx/recyclerview/widget/RecyclerView;)V .locals 1 @@ -254,6 +474,43 @@ .method public execute(Lradiant/swipe/QueueRequest;)V .locals 8 + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lu5/b$a; + + if-eqz v1, :dynamic_track + + invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentAlbumRow(Lradiant/swipe/QueueRequest;)Lu5/b$a; + + move-result-object v0 + + if-eqz v0, :done + + new-instance v1, Lradiant/swipe/AlbumItemQueueAction; + + invoke-direct {v1, v0}, Lradiant/swipe/AlbumItemQueueAction;->(Lu5/b$a;)V + + iget-object v2, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v2, :done + + invoke-virtual {v2}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v2 + + invoke-virtual {v1, v2}, Lradiant/swipe/AlbumItemQueueAction;->setContext(Landroid/content/Context;)V + + invoke-virtual {v1}, Lradiant/swipe/AlbumItemQueueAction;->invoke()Ljava/lang/Object; + + return-void + + :dynamic_track invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; move-result-object v0 @@ -374,6 +631,17 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; .locals 5 + instance-of v0, p2, Lv6/e$a; + + if-eqz v0, :dynamic_holder + + invoke-direct {p0, p1, p2}, Lradiant/swipe/DynamicTrackResolver;->resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + + move-result-object p1 + + return-object p1 + + :dynamic_holder instance-of v0, p2, Lp7/a$a; if-eqz v0, :invalid diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali index 3b20d5f..2d39530 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -9,8 +9,6 @@ const/4 v0, 0x0 - if-eqz p0, :done - if-eqz p1, :done invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; @@ -39,6 +37,31 @@ if-eqz p4, :done + :unwrap_context + instance-of v2, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v2, :has_activity + + instance-of v2, p0, Landroid/content/ContextWrapper; + + if-eqz v2, :done + + move-object v2, p0 + + check-cast v2, Landroid/content/ContextWrapper; + + invoke-virtual {v2}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v2 + + if-eq v2, p0, :done + + move-object p0, v2 + + goto :unwrap_context + + :has_activity + iget-object v2, p4, Lh4/a;->b:Lo3/a$a; invoke-interface {v2, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; @@ -51,10 +74,6 @@ move-result-object p1 - instance-of p2, p0, Landroidx/fragment/app/FragmentActivity; - - if-eqz p2, :done - check-cast p0, Landroidx/fragment/app/FragmentActivity; invoke-virtual {p1, p0}, Lc3/i;->b(Landroidx/fragment/app/FragmentActivity;)V @@ -122,10 +141,16 @@ const/4 v0, 0x0 - if-eqz p0, :done - if-eqz p1, :done + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + if-eqz p4, :done + :unwrap_context instance-of v1, p0, Landroidx/fragment/app/FragmentActivity; @@ -150,13 +175,6 @@ goto :unwrap_context :has_activity - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v1 - - if-eqz v1, :play - - if-eqz p4, :done iget-object v1, p4, Lh4/a;->h:Lu3/a$a; @@ -208,8 +226,6 @@ .method public static playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V .locals 4 - if-eqz p0, :done - if-eqz p1, :done invoke-virtual {p1}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -218,30 +234,6 @@ if-lez v0, :done - :unwrap_context - instance-of v0, p0, Landroidx/fragment/app/FragmentActivity; - - if-nez v0, :has_activity - - instance-of v0, p0, Landroid/content/ContextWrapper; - - if-eqz v0, :done - - move-object v0, p0 - - check-cast v0, Landroid/content/ContextWrapper; - - invoke-virtual {v0}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; - - move-result-object v0 - - if-eq v0, p0, :done - - move-object p0, v0 - - goto :unwrap_context - - :has_activity invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; move-result-object v0 @@ -258,6 +250,31 @@ if-eqz v1, :play + :unwrap_context + instance-of v1, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v1, :has_activity + + instance-of v1, p0, Landroid/content/ContextWrapper; + + if-eqz v1, :done + + move-object v1, p0 + + check-cast v1, Landroid/content/ContextWrapper; + + invoke-virtual {v1}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v1 + + if-eq v1, p0, :done + + move-object p0, v1 + + goto :unwrap_context + + :has_activity + iget-object v1, v0, Le5/z$n2;->w8:Ldagger/internal/f; invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali new file mode 100644 index 0000000..8c63dfe --- /dev/null +++ b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali @@ -0,0 +1,200 @@ +.class public final Lradiant/swipe/ViewAllTrackQueue; +.super Ljava/lang/Object; +.source "ViewAllTrackQueue.smali" + + +# static fields +.field private static context:Ljava/lang/ref/WeakReference; + + +# direct methods +.method public static handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V + .locals 10 + + if-eqz p0, :done + + if-eqz p1, :done + + const-wide/16 v0, 0x0 + + cmp-long v2, p2, v0 + + if-lez v2, :done + + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->n:Lcom/tidal/android/feature/viewall/ui/c; + + iget-object v0, v0, Lcom/tidal/android/feature/viewall/ui/c;->f:Ljava/util/ArrayList; + + invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :find_track + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v2 + + if-eqz v2, :done + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + instance-of v2, v1, Lpd0/a; + + if-eqz v2, :find_track + + check-cast v1, Lpd0/a; + + iget-object v1, v1, Lpd0/a;->a:Lh40/n; + + instance-of v2, v1, Lh40/p; + + if-eqz v2, :find_track + + check-cast v1, Lh40/p; + + iget-wide v3, v1, Lh40/p;->a:J + + cmp-long v2, v3, p2 + + if-nez v2, :find_track + + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->f:Lcom/tidal/android/feature/viewall/ui/u; + + instance-of v2, v0, Lra/d; + + if-eqz v2, :done + + check-cast v0, Lra/d; + + iget-object v2, v0, Lra/d;->b:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v1}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v3 + + if-eqz v3, :done + + const-string v5, "null" + + new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + invoke-direct {v4, v5, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V + + const/4 v6, 0x0 + + if-eqz v2, :navigation_ready + + invoke-static {v2}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + + move-result-object v6 + + :navigation_ready + sget-object v7, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None;->INSTANCE:Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None; + + const/4 v8, 0x0 + + invoke-static {v5, v8, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v9 + + invoke-virtual {v9, v3}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z + .locals 5 + + instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c; + + if-eqz v0, :not_handled + + check-cast p1, Lcom/tidal/android/feature/viewall/ui/e$c; + + iget-object v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c;->a:Ljava/lang/Object; + + instance-of v1, v0, Ljava/lang/String; + + if-eqz v1, :not_handled + + check-cast v0, Ljava/lang/String; + + const-string v1, "rl-swipe:" + + invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z + + move-result v2 + + if-eqz v2, :not_handled + + const/16 v1, 0x9 + + invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v0 + + invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J + + move-result-wide v1 + + sget-object v3, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + + const/4 v4, 0x0 + + sput-object v4, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + + if-eqz v3, :handled + + invoke-virtual {v3}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v3 + + check-cast v3, Landroid/content/Context; + + invoke-static {p0, v3, v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V + + :handled + const/4 v0, 0x1 + + return v0 + + :not_handled + const/4 v0, 0x0 + + return v0 +.end method + +.method public static marker(J)Ljava/lang/String; + .locals 2 + + new-instance v0, Ljava/lang/StringBuilder; + + const-string v1, "rl-swipe:" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + invoke-virtual {v0, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method + +.method public static setContext(Landroid/content/Context;)V + .locals 1 + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p0}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + sput-object v0, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali new file mode 100644 index 0000000..cf8dee1 --- /dev/null +++ b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali @@ -0,0 +1,89 @@ +.class public final Lradiant/swipe/ViewAllTrackQueueAction; +.super Ljava/lang/Object; +.source "ViewAllTrackQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Lm40/e$e;)V + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l; + + iget-wide v0, p2, Lm40/e$e;->a:J + + iput-wide v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 5 + + iget-object v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l; + + if-eqz v0, :done + + iget-wide v1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->trackId:J + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v3 + + if-eqz v3, :play_existing + + iget-object v3, p0, Lradiant/swipe/ViewAllTrackQueueAction;->context:Landroid/content/Context; + + if-eqz v3, :done + + invoke-static {v3}, Lradiant/swipe/ViewAllTrackQueue;->setContext(Landroid/content/Context;)V + + invoke-static {v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->marker(J)Ljava/lang/String; + + move-result-object v3 + + new-instance v4, Li40/c$b; + + invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V + + goto :emit + + :play_existing + invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object v3 + + new-instance v4, Li40/c$b; + + invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V + + :emit + invoke-interface {v0, v4}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/manifest.json b/patches/manifest.json index 48194eb..748ae88 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -426,7 +426,8 @@ "id": "SwipeToQueue", "order": 39, "fileNames": [ - "swipe-to-queue.patch" + "swipe-to-queue.patch", + "swipe-to-queue-compose.patch" ], "extensionFiles": [ "radiant/SwipeToQueue.smali", @@ -442,7 +443,22 @@ "radiant/swipe/SearchAlbumsResolver.smali", "radiant/swipe/SearchPlaylistsResolver.smali", "radiant/swipe/PlaylistItemsResolver.smali", - "radiant/swipe/UnifiedSearchResolver.smali" + "radiant/swipe/UnifiedSearchResolver.smali", + "radiant/swipe/ComposeSwipeAction.smali", + "radiant/swipe/ComposeSwipeState.smali", + "radiant/swipe/ComposeSwipeState$Gesture.smali", + "radiant/swipe/ComposeSwipeState$Draw.smali", + "radiant/swipe/ComposeSwipeState$ResetAnimator.smali", + "radiant/swipe/ComposeTapGuard.smali", + "radiant/swipe/AlbumItemQueueAction.smali", + "radiant/swipe/DynamicTrackQueueEvent.smali", + "radiant/swipe/DynamicTrackQueueAction.smali", + "radiant/swipe/DynamicTrackQueue.smali", + "radiant/swipe/ViewAllTrackQueueAction.smali", + "radiant/swipe/ViewAllTrackQueue.smali", + "radiant/swipe/ComposeSearchQueueEvent.smali", + "radiant/swipe/ComposeSearchQueueAction.smali", + "radiant/swipe/ComposeSearchQueue.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue", diff --git a/patches/swipe-to-queue-compose.patch b/patches/swipe-to-queue-compose.patch new file mode 100644 index 0000000..09d0570 --- /dev/null +++ b/patches/swipe-to-queue-compose.patch @@ -0,0 +1,253 @@ +--- a/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali +@@ -1791,6 +1791,10 @@ + .line 391 + check-cast v34, Lam0/a; + ++ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v34 ++ + .line 392 + .line 393 + const/16 v35, 0x6f +@@ -1832,6 +1836,22 @@ + .line 412 + move-result-object v0 + ++ iget-wide v14, v3, Lm40/e$e;->a:J ++ ++ invoke-static {v14, v15}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; ++ ++ move-result-object v14 ++ ++ new-instance v15, Lradiant/swipe/DynamicTrackQueueAction; ++ ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/swipe/DynamicTrackQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ ++ iget-boolean v5, v3, Lm40/e$e;->j:Z ++ ++ invoke-static {v0, v14, v15, v5, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v0 ++ + .line 413 + const/4 v14, 0x0 + +--- a/com/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager$createModuleViewState$3.smali ++++ b/com/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager$createModuleViewState$3.smali +@@ -601,6 +601,17 @@ + + .line 248 + :cond_c ++ instance-of p2, p1, Lradiant/swipe/DynamicTrackQueueEvent; ++ ++ if-eqz p2, :cond_d ++ ++ check-cast p1, Lradiant/swipe/DynamicTrackQueueEvent; ++ ++ invoke-static {v0, p1}, Lradiant/swipe/DynamicTrackQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/swipe/DynamicTrackQueueEvent;)V ++ ++ goto :goto_4 ++ ++ :cond_d + invoke-static {}, Landroidx/navigation/f0;->a()V + + .line 249 +--- a/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali ++++ b/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali +@@ -926,6 +926,17 @@ + + .line 4 + .line 5 ++ instance-of v2, v1, Lradiant/swipe/ComposeSearchQueueEvent; ++ ++ if-eqz v2, :rl_search_queue_continue ++ ++ check-cast v1, Lradiant/swipe/ComposeSearchQueueEvent; ++ ++ invoke-static {v0, v1}, Lradiant/swipe/ComposeSearchQueue;->handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/swipe/ComposeSearchQueueEvent;)V ++ ++ return-void ++ ++ :rl_search_queue_continue + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + .line 6 +--- a/com/tidal/android/feature/search/ui/composables/u0.smali ++++ b/com/tidal/android/feature/search/ui/composables/u0.smali +@@ -243,6 +243,24 @@ + + check-cast v2, Lam0/a; + ++ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v1 ++ ++ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ ++ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ ++ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v7 ++ ++ iget-boolean p1, v0, Lpb0/b$a;->f:Z ++ ++ invoke-static {v3, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v3 ++ + const/4 v5, 0x0 + + .line 20 +@@ -467,7 +485,25 @@ + + const/4 v5, 0x0 + +- const/4 v2, 0x0 ++ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v1 ++ ++ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ ++ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ ++ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v7 ++ ++ sget-object v2, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; ++ ++ const/4 p1, 0x1 ++ ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v2 + + .line 52 + invoke-static/range {v0 .. v5}, Lob0/w;->a(Lpb0/b$f;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V +@@ -593,6 +629,24 @@ + + check-cast v3, Lam0/a; + ++ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v1 ++ ++ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ ++ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ ++ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v7 ++ ++ iget-boolean p1, v0, Lpb0/b$i;->i:Z ++ ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v2 ++ + const/4 v5, 0x0 + + .line 70 +@@ -828,7 +882,25 @@ + + const/4 v5, 0x0 + +- const/4 v2, 0x0 ++ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v1 ++ ++ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ ++ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ ++ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v7 ++ ++ sget-object v2, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; ++ ++ const/4 p1, 0x1 ++ ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v2 + + .line 104 + invoke-static/range {v0 .. v5}, Lob0/q;->a(Lpb0/b$e;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V +--- a/com/tidal/android/feature/viewall/ui/l.smali ++++ b/com/tidal/android/feature/viewall/ui/l.smali +@@ -317,6 +317,31 @@ + .line 132 + check-cast v3, Lam0/l; + ++ instance-of p1, v2, Lm40/e$e; ++ ++ if-eqz p1, :rl_viewall_swipe_attached ++ ++ move-object p1, v2 ++ ++ check-cast p1, Lm40/e$e; ++ ++ iget-wide p2, p1, Lm40/e$e;->a:J ++ ++ invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; ++ ++ move-result-object p2 ++ ++ new-instance p3, Lradiant/swipe/ViewAllTrackQueueAction; ++ ++ invoke-direct {p3, v3, p1}, Lradiant/swipe/ViewAllTrackQueueAction;->(Lam0/l;Lm40/e$e;)V ++ ++ iget-boolean p1, p1, Lm40/e$e;->j:Z ++ ++ invoke-static {v1, p2, p3, p1, v5}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v1 ++ ++ :rl_viewall_swipe_attached + .line 133 + .line 134 + const/4 v6, 0x0 +--- a/j40/p2.smali ++++ b/j40/p2.smali +@@ -3240,5 +3240,14 @@ + move-object/from16 v16, v1 + ++ instance-of v3, v14, Lcom/tidal/android/feature/viewall/ui/n; ++ ++ if-eqz v3, :rl_viewall_tap_guard_done ++ ++ invoke-static/range {v24 .. v24}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v24 ++ ++ :rl_viewall_tap_guard_done + .line 718 + .line 719 + move-object/from16 v25, v9 +--- a/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali ++++ b/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali +@@ -1718,6 +1718,17 @@ + } + .end annotation + ++ invoke-static {p0, p1}, Lradiant/swipe/ViewAllTrackQueue;->handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z ++ ++ move-result v0 ++ ++ if-eqz v0, :rl_viewall_regular_event ++ ++ sget-object v0, Lkotlin/u;->a:Lkotlin/u; ++ ++ return-object v0 ++ ++ :rl_viewall_regular_event + .line 1 + instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$a; + diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index d4bcc4a..cab3cac 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -146,7 +146,21 @@ +++ b/p7/a.smali @@ -33,3 +33,11 @@ .end method - + ++.method public b(Landroidx/recyclerview/widget/RecyclerView;)V ++ .locals 0 ++ ++ invoke-static {p1}, Lradiant/swipe/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V ++ ++ return-void ++.end method ++ + .method public final c(Ljava/lang/Object;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V +--- a/v6/e.smali ++++ b/v6/e.smali +@@ -62,3 +62,11 @@ + .end method + +.method public b(Landroidx/recyclerview/widget/RecyclerView;)V + .locals 0 + From 4dbbfba3a15b727fb445ad1e3c76b6ac1f66b611 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 20 Aug 2026 22:03:01 +0200 Subject: [PATCH 12/19] feat(swipe to queue): support homepage lists, updates, track suggestions, and artist track credits --- .../app/src/main/assets/patches-manifest.json | 12 +- .../swipe/ArtistTrackCreditsQueue.smali | 161 +++++ .../swipe/ArtistTrackCreditsQueueAction.smali | 95 +++ .../swipe/ArtistTrackCreditsQueueEvent.smali | 34 + .../swipe/CompactGridMediaQueueAction.smali | 263 ++++++++ .../radiant/swipe/ComposeSwipeState.smali | 4 +- .../radiant/swipe/DynamicMediaQueue.smali | 634 ++++++++++++++++++ .../swipe/DynamicMediaQueueEvent.smali | 39 ++ .../radiant/swipe/FeedResolver.smali | 605 +++++++++++++++++ .../swipe/PublicPlaylistQueueAction.smali | 111 +++ .../radiant/swipe/SuggestionsResolver.smali | 431 ++++++++++++ .../swipe/VerticalMediaQueueAction.smali | 310 +++++++++ patches/manifest.json | 12 +- patches/swipe-to-queue-compose.patch | 231 ++++++- patches/swipe-to-queue.patch | 31 + 15 files changed, 2967 insertions(+), 6 deletions(-) create mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali create mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali create mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali create mode 100644 patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali create mode 100644 patches/extension/radiant/swipe/DynamicMediaQueue.smali create mode 100644 patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali create mode 100644 patches/extension/radiant/swipe/FeedResolver.smali create mode 100644 patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali create mode 100644 patches/extension/radiant/swipe/SuggestionsResolver.smali create mode 100644 patches/extension/radiant/swipe/VerticalMediaQueueAction.smali diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 748ae88..0ac26a2 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -458,7 +458,17 @@ "radiant/swipe/ViewAllTrackQueue.smali", "radiant/swipe/ComposeSearchQueueEvent.smali", "radiant/swipe/ComposeSearchQueueAction.smali", - "radiant/swipe/ComposeSearchQueue.smali" + "radiant/swipe/ComposeSearchQueue.smali", + "radiant/swipe/FeedResolver.smali", + "radiant/swipe/ArtistTrackCreditsQueueEvent.smali", + "radiant/swipe/ArtistTrackCreditsQueueAction.smali", + "radiant/swipe/ArtistTrackCreditsQueue.smali", + "radiant/swipe/DynamicMediaQueueEvent.smali", + "radiant/swipe/CompactGridMediaQueueAction.smali", + "radiant/swipe/VerticalMediaQueueAction.smali", + "radiant/swipe/PublicPlaylistQueueAction.smali", + "radiant/swipe/DynamicMediaQueue.smali", + "radiant/swipe/SuggestionsResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue", diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali new file mode 100644 index 0000000..044963a --- /dev/null +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali @@ -0,0 +1,161 @@ +.class public final Lradiant/swipe/ArtistTrackCreditsQueue; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/swipe/ArtistTrackCreditsQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; + + if-eqz v0, :done + + invoke-virtual {v0}, Ljava/lang/String;->length()I + + move-result v1 + + if-lez v1, :done + + iget-object v1, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/lang/String;->length()I + + move-result v2 + + if-lez v2, :done + + iget-wide v2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J + + const-wide/16 v4, 0x0 + + cmp-long v4, v2, v4 + + if-lez v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; + + move-result-object v4 + + instance-of v5, v4, Lc60/d; + + if-eqz v5, :done + + check-cast v4, Lc60/d; + + iget-object v5, v4, Lc60/d;->b:Ljava/lang/String; + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/d;->f:Ljava/util/ArrayList; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_track + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v5 + + instance-of v6, v5, Lc60/r$b; + + if-eqz v6, :find_track + + check-cast v5, Lc60/r$b; + + iget-object v5, v5, Lc60/r$b;->a:Lh40/n; + + instance-of v6, v5, Lh40/p; + + if-eqz v6, :find_track + + check-cast v5, Lh40/p; + + iget-wide v6, v5, Lh40/p;->a:J + + cmp-long v6, v6, v2 + + if-nez v6, :find_track + + iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; + + instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v2, :done + + check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; + + if-eqz v6, :done + + iget-object v1, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; + + if-eqz v1, :done + + invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v7 + + if-eqz v7, :done + + iget-object v2, v4, Lc60/d;->a:Ljava/lang/String; + + if-eqz v2, :done + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget v3, v4, Lc60/d;->e:I + + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v3 + + invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + iget-wide v2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J + + invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v2 + + iget-object v3, v4, Lc60/d;->c:Ljava/lang/String; + + iget-object v10, v4, Lc60/d;->g:Ljava/lang/String; + + invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; + + move-result-object v4 + + invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v9 + + if-eqz v9, :done + + invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali new file mode 100644 index 0000000..2d51fef --- /dev/null +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali @@ -0,0 +1,95 @@ +.class public final Lradiant/swipe/ArtistTrackCreditsQueueAction; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; + + iput-object p2, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v0, p4, Lm40/e$e;->a:J + + iput-wide v0, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 7 + + iget-wide v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-nez v0, :active_queue + + new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; + + iget-object v3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iget-object v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;->(JLjava/lang/String;Ljava/lang/String;)V + + goto :emit + + :active_queue + new-instance v0, Lradiant/swipe/ArtistTrackCreditsQueueEvent; + + iget-object v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J + + invoke-direct/range {v0 .. v5}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + + :emit + iget-object v6, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; + + invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali new file mode 100644 index 0000000..4c3c696 --- /dev/null +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali @@ -0,0 +1,34 @@ +.class public final Lradiant/swipe/ArtistTrackCreditsQueueEvent; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b; + + +# instance fields +.field public final context:Landroid/content/Context; + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + +.field public final trackId:J + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-wide p4, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J + + return-void +.end method diff --git a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali new file mode 100644 index 0000000..30575e3 --- /dev/null +++ b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali @@ -0,0 +1,263 @@ +.class public final Lradiant/swipe/CompactGridMediaQueueAction; +.super Ljava/lang/Object; +.source "CompactGridMediaQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final mediaType:I + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V + .locals 3 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; + + iput-object p2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + instance-of v0, p4, Lm40/e$a; + + if-eqz v0, :mix + + check-cast p4, Lm40/e$a; + + iget-wide v0, p4, Lm40/e$a;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x1 + + goto :store + + :mix + instance-of v0, p4, Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p4, Lm40/e$c; + + iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; + + const/4 v1, 0x2 + + goto :store + + :playlist + instance-of v0, p4, Lm40/e$d; + + if-eqz v0, :track + + check-cast p4, Lm40/e$d; + + iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; + + const/4 v1, 0x3 + + goto :store + + :track + instance-of v0, p4, Lm40/e$e; + + if-eqz v0, :unsupported + + check-cast p4, Lm40/e$e; + + iget-wide v0, p4, Lm40/e$e;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x4 + + goto :store + + :unsupported + const/4 v0, 0x0 + + const/4 v1, 0x0 + + :store + iput-object v0, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + iput v1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I + + return-void +.end method + +.method public static isEligible(Lm40/e;)Z + .locals 1 + + instance-of v0, p0, Lm40/e$a; + + if-eqz v0, :mix + + check-cast p0, Lm40/e$a; + + iget-boolean p0, p0, Lm40/e$a;->e:Z + + return p0 + + :mix + instance-of v0, p0, Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p0, Lm40/e$c; + + iget-boolean p0, p0, Lm40/e$c;->h:Z + + return p0 + + :playlist + instance-of v0, p0, Lm40/e$d; + + if-eqz v0, :track + + check-cast p0, Lm40/e$d; + + iget-boolean p0, p0, Lm40/e$d;->g:Z + + return p0 + + :track + instance-of v0, p0, Lm40/e$e; + + if-eqz v0, :invalid + + check-cast p0, Lm40/e$e; + + iget-boolean p0, p0, Lm40/e$e;->j:Z + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 7 + + iget-object v6, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; + + if-eqz v6, :done + + iget-object v4, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + iget v5, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I + + if-eqz v5, :done + + const/4 v1, 0x4 + + if-ne v5, v1, :queue_event + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-nez v1, :queue_event + + move-object v1, v4 + + goto :emit + + :queue_event + iget-object v1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + + move-object v1, v0 + + :emit + invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v0, :invalid + + new-instance v1, Ljava/lang/StringBuilder; + + const-string v2, "cgc:" + + invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/swipe/ComposeSwipeState.smali index 9e91c76..05bbae9 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState.smali @@ -448,11 +448,11 @@ cmpg-float v5, v2, v4 - if-gez v5, :axis_ready + if-ltz v5, :axis_ready cmpg-float v5, v3, v4 - if-ltz v5, :done + if-gez v5, :done :axis_ready cmpg-float v5, v2, v3 diff --git a/patches/extension/radiant/swipe/DynamicMediaQueue.smali b/patches/extension/radiant/swipe/DynamicMediaQueue.smali new file mode 100644 index 0000000..e0e1ca5 --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicMediaQueue.smali @@ -0,0 +1,634 @@ +.class public final Lradiant/swipe/DynamicMediaQueue; +.super Ljava/lang/Object; +.source "DynamicMediaQueue.smali" + + +# direct methods +.method public static handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/swipe/DynamicMediaQueueEvent;)V + .locals 13 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iget v3, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + const/4 v4, 0x1 + + if-lt v3, v4, :done + + const/4 v4, 0x4 + + if-gt v3, v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; + + move-result-object v4 + + instance-of v5, v4, Lc60/f; + + if-eqz v5, :done + + check-cast v4, Lc60/f; + + iget-object v5, v4, Lc60/f;->b:Ljava/lang/String; + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/f;->g:Ljava/util/ArrayList; + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_media + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v6 + + instance-of v5, v6, Lc60/r; + + if-eqz v5, :find_media + + check-cast v6, Lc60/r; + + invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_media + + instance-of v5, v6, Lc60/r$b; + + if-eqz v5, :done + + check-cast v6, Lc60/r$b; + + iget-object v7, v6, Lc60/r$b;->a:Lh40/n; + + const/4 v5, 0x1 + + if-ne v3, v5, :check_mix + + instance-of v5, v7, Lh40/a; + + if-eqz v5, :done + + goto :dependencies + + :check_mix + const/4 v5, 0x2 + + if-ne v3, v5, :check_playlist + + instance-of v5, v7, Lh40/i; + + if-eqz v5, :done + + goto :dependencies + + :check_playlist + const/4 v5, 0x3 + + if-ne v3, v5, :check_track + + instance-of v5, v7, Lh40/j; + + if-eqz v5, :done + + goto :dependencies + + :check_track + instance-of v5, v7, Lh40/p; + + if-eqz v5, :done + + :dependencies + iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;->b:Lcom/tidal/android/dynamicpages/ui/b; + + instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v5, :done + + check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v5, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v5, :done + + iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; + + new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v11, v4, Lc60/f;->a:Ljava/lang/String; + + iget v12, v4, Lc60/f;->d:I + + invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v12 + + invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v3, v0, :mix + + check-cast v7, Lh40/a; + + invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; + + move-result-object v12 + + invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :mix + const/4 v0, 0x2 + + if-ne v3, v0, :playlist + + check-cast v7, Lh40/i; + + invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; + + move-result-object v12 + + invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v3, v0, :track + + check-cast v7, Lh40/j; + + invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; + + move-result-object v12 + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :track + check-cast v7, Lh40/p; + + invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v12 + + const/4 v6, 0x0 + + if-eqz v9, :navigation_ready + + invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + + move-result-object v6 + + :navigation_ready + iget-object v0, v4, Lc60/f;->e:Ljava/lang/String; + + invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v11 + + invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method public static handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I + + const/4 v1, 0x3 + + if-ne v0, v1, :done + + iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; + + move-result-object v3 + + instance-of v4, v3, Lc60/v; + + if-eqz v4, :done + + check-cast v3, Lc60/v; + + iget-object v4, v3, Lc60/v;->b:Ljava/lang/String; + + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v3, Lc60/v;->f:Ljava/util/ArrayList; + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_playlist + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-eqz v4, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + instance-of v5, v4, Lc60/r; + + if-eqz v5, :find_playlist + + check-cast v4, Lc60/r; + + invoke-static {v4}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_playlist + + instance-of v5, v4, Lc60/r$b; + + if-eqz v5, :done + + check-cast v4, Lc60/r$b; + + iget-object v4, v4, Lc60/r$b;->a:Lh40/n; + + instance-of v5, v4, Lh40/j; + + if-eqz v5, :done + + check-cast v4, Lh40/j; + + iget-object v5, p0, Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;->f:Lcom/tidal/android/dynamicpages/ui/b; + + instance-of v6, v5, Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v6, :done + + check-cast v5, Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v6, :done + + iget-object v7, v5, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v9, v3, Lc60/v;->a:Ljava/lang/String; + + iget v10, v3, Lc60/v;->e:I + + invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v10 + + invoke-direct {v8, v0, v9, v10}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + invoke-static {v4}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; + + move-result-object v4 + + invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + +.method public static handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V + .locals 13 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iget v3, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + const/4 v4, 0x1 + + if-lt v3, v4, :done + + const/4 v4, 0x4 + + if-gt v3, v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; + + move-result-object v4 + + instance-of v5, v4, Lc60/c0; + + if-eqz v5, :done + + check-cast v4, Lc60/c0; + + iget-object v5, v4, Lc60/c0;->b:Ljava/lang/String; + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/c0;->g:Ljava/util/ArrayList; + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_media + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v6 + + instance-of v5, v6, Lc60/r; + + if-eqz v5, :find_media + + check-cast v6, Lc60/r; + + invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_media + + instance-of v5, v6, Lc60/r$b; + + if-eqz v5, :done + + check-cast v6, Lc60/r$b; + + iget-object v7, v6, Lc60/r$b;->a:Lh40/n; + + const/4 v5, 0x1 + + if-ne v3, v5, :check_mix + + instance-of v5, v7, Lh40/a; + + if-eqz v5, :done + + goto :dependencies + + :check_mix + const/4 v5, 0x2 + + if-ne v3, v5, :check_playlist + + instance-of v5, v7, Lh40/i; + + if-eqz v5, :done + + goto :dependencies + + :check_playlist + const/4 v5, 0x3 + + if-ne v3, v5, :check_track + + instance-of v5, v7, Lh40/j; + + if-eqz v5, :done + + goto :dependencies + + :check_track + instance-of v5, v7, Lh40/p; + + if-eqz v5, :done + + :dependencies + iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;->e:Lcom/tidal/android/dynamicpages/ui/b; + + instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v5, :done + + check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v5, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v5, :done + + iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; + + new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v11, v4, Lc60/c0;->a:Ljava/lang/String; + + iget v12, v4, Lc60/c0;->f:I + + invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v12 + + invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v3, v0, :mix + + check-cast v7, Lh40/a; + + invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; + + move-result-object v12 + + invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :mix + const/4 v0, 0x2 + + if-ne v3, v0, :playlist + + check-cast v7, Lh40/i; + + invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; + + move-result-object v12 + + invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v3, v0, :track + + check-cast v7, Lh40/j; + + invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; + + move-result-object v12 + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :track + check-cast v7, Lh40/p; + + invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + + move-result-object v12 + + const/4 v6, 0x0 + + if-eqz v9, :navigation_ready + + invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + + move-result-object v6 + + :navigation_ready + iget-object v0, v4, Lc60/c0;->c:Ljava/lang/String; + + invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v11 + + invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method private static menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; + .locals 2 + + iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/c;->a:Lcom/aspiro/wamp/core/k; + + instance-of v1, v0, Lh9/p1; + + if-eqz v1, :invalid + + check-cast v0, Lh9/p1; + + iget-object v0, v0, Lh9/p1;->b:Lx40/a; + + instance-of v1, v0, Lh4/a; + + if-eqz v1, :invalid + + check-cast v0, Lh4/a; + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali b/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali new file mode 100644 index 0000000..a8d662f --- /dev/null +++ b/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali @@ -0,0 +1,39 @@ +.class public final Lradiant/swipe/DynamicMediaQueueEvent; +.super Ljava/lang/Object; +.source "DynamicMediaQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b; +.implements Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b; + + +# instance fields +.field public final context:Landroid/content/Context; + +.field public final itemId:Ljava/lang/String; + +.field public final mediaType:I + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-object p4, p0, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iput p5, p0, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I + + return-void +.end method diff --git a/patches/extension/radiant/swipe/FeedResolver.smali b/patches/extension/radiant/swipe/FeedResolver.smali new file mode 100644 index 0000000..74569f5 --- /dev/null +++ b/patches/extension/radiant/swipe/FeedResolver.smali @@ -0,0 +1,605 @@ +.class public final Lradiant/swipe/FeedResolver; +.super Ljava/lang/Object; +.source "FeedResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final fragment:Ljava/lang/ref/WeakReference; + +.field private final recycler:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private availabilityInteractor()Lcom/aspiro/wamp/model/AvailabilityInteractor; + .locals 2 + + iget-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/tidal/android/feature/feed/ui/FeedView; + + if-eqz v0, :invalid + + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/FeedView;->d:Lv70/b; + + instance-of v1, v0, Lcom/tidal/android/feature/feed/ui/c; + + if-eqz v1, :invalid + + check-cast v0, Lcom/tidal/android/feature/feed/ui/c; + + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/c;->c:Lz70/a; + + if-eqz v0, :invalid + + iget-object v0, v0, Lz70/a;->c:Lcom/aspiro/wamp/model/AvailabilityInteractor; + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + .locals 10 + + if-eqz p1, :invalid + + iget-object v8, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + iget-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/tidal/android/feature/feed/ui/FeedView; + + if-eqz v0, :invalid + + iget-object v1, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v1, :invalid + + invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object v2 + + instance-of v3, v2, La50/b; + + if-eqz v3, :invalid + + check-cast v2, La50/b; + + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v3, :check_size + + goto :invalid + + :check_size + invoke-virtual {v2}, Ljava/util/ArrayList;->size()I + + move-result v4 + + if-lt v3, v4, :read_item + + goto :invalid + + :read_item + invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + + move-result-object v2 + + invoke-direct {p0}, Lradiant/swipe/FeedResolver;->availabilityInteractor()Lcom/aspiro/wamp/model/AvailabilityInteractor; + + move-result-object v4 + + if-eqz v4, :invalid + + instance-of v3, v2, Lb80/a; + + if-eqz v3, :mix + + instance-of v3, v8, Lcom/aspiro/wamp/model/Album; + + if-eqz v3, :invalid + + check-cast v2, Lb80/a; + + iget-boolean v3, v2, Lb80/a;->c:Z + + if-eqz v3, :invalid + + check-cast v8, Lcom/aspiro/wamp/model/Album; + + iget-object v5, v2, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v8}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v6 + + invoke-virtual {v5}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v7 + + if-ne v6, v7, :invalid + + iget v6, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v7, v6, :invalid + + invoke-interface {v4, v5}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/Album;)Lcom/aspiro/wamp/model/Availability$Album; + + move-result-object v4 + + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$Album;->isAvailable()Z + + move-result v4 + + if-eqz v4, :invalid + + return-object v2 + + :mix + instance-of v3, v2, Lb80/c; + + if-eqz v3, :playlist + + instance-of v3, v8, Lcom/aspiro/wamp/mix/model/Mix; + + if-eqz v3, :invalid + + check-cast v2, Lb80/c; + + check-cast v8, Lcom/aspiro/wamp/mix/model/Mix; + + iget-object v5, v2, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + + invoke-virtual {v8}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v6 + + invoke-virtual {v5}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v7 + + invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v6 + + if-eqz v6, :invalid + + invoke-virtual {v7}, Ljava/lang/String;->hashCode()I + + move-result v6 + + iget v8, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v6, v8, :invalid + + invoke-interface {v4, v7}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getMixAvailability(Ljava/lang/String;)Lcom/aspiro/wamp/model/Availability$Mix; + + move-result-object v4 + + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$Mix;->isAvailable()Z + + move-result v4 + + if-eqz v4, :invalid + + return-object v2 + + :playlist + instance-of v3, v2, Lb80/d; + + if-eqz v3, :invalid + + instance-of v3, v8, Lcom/aspiro/wamp/model/Playlist; + + if-eqz v3, :invalid + + check-cast v2, Lb80/d; + + check-cast v8, Lcom/aspiro/wamp/model/Playlist; + + iget-object v5, v2, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v8}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v6 + + invoke-virtual {v5}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v7 + + invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v6 + + if-eqz v6, :invalid + + invoke-virtual {v7}, Ljava/lang/String;->hashCode()I + + move-result v6 + + iget v8, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v6, v8, :invalid + + invoke-virtual {v5}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v6 + + if-lez v6, :invalid + + const-string v6, "NOT_READY" + + invoke-virtual {v5}, Lcom/aspiro/wamp/model/Playlist;->getStatus()Ljava/lang/String; + + move-result-object v8 + + invoke-virtual {v6, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v6 + + if-nez v6, :invalid + + invoke-static {v7}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; + + move-result-object v6 + + invoke-interface {v4, v6}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getPlaylistAvailability(Ljava/util/UUID;)Lcom/aspiro/wamp/model/Availability$Playlist; + + move-result-object v4 + + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$Playlist;->isAvailable()Z + + move-result v4 + + if-eqz v4, :invalid + + return-object v2 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/FeedResolver; + + invoke-direct {v0, p0, p1}, Lradiant/swipe/FeedResolver;->(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 9 + + invoke-direct {p0, p1}, Lradiant/swipe/FeedResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + + move-result-object v0 + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lcom/tidal/android/feature/feed/ui/FeedView; + + if-eqz v1, :done + + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v3 + + if-eqz v3, :done + + iget-object v2, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->c:La80/c; + + if-eqz v2, :done + + instance-of v4, v0, Lb80/a; + + if-eqz v4, :mix + + check-cast v0, Lb80/a; + + iget-object v7, v0, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + + iget v8, v0, Lb80/a;->g:I + + const/4 v4, 0x1 + + goto :metadata + + :mix + instance-of v4, v0, Lb80/c; + + if-eqz v4, :playlist + + check-cast v0, Lb80/c; + + iget-object v7, v0, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + + iget v8, v0, Lb80/c;->c:I + + const/4 v4, 0x2 + + goto :metadata + + :playlist + check-cast v0, Lb80/d; + + iget-object v7, v0, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + + iget v8, v0, Lb80/d;->c:I + + const/4 v4, 0x3 + + :metadata + invoke-static {v8}, Lcom/tidal/android/feature/feed/ui/viewstates/UpdatedIntervals$a;->a(I)Ljava/lang/String; + + move-result-object v8 + + iget-object v0, v2, La80/c;->a:Ljava/lang/String; + + new-instance p1, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + invoke-direct {p1, v0, v8}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V + + iget-object v5, v2, La80/c;->e:Lcom/tidal/android/navigation/NavigationInfo; + + const/4 v0, 0x3 + + if-ne v4, v0, :collection + + check-cast v7, Lcom/aspiro/wamp/model/Playlist; + + invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :collection + iget-object v6, v2, La80/c;->b:Lx40/a; + + instance-of v0, v6, Lh4/a; + + if-eqz v0, :done + + check-cast v6, Lh4/a; + + const/4 v0, 0x1 + + if-ne v4, v0, :queue_mix + + check-cast v7, Lcom/aspiro/wamp/model/Album; + + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v7 + + goto :retain + + :queue_mix + check-cast v7, Lcom/aspiro/wamp/mix/model/Mix; + + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v7 + + :retain + if-eqz v7, :done + + iget-object v0, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->f:Lio/reactivex/disposables/CompositeDisposable; + + invoke-virtual {v0, v7}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 7 + + iget-object v0, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + if-ne v0, p1, :invalid + + instance-of v0, p2, Lw70/c$a; + + if-eqz v0, :mix_holder + + const/4 v5, 0x1 + + goto :has_holder + + :mix_holder + + instance-of v0, p2, Lw70/h$a; + + if-eqz v0, :playlist_holder + + const/4 v5, 0x2 + + goto :has_holder + + :playlist_holder + + instance-of v0, p2, Lw70/k$a; + + if-eqz v0, :invalid + + const/4 v5, 0x3 + + :has_holder + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + if-gez p2, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/b; + + if-eqz v0, :invalid + + check-cast p1, La50/b; + + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + + invoke-virtual {p1}, Ljava/util/ArrayList;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-virtual {p1, p2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lb80/a; + + if-eqz v0, :mix + + const/4 v0, 0x1 + + if-ne v5, v0, :invalid + + check-cast p1, Lb80/a; + + iget-object v1, p1, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I + + move-result v2 + + goto :request + + :mix + instance-of v0, p1, Lb80/c; + + if-eqz v0, :playlist + + const/4 v0, 0x2 + + if-ne v5, v0, :invalid + + check-cast p1, Lb80/c; + + iget-object v1, p1, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + + invoke-virtual {v1}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/String;->hashCode()I + + move-result v2 + + goto :request + + :playlist + instance-of v0, p1, Lb80/d; + + if-eqz v0, :invalid + + const/4 v0, 0x3 + + if-ne v5, v0, :invalid + + check-cast p1, Lb80/d; + + iget-object v1, p1, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/String;->hashCode()I + + move-result v2 + + :request + new-instance v3, Lradiant/swipe/QueueRequest; + + invoke-direct {v3, p2, v1, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + invoke-direct {p0, v3}, Lradiant/swipe/FeedResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + + move-result-object v4 + + if-eqz v4, :invalid + + return-object v3 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali b/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali new file mode 100644 index 0000000..ce5764f --- /dev/null +++ b/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali @@ -0,0 +1,111 @@ +.class public final Lradiant/swipe/PublicPlaylistQueueAction; +.super Ljava/lang/Object; +.source "PublicPlaylistQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; + + iput-object p2, p0, Lradiant/swipe/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + iget-object p1, p4, Lm40/e$d;->a:Ljava/lang/String; + + iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + return-void +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 6 + + iget-object v0, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v4, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/swipe/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + const/4 v5, 0x3 + + invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + + iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; + + invoke-interface {v1, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + new-instance v0, Ljava/lang/StringBuilder; + + const-string v1, "ppl:" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v1, 0x3a + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/SuggestionsResolver.smali b/patches/extension/radiant/swipe/SuggestionsResolver.smali new file mode 100644 index 0000000..5c214e3 --- /dev/null +++ b/patches/extension/radiant/swipe/SuggestionsResolver.smali @@ -0,0 +1,431 @@ +.class public final Lradiant/swipe/SuggestionsResolver; +.super Ljava/lang/Object; +.source "SuggestionsResolver.smali" + +# interfaces +.implements Lradiant/swipe/QueueRowResolver; + + +# instance fields +.field private final host:Ljava/lang/ref/WeakReference; + +.field private final recycler:Ljava/lang/ref/WeakReference; + + +# direct methods +.method private constructor (Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + iput-object v0, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + + return-void +.end method + +.method private current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + .locals 8 + + if-eqz p1, :invalid + + iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + + instance-of v1, v0, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + iget-object v1, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v1 + + instance-of v2, v1, Landroidx/fragment/app/Fragment; + + if-eqz v2, :invalid + + check-cast v1, Landroidx/fragment/app/Fragment; + + invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getView()Landroid/view/View; + + move-result-object v2 + + if-eqz v2, :invalid + + iget-object v2, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Landroidx/recyclerview/widget/RecyclerView; + + if-eqz v2, :invalid + + invoke-virtual {v2}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object v2 + + instance-of v3, v2, La50/b; + + if-eqz v3, :invalid + + check-cast v2, La50/b; + + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + + iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + + if-gez v3, :adapter_bounds + + goto :invalid + + :adapter_bounds + invoke-virtual {v2}, Ljava/util/ArrayList;->size()I + + move-result v4 + + if-lt v3, v4, :adapter_item + + goto :invalid + + :adapter_item + invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + + move-result-object v2 + + instance-of v4, v2, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + if-eqz v4, :invalid + + check-cast v2, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track; + + move-result-object v4 + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track; + + move-result-object v5 + + invoke-virtual {v4}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v4 + + invoke-virtual {v5}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v6 + + if-ne v4, v6, :invalid + + iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + + if-ne v6, v7, :invalid + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getAvailability()Lcom/aspiro/wamp/model/Availability; + + move-result-object v4 + + invoke-interface {v4}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z + + move-result v4 + + if-eqz v4, :invalid + + invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->availability()Lcom/aspiro/wamp/model/AvailabilityInteractor; + + move-result-object v4 + + if-eqz v4, :invalid + + invoke-interface {v4, v5}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; + + move-result-object v4 + + invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z + + move-result v4 + + if-eqz v4, :invalid + + invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + + move-result-object v1 + + instance-of v4, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + + if-eqz v4, :invalid + + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + + iget-object v1, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->o:Ljava/lang/Object; + + instance-of v4, v1, Ljava/util/List; + + if-eqz v4, :invalid + + check-cast v1, Ljava/util/List; + + invoke-interface {v1}, Ljava/util/List;->size()I + + move-result v4 + + if-lt v3, v4, :viewmodel_item + + goto :invalid + + :viewmodel_item + invoke-interface {v1, v3}, Ljava/util/List;->get(I)Ljava/lang/Object; + + move-result-object v1 + + instance-of v3, v1, Lcom/aspiro/wamp/model/Track; + + if-eqz v3, :invalid + + check-cast v1, Lcom/aspiro/wamp/model/Track; + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v1 + + if-ne v6, v1, :invalid + + return-object v2 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method private availability()Lcom/aspiro/wamp/model/AvailabilityInteractor; + .locals 2 + + iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + + if-eqz v1, :dialog + + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + + return-object v0 + + :dialog + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method public static install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + .locals 1 + + if-eqz p0, :done + + if-eqz p1, :done + + new-instance v0, Lradiant/swipe/SuggestionsResolver; + + invoke-direct {v0, p0, p1}, Lradiant/swipe/SuggestionsResolver;->(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + + invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + + :done + return-void +.end method + +.method private viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + .locals 2 + + iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + + if-eqz v1, :dialog + + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + + return-object v0 + + :dialog + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + + if-eqz v1, :invalid + + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + + +# virtual methods +.method public execute(Lradiant/swipe/QueueRequest;)V + .locals 4 + + invoke-direct {p0, p1}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + move-result-object v0 + + if-eqz v0, :done + + iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + + move-result-object v1 + + if-eqz v1, :done + + iget p1, p1, Lradiant/swipe/QueueRequest;->position:I + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v2 + + if-eqz v2, :empty_queue + + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; + + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;->(I)V + + goto :emit + + :empty_queue + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; + + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;->(I)V + + :emit + invoke-interface {v1, v2}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j;->a(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V + + :done + return-void +.end method + +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + .locals 5 + + iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + if-ne v0, p1, :invalid + + instance-of v0, p2, Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; + + if-eqz v0, :invalid + + invoke-virtual {p2}, Landroidx/recyclerview/widget/RecyclerView$ViewHolder;->getBindingAdapterPosition()I + + move-result p2 + + if-gez p2, :has_position + + goto :invalid + + :has_position + invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; + + move-result-object p1 + + instance-of v0, p1, La50/b; + + if-eqz v0, :invalid + + check-cast p1, La50/b; + + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + + invoke-virtual {p1}, Ljava/util/ArrayList;->size()I + + move-result v0 + + if-lt p2, v0, :read_item + + goto :invalid + + :read_item + invoke-virtual {p1, p2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; + + move-result-object p1 + + instance-of v0, p1, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + if-eqz v0, :invalid + + check-cast p1, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + invoke-virtual {p1}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v1 + + new-instance v2, Lradiant/swipe/QueueRequest; + + invoke-direct {v2, p2, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + + invoke-direct {p0, v2}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + + move-result-object v3 + + if-eqz v3, :invalid + + return-object v2 + + :invalid + const/4 p1, 0x0 + + return-object p1 +.end method diff --git a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali new file mode 100644 index 0000000..8ebf84f --- /dev/null +++ b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali @@ -0,0 +1,310 @@ +.class public final Lradiant/swipe/VerticalMediaQueueAction; +.super Ljava/lang/Object; +.source "VerticalMediaQueueAction.smali" + +# interfaces +.implements Lradiant/swipe/ComposeSwipeAction; + + +# static fields +.field public static final TYPE_ALBUM:I = 0x1 + +.field public static final TYPE_MIX:I = 0x2 + +.field public static final TYPE_PLAYLIST:I = 0x3 + +.field public static final TYPE_TRACK:I = 0x4 + + +# instance fields +.field private final callback:Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final mediaType:I + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V + .locals 3 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; + + iput-object p2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + instance-of v0, p4, Lm40/e$a; + + if-eqz v0, :mix + + check-cast p4, Lm40/e$a; + + iget-wide v0, p4, Lm40/e$a;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x1 + + goto :store + + :mix + instance-of v0, p4, Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p4, Lm40/e$c; + + iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; + + const/4 v1, 0x2 + + goto :store + + :playlist + instance-of v0, p4, Lm40/e$d; + + if-eqz v0, :track + + check-cast p4, Lm40/e$d; + + iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; + + const/4 v1, 0x3 + + goto :store + + :track + instance-of v0, p4, Lm40/e$e; + + if-eqz v0, :unsupported + + check-cast p4, Lm40/e$e; + + iget-wide v0, p4, Lm40/e$e;->a:J + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x4 + + goto :store + + :unsupported + const/4 v0, 0x0 + + const/4 v1, 0x0 + + :store + iput-object v0, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + iput v1, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I + + return-void +.end method + +.method public static isEligible(Lm40/e;)Z + .locals 1 + + instance-of v0, p0, Lm40/e$a; + + if-eqz v0, :mix + + check-cast p0, Lm40/e$a; + + iget-boolean p0, p0, Lm40/e$a;->e:Z + + return p0 + + :mix + instance-of v0, p0, Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p0, Lm40/e$c; + + iget-boolean p0, p0, Lm40/e$c;->h:Z + + return p0 + + :playlist + instance-of v0, p0, Lm40/e$d; + + if-eqz v0, :track + + check-cast p0, Lm40/e$d; + + iget-boolean p0, p0, Lm40/e$d;->g:Z + + return p0 + + :track + instance-of v0, p0, Lm40/e$e; + + if-eqz v0, :invalid + + check-cast p0, Lm40/e$e; + + iget-boolean p0, p0, Lm40/e$e;->j:Z + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + +.method public static isSupported(Lm40/e;)Z + .locals 1 + + instance-of v0, p0, Lm40/e$a; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$c; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$d; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$e; + + if-eqz v0, :invalid + + :supported + const/4 p0, 0x1 + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 7 + + iget-object v6, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; + + if-eqz v6, :done + + iget-object v4, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + iget v5, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I + + if-eqz v5, :done + + const/4 v1, 0x4 + + if-ne v5, v1, :queue_event + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-nez v1, :queue_event + + new-instance v1, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a; + + iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + goto :emit + + :queue_event + + iget-object v1, p0, Lradiant/swipe/VerticalMediaQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + + move-object v1, v0 + + :emit + invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/swipe/VerticalMediaQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v0, :invalid + + new-instance v1, Ljava/lang/StringBuilder; + + const-string v2, "vlc:" + + invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/manifest.json b/patches/manifest.json index 748ae88..0ac26a2 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -458,7 +458,17 @@ "radiant/swipe/ViewAllTrackQueue.smali", "radiant/swipe/ComposeSearchQueueEvent.smali", "radiant/swipe/ComposeSearchQueueAction.smali", - "radiant/swipe/ComposeSearchQueue.smali" + "radiant/swipe/ComposeSearchQueue.smali", + "radiant/swipe/FeedResolver.smali", + "radiant/swipe/ArtistTrackCreditsQueueEvent.smali", + "radiant/swipe/ArtistTrackCreditsQueueAction.smali", + "radiant/swipe/ArtistTrackCreditsQueue.smali", + "radiant/swipe/DynamicMediaQueueEvent.smali", + "radiant/swipe/CompactGridMediaQueueAction.smali", + "radiant/swipe/VerticalMediaQueueAction.smali", + "radiant/swipe/PublicPlaylistQueueAction.smali", + "radiant/swipe/DynamicMediaQueue.smali", + "radiant/swipe/SuggestionsResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue", diff --git a/patches/swipe-to-queue-compose.patch b/patches/swipe-to-queue-compose.patch index 09d0570..15e21d6 100644 --- a/patches/swipe-to-queue-compose.patch +++ b/patches/swipe-to-queue-compose.patch @@ -54,6 +54,84 @@ invoke-static {}, Landroidx/navigation/f0;->a()V .line 249 +--- a/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali +@@ -872,1 +872,26 @@ ++ invoke-static {v10}, Lradiant/swipe/CompactGridMediaQueueAction;->isEligible(Lm40/e;)Z ++ ++ move-result v11 ++ ++ if-eqz v11, :rl_compact_grid_swipe_done ++ ++ new-instance v11, Lradiant/swipe/CompactGridMediaQueueAction; ++ ++ move-object/from16 v12, p0 ++ ++ move-object/from16 v14, p1 ++ ++ invoke-direct {v11, v4, v12, v14, v10}, Lradiant/swipe/CompactGridMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ ++ invoke-virtual {v11}, Lradiant/swipe/CompactGridMediaQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v12 ++ ++ const/4 v14, 0x1 ++ ++ invoke-static {v9, v12, v11, v14, v13}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v9 ++ ++ :rl_compact_grid_swipe_done + const v11, 0xe000 +--- a/com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali +@@ -38,1 +38,22 @@ ++ instance-of v0, p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ if-eqz v0, :rl_compact_grid_native_click ++ ++ iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;->b:Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; ++ ++ iget-object v1, v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;->f:Lam0/q; ++ ++ iget-object v2, p0, Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;->c:Ljava/lang/String; ++ ++ iget-object v3, v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;->a:Ljava/lang/String; ++ ++ const/4 v4, 0x0 ++ ++ invoke-interface {v1, v2, v3, p1, v4}, Lam0/q;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ++ ++ sget-object p1, Lkotlin/u;->a:Lkotlin/u; ++ ++ return-object p1 ++ ++ :rl_compact_grid_native_click + .line 1 +--- a/com/tidal/android/dynamicpages/ui/modules/compactgridcard/CompactGridCardModuleManager$createModuleViewState$2$2.smali ++++ b/com/tidal/android/dynamicpages/ui/modules/compactgridcard/CompactGridCardModuleManager$createModuleViewState$2$2.smali +@@ -72,1 +72,1 @@ +- .locals 0 ++ .locals 1 +@@ -74,1 +74,18 @@ ++ instance-of v0, p3, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ if-eqz v0, :rl_compact_grid_native_event ++ ++ iget-object v0, p0, Lkotlin/jvm/internal/AdaptedFunctionReference;->receiver:Ljava/lang/Object; ++ ++ check-cast v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a; ++ ++ check-cast p3, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ invoke-static {v0, p3}, Lradiant/swipe/DynamicMediaQueue;->handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ ++ sget-object p1, Lkotlin/u;->a:Lkotlin/u; ++ ++ return-object p1 ++ ++ :rl_compact_grid_native_event + .line 1 --- a/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali +++ b/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali @@ -926,6 +926,17 @@ @@ -233,7 +311,7 @@ move-object/from16 v25, v9 --- a/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali +++ b/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali -@@ -1718,6 +1718,17 @@ +@@ -1717,5 +1717,16 @@ } .end annotation @@ -250,4 +328,153 @@ + :rl_viewall_regular_event .line 1 instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$a; - +--- a/com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali +@@ -929,1 +929,5 @@ + check-cast v34, Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v34 ++ +@@ -970,1 +974,17 @@ + move-result-object v0 ++ iget-wide v14, v3, Lm40/e$e;->a:J ++ ++ invoke-static {v14, v15}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; ++ ++ move-result-object v14 ++ ++ new-instance v15, Lradiant/swipe/ArtistTrackCreditsQueueAction; ++ ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/swipe/ArtistTrackCreditsQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ ++ iget-boolean v5, v3, Lm40/e$e;->j:Z ++ ++ invoke-static {v0, v14, v15, v5, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v0 ++ +--- a/com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali ++++ b/com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali +@@ -603,1 +603,12 @@ + :cond_c ++ instance-of p2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent; ++ ++ if-eqz p2, :rl_artist_credits_queue_unhandled ++ ++ check-cast p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent; ++ ++ invoke-static {v0, p1}, Lradiant/swipe/ArtistTrackCreditsQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/swipe/ArtistTrackCreditsQueueEvent;)V ++ ++ goto :goto_4 ++ ++ :rl_artist_credits_queue_unhandled +--- a/com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali +@@ -3648,1 +3648,24 @@ + move-result-object v0 ++ invoke-static {v10}, Lradiant/swipe/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ ++ move-result v7 ++ ++ if-eqz v7, :rl_vertical_swipe_done ++ ++ new-instance v7, Lradiant/swipe/VerticalMediaQueueAction; ++ ++ invoke-direct {v7, v4, v1, v2, v10}, Lradiant/swipe/VerticalMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ ++ invoke-virtual {v7}, Lradiant/swipe/VerticalMediaQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v9 ++ ++ invoke-static {v10}, Lradiant/swipe/VerticalMediaQueueAction;->isEligible(Lm40/e;)Z ++ ++ move-result v12 ++ ++ invoke-static {v0, v9, v7, v12, v3}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v0 ++ ++ :rl_vertical_swipe_done +--- a/j40/e4.smali ++++ b/j40/e4.smali +@@ -310,1 +310,24 @@ + check-cast v11, Lam0/a; ++ instance-of v8, v6, Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m; ++ ++ if-eqz v8, :rl_vertical_tap_guard_done ++ ++ instance-of v8, v5, Lm40/e; ++ ++ if-eqz v8, :rl_vertical_tap_guard_done ++ ++ move-object v8, v5 ++ ++ check-cast v8, Lm40/e; ++ ++ invoke-static {v8}, Lradiant/swipe/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ ++ move-result v8 ++ ++ if-eqz v8, :rl_vertical_tap_guard_done ++ ++ invoke-static {v11}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v11 ++ ++ :rl_vertical_tap_guard_done +--- a/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali +@@ -2120,1 +2120,5 @@ + check-cast v34, Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ ++ move-result-object v34 ++ +@@ -2161,1 +2165,15 @@ + move-result-object v0 ++ new-instance v5, Lradiant/swipe/PublicPlaylistQueueAction; ++ ++ invoke-direct {v5, v4, v1, v2, v3}, Lradiant/swipe/PublicPlaylistQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V ++ ++ invoke-virtual {v5}, Lradiant/swipe/PublicPlaylistQueueAction;->stableKey()Ljava/lang/String; ++ ++ move-result-object v7 ++ ++ iget-boolean v9, v3, Lm40/e$d;->g:Z ++ ++ invoke-static {v0, v7, v5, v9, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ ++ move-result-object v0 ++ +--- a/com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali ++++ b/com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali +@@ -830,1 +830,12 @@ + :cond_15 ++ instance-of v2, v0, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ if-eqz v2, :rl_vertical_queue_continue ++ ++ check-cast v0, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ invoke-static {v3, v0}, Lradiant/swipe/DynamicMediaQueue;->handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ ++ goto :goto_2 ++ ++ :rl_vertical_queue_continue +--- a/com/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager$createModuleViewState$3.smali ++++ b/com/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager$createModuleViewState$3.smali +@@ -487,2 +487,13 @@ + :cond_c ++ instance-of v1, p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ if-eqz v1, :rl_public_queue_continue ++ ++ check-cast p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ ++ invoke-static {p2, p1}, Lradiant/swipe/DynamicMediaQueue;->handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ ++ goto :goto_1 ++ ++ :rl_public_queue_continue + invoke-static {}, Landroidx/navigation/f0;->a()V diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index cab3cac..fe4e1e6 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -443,3 +443,34 @@ .line 72 .line 73 .line 74 +--- a/com/tidal/android/feature/feed/ui/FeedView.smali ++++ b/com/tidal/android/feature/feed/ui/FeedView.smali +@@ -306,8 +306,10 @@ + .line 36 + .line 37 + .line 38 + invoke-static {p2, p1}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + ++ invoke-static {p0, p1}, Lradiant/swipe/FeedResolver;->install(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 39 + .line 40 + .line 41 +--- a/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali ++++ b/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali +@@ -876,8 +876,10 @@ + .line 96 + invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V + ++ invoke-static {p0, v0}, Lradiant/swipe/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ + .line 97 + .line 98 + .line 99 + invoke-virtual {p0}, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->M()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; +--- a/com/aspiro/wamp/nowplaying/view/suggestions/h.smali ++++ b/com/aspiro/wamp/nowplaying/view/suggestions/h.smali +@@ -674,1 +674,3 @@ + invoke-virtual {v3, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V ++ invoke-static {p0, v3}, Lradiant/swipe/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ From 8766043453a74d34beaa57f5e91fe7f513bf578b Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 20 Aug 2026 22:04:39 +0200 Subject: [PATCH 13/19] fix(mini player dynamic bg): get dynamic bg color from StateFlow --- .../radiant/MiniPlayerBackground.smali | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/patches/extension/radiant/MiniPlayerBackground.smali b/patches/extension/radiant/MiniPlayerBackground.smali index f348416..74e4692 100644 --- a/patches/extension/radiant/MiniPlayerBackground.smali +++ b/patches/extension/radiant/MiniPlayerBackground.smali @@ -3,22 +3,20 @@ # static fields -.field public static final colorState:Landroidx/compose/runtime/MutableState; # player bg color +.field public static final colorFlow:Lkotlinx/coroutines/flow/MutableStateFlow; # player bg color # direct methods .method static constructor ()V - .locals 2 + .locals 1 const/4 v0, 0x0 - const/4 v1, 0x2 - - invoke-static {v0, v0, v1, v0}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + invoke-static {v0}, Lkotlinx/coroutines/flow/StateFlowKt;->MutableStateFlow(Ljava/lang/Object;)Lkotlinx/coroutines/flow/MutableStateFlow; move-result-object v0 - sput-object v0, Lradiant/MiniPlayerBackground;->colorState:Landroidx/compose/runtime/MutableState; + sput-object v0, Lradiant/MiniPlayerBackground;->colorFlow:Lkotlinx/coroutines/flow/MutableStateFlow; return-void .end method @@ -42,9 +40,19 @@ invoke-interface {p2, v0}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V - sget-object v0, Lradiant/MiniPlayerBackground;->colorState:Landroidx/compose/runtime/MutableState; + sget-object v0, Lradiant/MiniPlayerBackground;->colorFlow:Lkotlinx/coroutines/flow/MutableStateFlow; - invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; # read player color + const/4 v1, 0x0 + + const/4 v3, 0x0 + + const/4 v4, 0x1 + + invoke-static {v0, v1, p2, v3, v4}, Landroidx/compose/runtime/SnapshotStateKt;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/h;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + + move-result-object v0 + + invoke-interface {v0}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object; move-result-object v0 @@ -131,9 +139,9 @@ move-exception p0 :set_color - sget-object p0, Lradiant/MiniPlayerBackground;->colorState:Landroidx/compose/runtime/MutableState; + sget-object p0, Lradiant/MiniPlayerBackground;->colorFlow:Lkotlinx/coroutines/flow/MutableStateFlow; - invoke-interface {p0, v0}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + invoke-interface {p0, v0}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V return-void .end method From 4504b8d1ab71ff635a523a2e51ddfe429cb6545e Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 20 Aug 2026 22:37:09 +0200 Subject: [PATCH 14/19] bump: patches version --- patches/data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/data.json b/patches/data.json index b1f47aa..115a790 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.2.5" + "patchesVersion": "1.2.6" } From 47fe539e764ed475bc3ff68dd8cbda2a4995ce3f Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 20 Aug 2026 23:43:24 +0200 Subject: [PATCH 15/19] feat(swipe to queue): custom swipe bg color --- Manager/app/src/main/assets/patches-manifest.json | 7 +++++++ .../components/PatchAdvancedOptionsSheet.kt | 14 +++++++++++--- .../components/PatchAdvancedOptionsSheet.kt | 14 +++++++++++--- Manager/app/src/main/res/values/strings.xml | 1 + patches/extension/radiant/SwipeToQueue.smali | 6 +----- .../radiant/swipe/ComposeSwipeState$Draw.smali | 2 +- .../radiant/swipe/ComposeSwipeState.smali | 10 +++------- patches/manifest.json | 7 +++++++ 8 files changed, 42 insertions(+), 19 deletions(-) diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 0ac26a2..b72add9 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -489,6 +489,13 @@ ], "defaultIndex": 0, "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + }, + { + "type": "color", + "key": "background_color", + "title": "Background Color", + "default": -14749031, + "token": "RL_SWIPE_TO_QUEUE_COLOR" } ] }, diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index ea29b2e..a01827d 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -212,6 +212,7 @@ fun PatchAdvancedOptionsSheet( is OptionSpec.Color -> ColorOptionRow( title = option.title, color = state.color(patch, option), + defaultColor = option.default, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -455,17 +456,24 @@ private fun ChoiceOptionRow( private fun ColorOptionRow( title: String, color: Int, + defaultColor: Int, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() + val opaqueDefault = defaultColor.withOpaqueAlpha() + val defaultLabel = if (opaqueDefault == TIDAL_GREEN) { + stringResource(R.string.patch_color_green) + } else { + stringResource(R.string.patch_waze_color_waze_default) + } val presets = listOf( - stringResource(R.string.patch_waze_color_waze_default), + defaultLabel, stringResource(R.string.patch_waze_color_tidal_cyan), stringResource(R.string.patch_waze_color_material_you), ) - val presetColors = listOf(WAZE_DEFAULT, TIDAL_CYAN, materialYouColor) + val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor) val selectedPreset = presetColors.indexOf(selectedColor) Column( @@ -628,7 +636,7 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String { } private const val OPAQUE_ALPHA = -0x1000000 -private const val WAZE_DEFAULT = -16747037 // #ff0075e3 +private const val TIDAL_GREEN = -14749031 // #ff1ef299 private const val TIDAL_CYAN = -14549268 // #ff21feec private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index 6a34223..3b929c8 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -218,6 +218,7 @@ fun PatchAdvancedOptionsSheet( is OptionSpec.Color -> ColorOptionRow( title = option.title, color = state.color(patch, option), + defaultColor = option.default, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -437,17 +438,24 @@ private fun ChoiceOptionRow( private fun ColorOptionRow( title: String, color: Int, + defaultColor: Int, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() + val opaqueDefault = defaultColor.withOpaqueAlpha() + val defaultLabel = if (opaqueDefault == TIDAL_GREEN) { + stringResource(R.string.patch_color_green) + } else { + stringResource(R.string.patch_waze_color_waze_default) + } val presets = listOf( - stringResource(R.string.patch_waze_color_waze_default), + defaultLabel, stringResource(R.string.patch_waze_color_tidal_cyan), stringResource(R.string.patch_waze_color_material_you), ) - val presetColors = listOf(WAZE_DEFAULT, TIDAL_CYAN, materialYouColor) + val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor) val selectedPreset = presetColors.indexOf(selectedColor) Column( @@ -588,7 +596,7 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String { } private const val OPAQUE_ALPHA = -0x1000000 -private const val WAZE_DEFAULT = -16747037 // #ff0075e3 +private const val TIDAL_GREEN = -14749031 // #ff1ef299 private const val TIDAL_CYAN = -14549268 // #ff21feec private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA diff --git a/Manager/app/src/main/res/values/strings.xml b/Manager/app/src/main/res/values/strings.xml index d18b237..1a5afa2 100644 --- a/Manager/app/src/main/res/values/strings.xml +++ b/Manager/app/src/main/res/values/strings.xml @@ -305,6 +305,7 @@ Media Menu Accent Color Waze Default + Green TIDAL Cyan Material You Auto Menu diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index bf20676..36f1b08 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -49,11 +49,7 @@ new-instance v1, Landroid/graphics/drawable/ColorDrawable; - sget v2, Lcom/aspiro/wamp/R$color;->green:I - - invoke-virtual {v0, v2}, Landroid/content/Context;->getColor(I)I - - move-result v2 + const v2, __RL_SWIPE_TO_QUEUE_COLOR__ invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali index 52bc098..0b043d0 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali @@ -108,7 +108,7 @@ :exposure_ready invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z - iget v11, v5, Lradiant/swipe/ComposeSwipeState;->green:I + iget v11, v5, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/swipe/ComposeSwipeState.smali index 05bbae9..be5e69b 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState.smali @@ -33,7 +33,7 @@ .field icon:Landroid/graphics/drawable/Drawable; -.field green:I +.field backgroundColor:I # direct methods @@ -606,13 +606,9 @@ :load_resources iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; - sget v1, Lcom/aspiro/wamp/R$color;->green:I + const v1, __RL_SWIPE_TO_QUEUE_COLOR__ - invoke-virtual {v0, v1}, Landroid/content/Context;->getColor(I)I - - move-result v1 - - iput v1, p0, Lradiant/swipe/ComposeSwipeState;->green:I + iput v1, p0, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I diff --git a/patches/manifest.json b/patches/manifest.json index 0ac26a2..b72add9 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -489,6 +489,13 @@ ], "defaultIndex": 0, "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + }, + { + "type": "color", + "key": "background_color", + "title": "Background Color", + "default": -14749031, + "token": "RL_SWIPE_TO_QUEUE_COLOR" } ] }, From 973580e23050d48cf67631671afca28652693495 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Mon, 31 Aug 2026 15:18:29 +0200 Subject: [PATCH 16/19] feat(swipe to queue): left swipe + configurable actions + play next --- .../app/src/main/assets/patches-manifest.json | 67 ++++- .../ui/components/radiant/RadiantInputs.kt | 12 +- .../components/PatchAdvancedOptionsSheet.kt | 24 +- .../ui/screens/patchopts/PatchOptionsModel.kt | 19 +- .../ui/screens/patchopts/PatchSpec.kt | 38 +++ .../components/PatchAdvancedOptionsSheet.kt | 25 +- patches/extension/radiant/SwipeToQueue.smali | 202 ++++++++++++--- .../radiant/swipe/AlbumItemQueueAction.smali | 23 +- .../swipe/ArtistTrackCreditsQueue.smali | 11 + .../swipe/ArtistTrackCreditsQueueAction.smali | 24 +- .../swipe/ArtistTrackCreditsQueueEvent.smali | 6 +- .../swipe/CompactGridMediaQueueAction.smali | 26 +- .../radiant/swipe/ComposeSearchQueue.smali | 54 ++++ .../swipe/ComposeSearchQueueAction.smali | 16 +- .../swipe/ComposeSearchQueueEvent.smali | 6 +- .../radiant/swipe/ComposeSwipeAction.smali | 3 + .../swipe/ComposeSwipeState$Draw.smali | 48 +++- .../radiant/swipe/ComposeSwipeState.smali | 92 ++++--- .../radiant/swipe/DynamicMediaQueue.smali | 129 ++++++++++ .../swipe/DynamicMediaQueueEvent.smali | 6 +- .../radiant/swipe/DynamicTrackQueue.smali | 11 + .../swipe/DynamicTrackQueueAction.smali | 24 +- .../swipe/DynamicTrackQueueEvent.smali | 6 +- .../radiant/swipe/DynamicTrackResolver.smali | 15 +- .../swipe/FavoriteTracksResolver.smali | 4 +- .../radiant/swipe/FeedResolver.smali | 33 +++ .../radiant/swipe/MyAlbumsResolver.smali | 18 +- .../swipe/MyMixesAndRadioResolver.smali | 20 +- .../radiant/swipe/MyPlaylistsResolver.smali | 15 +- .../radiant/swipe/PlaylistItemsResolver.smali | 13 +- .../swipe/PublicPlaylistQueueAction.smali | 20 +- .../radiant/swipe/QueueExecutor.smali | 239 ++++++++++++++++++ .../radiant/swipe/QueueRequest.smali | 9 + .../radiant/swipe/SearchAlbumsResolver.smali | 18 +- .../swipe/SearchPlaylistsResolver.smali | 17 +- .../radiant/swipe/SuggestionsResolver.smali | 71 +++++- .../radiant/swipe/UnifiedSearchResolver.smali | 40 ++- .../swipe/VerticalMediaQueueAction.smali | 26 +- .../radiant/swipe/ViewAllTrackQueue.smali | 51 +++- .../swipe/ViewAllTrackQueueAction.smali | 16 +- patches/manifest.json | 67 ++++- patches/swipe-to-queue.patch | 37 ++- 42 files changed, 1426 insertions(+), 175 deletions(-) diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index b72add9..c6f2076 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -476,26 +476,75 @@ "advancedOptions": [ { "type": "choice", - "key": "swipe_direction", - "title": "Swipe Direction", - "description": "Choose direction of the swipe gesture", + "key": "left_action", + "title": "Left Swipe Action", + "description": "Choose the action for a left swipe", "entries": [ - "Left", - "Right" + "Disabled", + "Play next", + "Add to queue" + ], + "values": [ + "0x0", + "0x1", + "0x2" + ], + "defaultIndex": 2, + "distinctFrom": "right_action", + "token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION" + }, + { + "type": "choice", + "key": "right_action", + "title": "Right Swipe Action", + "description": "Choose the action for a right swipe", + "entries": [ + "Disabled", + "Play next", + "Add to queue" + ], + "values": [ + "0x0", + "0x1", + "0x2" + ], + "defaultIndex": 0, + "distinctFrom": "left_action", + "token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION" + }, + { + "type": "choice", + "key": "remove_direction", + "title": "Remove Track from Queue", + "description": "Choose the swipe direction used to remove items from the play queue", + "entries": [ + "Left swipe", + "Right swipe", + "Both" ], "values": [ "0x4", - "0x8" + "0x8", + "0xc" ], "defaultIndex": 0, - "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + "token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION" }, { "type": "color", "key": "background_color", - "title": "Background Color", + "title": "Add to Queue Color", + "default": -14748953, + "defaultLabel": "Cyan", + "token": "RL_SWIPE_TO_QUEUE_ADD_COLOR" + }, + { + "type": "color", + "key": "play_next_color", + "title": "Play Next Color", "default": -14749031, - "token": "RL_SWIPE_TO_QUEUE_COLOR" + "defaultLabel": "Green", + "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" } ] }, diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt index d6119f9..ac57eba 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt @@ -161,6 +161,7 @@ fun RadiantSegmented( onSelect: (Int) -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, + disabledIndices: Set = emptySet(), ) { if (radiantStyle.native) { SingleChoiceSegmentedButtonRow(modifier = modifier.fillMaxWidth()) { @@ -168,7 +169,7 @@ fun RadiantSegmented( SegmentedButton( selected = index == selectedIndex, onClick = { onSelect(index) }, - enabled = enabled, + enabled = enabled && index !in disabledIndices, shape = SegmentedButtonDefaults.itemShape(index = index, count = options.size), icon = {}, label = { Text(text = label, maxLines = 1) }, @@ -196,6 +197,7 @@ fun RadiantSegmented( ) { options.forEachIndexed { index, label -> val selected = index == selectedIndex + val segmentEnabled = enabled && index !in disabledIndices val pillShape = RoundedCornerShape(13.dp) val alpha by animateFloatAsState( targetValue = if (selected) 1f else 0f, @@ -218,7 +220,7 @@ fun RadiantSegmented( } else Modifier ) .clickable( - enabled = enabled, + enabled = segmentEnabled, role = Role.RadioButton, onClick = { onSelect(index) }, ), @@ -226,7 +228,11 @@ fun RadiantSegmented( Text( text = label, style = MaterialTheme.typography.labelLarge, - color = if (selected) scheme.onPrimary else scheme.onSurfaceVariant, + color = when { + selected -> scheme.onPrimary + segmentEnabled -> scheme.onSurfaceVariant + else -> scheme.onSurface.copy(alpha = 0.38f) + }, maxLines = 1, ) } diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index a01827d..58df3bc 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -166,6 +166,11 @@ fun PatchAdvancedOptionsSheet( title = choice.title, entries = choice.entries, selectedIndex = state.choice(patch, choice), + forceDropdown = choice.forceDropdown, + disabledIndices = patch.conflictingChoices(choice) + .map { state.choice(patch, it) } + .filter { it != 0 } + .toSet(), onSelect = { state.setChoice(patch, choice, it) }, ) } @@ -205,6 +210,11 @@ fun PatchAdvancedOptionsSheet( title = option.title, entries = option.entries, selectedIndex = state.choice(patch, option), + forceDropdown = option.forceDropdown, + disabledIndices = patch.conflictingChoices(option) + .map { state.choice(patch, it) } + .filter { it != 0 } + .toSet(), onSelect = { state.setChoice(patch, option, it) }, ) } @@ -213,6 +223,7 @@ fun PatchAdvancedOptionsSheet( title = option.title, color = state.color(patch, option), defaultColor = option.default, + manifestDefaultLabel = option.defaultLabel, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -382,6 +393,8 @@ private fun ChoiceOptionRow( selectedIndex: Int, onSelect: (Int) -> Unit, title: String = "", + forceDropdown: Boolean = false, + disabledIndices: Set = emptySet(), modifier: Modifier = Modifier, ) { Column( @@ -397,7 +410,7 @@ private fun ChoiceOptionRow( textAlign = TextAlign.Center, ) } - if (entries.size > 3) { + if (forceDropdown || entries.size > 3) { var expanded by rememberSaveable { mutableStateOf(false) } val selectedLabel = entries.getOrNull(selectedIndex).orEmpty() @@ -420,6 +433,7 @@ private fun ChoiceOptionRow( entries.forEachIndexed { index, entry -> DropdownMenuItem( text = { Text(entry) }, + enabled = index !in disabledIndices, onClick = { onSelect(index) expanded = false @@ -435,6 +449,7 @@ private fun ChoiceOptionRow( SegmentedButton( selected = index == selectedIndex, onClick = { onSelect(index) }, + enabled = index !in disabledIndices, shape = SegmentedButtonDefaults.itemShape(index = index, count = entries.size), icon = {}, label = { @@ -457,17 +472,16 @@ private fun ColorOptionRow( title: String, color: Int, defaultColor: Int, + manifestDefaultLabel: String?, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() val opaqueDefault = defaultColor.withOpaqueAlpha() - val defaultLabel = if (opaqueDefault == TIDAL_GREEN) { + val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) { stringResource(R.string.patch_color_green) - } else { - stringResource(R.string.patch_waze_color_waze_default) - } + } else stringResource(R.string.patch_waze_color_waze_default) val presets = listOf( defaultLabel, stringResource(R.string.patch_waze_color_tidal_cyan), 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 8231ba1..80a7e50 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 @@ -179,7 +179,12 @@ class PatchOptionsModel( fun setChoiceValue(spec: PatchSpec, option: OptionSpec.Choice, index: Int) { if (index !in option.entries.indices) return - optionInts = optionInts + (keyOf(spec, option) to index) + val selectedKey = keyOf(spec, option) + optionInts = normalizeChoiceSelections( + specs = listOf(spec), + values = optionInts + (selectedKey to index), + preferredKey = selectedKey, + ) } fun colorValue(spec: PatchSpec, option: OptionSpec.Color): Int = @@ -204,7 +209,14 @@ class PatchOptionsModel( val prefix = "${spec.id}/" optionBools = optionBools.filterKeys { !it.startsWith(prefix) } optionFloats = optionFloats.filterKeys { !it.startsWith(prefix) } - optionInts = optionInts.filterKeys { !it.startsWith(prefix) } + optionInts = normalizeChoiceSelections( + specs = listOf(spec), + values = optionInts.filterKeys { !it.startsWith(prefix) }, + ) + } + + private fun normalizeChoiceSelections(specs: List) { + optionInts = normalizeChoiceSelections(specs, optionInts) } val optionState: PatchOptionState = PatchOptionState( @@ -282,6 +294,7 @@ class PatchOptionsModel( val loaded = if (component == null) builtinSpecs else loadManifestSpecs(component) ?: builtinSpecs mainThread { specs = loaded + normalizeChoiceSelections(loaded) validatePatchSelection() specsLoading = false } @@ -351,6 +364,7 @@ class PatchOptionsModel( ?: loadCachedReleaseManifestSpecs() ?: builtinSpecs mainThread { specs = loaded + normalizeChoiceSelections(loaded) validatePatchSelection() specsLoading = false } @@ -415,6 +429,7 @@ class PatchOptionsModel( } init { + normalizeChoiceSelections(specs) validatePatchSelection() screenModelScope.launchBlock { fetchPkgNameState() } // Default source is the latest release's manifest; custom selections drive themselves. diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt index 3b945e6..806030e 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt @@ -125,6 +125,8 @@ sealed interface OptionSpec { val defaultIndex: Int = 0, val values: List = emptyList(), val requiresOption: String? = null, + val forceDropdown: Boolean = false, + val distinctFrom: String? = null, val token: String? = null, ) : OptionSpec @@ -136,6 +138,7 @@ sealed interface OptionSpec { override val title: String = "", override val description: String = "", val default: Int = 0, + val defaultLabel: String? = null, /** Placeholder name (without the surrounding `__`) baked into the `.patch`/extension files. */ val token: String? = null, ) : OptionSpec @@ -231,6 +234,41 @@ val OptionSpec.variantGate: Int? fun OptionSpec.hiddenForVariant(selectedVariant: Int): Boolean = variantGate.let { it != null && it != selectedVariant } +fun PatchSpec.conflictingChoices(option: OptionSpec.Choice): List = + advancedOptions.filterIsInstance().filter { other -> + other.key != option.key && + (option.distinctFrom == other.key || other.distinctFrom == option.key) + } + +internal fun normalizeChoiceSelections( + specs: List, + values: Map, + preferredKey: String? = null, +): Map { + val normalized = values.toMutableMap() + for (spec in specs) { + val choices = spec.advancedOptions.filterIsInstance() + fun fullKey(option: OptionSpec.Choice) = "${spec.id}/${option.key}" + fun selected(option: OptionSpec.Choice): Int = + (normalized[fullKey(option)] ?: option.defaultIndex) + .coerceIn(0, option.entries.lastIndex.coerceAtLeast(0)) + + for (leftIndex in choices.indices) { + val left = choices[leftIndex] + for (rightIndex in leftIndex + 1 until choices.size) { + val right = choices[rightIndex] + if (left.distinctFrom != right.key && right.distinctFrom != left.key) continue + val selected = selected(left) + if (selected == 0 || selected != selected(right)) continue + + val loser = if (preferredKey == fullKey(right)) left else right + normalized[fullKey(loser)] = 0 + } + } + } + return if (normalized == values) values else normalized +} + sealed interface OptionLock { data object Free : OptionLock data class NeedsVariant(val title: String) : OptionLock diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index 3b929c8..2778e83 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -43,6 +43,7 @@ import com.meowarex.rlmobile.ui.components.ResetToDefaultButton import com.meowarex.rlmobile.ui.screens.patchopts.OptionLock import com.meowarex.rlmobile.ui.screens.patchopts.OptionSpec import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptionState +import com.meowarex.rlmobile.ui.screens.patchopts.conflictingChoices import com.meowarex.rlmobile.ui.screens.patchopts.hiddenForVariant import com.meowarex.rlmobile.ui.screens.patchopts.optionLock import com.meowarex.rlmobile.ui.screens.patchopts.PatchSpec @@ -172,6 +173,11 @@ fun PatchAdvancedOptionsSheet( title = choice.title, entries = choice.entries, selectedIndex = state.choice(patch, choice), + forceDropdown = choice.forceDropdown, + disabledIndices = patch.conflictingChoices(choice) + .map { state.choice(patch, it) } + .filter { it != 0 } + .toSet(), onSelect = { state.setChoice(patch, choice, it) }, ) } @@ -211,6 +217,11 @@ fun PatchAdvancedOptionsSheet( title = option.title, entries = option.entries, selectedIndex = state.choice(patch, option), + forceDropdown = option.forceDropdown, + disabledIndices = patch.conflictingChoices(option) + .map { state.choice(patch, it) } + .filter { it != 0 } + .toSet(), onSelect = { state.setChoice(patch, option, it) }, ) } @@ -219,6 +230,7 @@ fun PatchAdvancedOptionsSheet( title = option.title, color = state.color(patch, option), defaultColor = option.default, + manifestDefaultLabel = option.defaultLabel, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -382,6 +394,8 @@ private fun ChoiceOptionRow( selectedIndex: Int, onSelect: (Int) -> Unit, title: String = "", + forceDropdown: Boolean = false, + disabledIndices: Set = emptySet(), modifier: Modifier = Modifier, ) { Column( @@ -397,7 +411,7 @@ private fun ChoiceOptionRow( textAlign = TextAlign.Center, ) } - if (entries.size > 3) { + if (forceDropdown || entries.size > 3) { var expanded by rememberSaveable { mutableStateOf(false) } val selectedLabel = entries.getOrNull(selectedIndex).orEmpty() @@ -416,6 +430,7 @@ private fun ChoiceOptionRow( entries.forEachIndexed { index, entry -> DropdownMenuItem( text = { Text(entry) }, + enabled = index !in disabledIndices, onClick = { onSelect(index) expanded = false @@ -430,6 +445,7 @@ private fun ChoiceOptionRow( options = entries, selectedIndex = selectedIndex, onSelect = onSelect, + disabledIndices = disabledIndices, ) } } @@ -439,17 +455,16 @@ private fun ColorOptionRow( title: String, color: Int, defaultColor: Int, + manifestDefaultLabel: String?, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() val opaqueDefault = defaultColor.withOpaqueAlpha() - val defaultLabel = if (opaqueDefault == TIDAL_GREEN) { + val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) { stringResource(R.string.patch_color_green) - } else { - stringResource(R.string.patch_waze_color_waze_default) - } + } else stringResource(R.string.patch_waze_color_waze_default) val presets = listOf( defaultLabel, stringResource(R.string.patch_waze_color_tidal_cyan), diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index 36f1b08..ec60872 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -8,9 +8,13 @@ # instance fields -.field private final background:Landroid/graphics/drawable/ColorDrawable; +.field private final addBackground:Landroid/graphics/drawable/ColorDrawable; -.field private final icon:Landroid/graphics/drawable/Drawable; +.field private final addIcon:Landroid/graphics/drawable/Drawable; + +.field private final playNextBackground:Landroid/graphics/drawable/ColorDrawable; + +.field private final playNextIcon:Landroid/graphics/drawable/Drawable; .field private pendingRequest:Lradiant/swipe/QueueRequest; @@ -32,12 +36,26 @@ .end method .method private constructor (Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V - .locals 3 + .locals 4 const/4 v0, 0x0 - # ItemTouchHelper.LEFT (0x4) or ItemTouchHelper.RIGHT (0x8) - const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__ + const/4 v1, 0x0 + + const/16 v2, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + if-eqz v2, :check_right + + or-int/lit8 v1, v1, 0x4 + + :check_right + const/16 v2, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + if-eqz v2, :directions_ready + + or-int/lit8 v1, v1, 0x8 + + :directions_ready invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->(II)V @@ -49,11 +67,19 @@ new-instance v1, Landroid/graphics/drawable/ColorDrawable; - const v2, __RL_SWIPE_TO_QUEUE_COLOR__ + const v2, __RL_SWIPE_TO_QUEUE_ADD_COLOR__ invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V - iput-object v1, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable; + iput-object v1, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; + + new-instance v1, Landroid/graphics/drawable/ColorDrawable; + + const v2, __RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR__ + + invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V + + iput-object v1, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I @@ -72,7 +98,30 @@ invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_icon - iput-object v0, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable; + iput-object v0, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; + + invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v0 + + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_play_next:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + if-eqz v0, :store_play_next_icon + + invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + const/4 v1, -0x1 + + invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_play_next_icon + iput-object v0, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; return-void .end method @@ -135,7 +184,7 @@ .end method .method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I - .locals 2 + .locals 3 iget-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; @@ -149,7 +198,22 @@ if-eqz v0, :not_swipeable - const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__ + const/4 v0, 0x0 + + const/16 v1, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + if-eqz v1, :check_right + + or-int/lit8 v0, v0, 0x4 + + :check_right + const/16 v1, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + if-eqz v1, :directions_ready + + or-int/lit8 v0, v0, 0x8 + + :directions_ready return v0 @@ -176,22 +240,26 @@ int-to-float v0, v0 - const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__ - - const/4 v9, 0x4 - - if-ne v8, v9, :expect_right - cmpg-float v8, v11, v0 - if-gez v8, :wrong_direction + if-ltz v8, :left_action - goto :clear_active - - :expect_right cmpl-float v8, v11, v0 - if-lez v8, :wrong_direction + if-gtz v8, :right_action + + goto :wrong_direction + + :left_action + const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + goto :action_ready + + :right_action + const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + :action_ready + if-eqz v8, :wrong_direction goto :clear_active @@ -217,11 +285,13 @@ move-result v4 - const/16 v8, __RL_SWIPE_TO_QUEUE_DIRECTION__ + const/4 v8, 0x0 - const/4 v9, 0x4 + int-to-float v8, v8 - if-ne v8, v9, :right_bounds + cmpg-float v8, v11, v8 + + if-gez v8, :right_bounds invoke-virtual {v0}, Landroid/view/View;->getRight()I @@ -248,7 +318,34 @@ if-lez v5, :done - iget-object v6, p0, Lradiant/SwipeToQueue;->background:Landroid/graphics/drawable/ColorDrawable; + const/4 v8, 0x0 + + int-to-float v8, v8 + + cmpg-float v8, v11, v8 + + if-ltz v8, :draw_left_background + + const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + goto :background_action_ready + + :draw_left_background + const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + :background_action_ready + const/4 v9, 0x1 + + if-ne v8, v9, :add_background + + iget-object v6, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; + + goto :background_ready + + :add_background + iget-object v6, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; + + :background_ready invoke-virtual {v6, v2, v3, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V @@ -280,6 +377,24 @@ if-eqz v10, :draw_alpha + const/4 v9, 0x0 + + int-to-float v9, v9 + + cmpg-float v9, v11, v9 + + if-ltz v9, :stamp_left_action + + const/16 v9, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + goto :stamp_action + + :stamp_left_action + const/16 v9, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + :stamp_action + iput v9, v10, Lradiant/swipe/QueueRequest;->action:I + iput-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; # HapticFeedbackConstants.CLOCK_TICK @@ -334,7 +449,34 @@ :draw_background invoke-virtual {v6, p1}, Landroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V - iget-object v6, p0, Lradiant/SwipeToQueue;->icon:Landroid/graphics/drawable/Drawable; + const/4 v8, 0x0 + + int-to-float v8, v8 + + cmpg-float v8, v11, v8 + + if-ltz v8, :draw_left_icon + + const/16 v8, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + goto :icon_action_ready + + :draw_left_icon + const/16 v8, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + :icon_action_ready + const/4 v9, 0x1 + + if-ne v8, v9, :draw_add_icon + + iget-object v6, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; + + goto :icon_ready + + :draw_add_icon + iget-object v6, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; + + :icon_ready if-eqz v6, :done @@ -357,11 +499,13 @@ div-int/lit8 v9, v9, 0x2 - const/16 v10, __RL_SWIPE_TO_QUEUE_DIRECTION__ + const/4 v10, 0x0 - const/4 v11, 0x4 + int-to-float v10, v10 - if-ne v10, v11, :right_icon + cmpg-float v10, v11, v10 + + if-gez v10, :right_icon sub-int v10, v1, v9 diff --git a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali index b598eda..d575081 100644 --- a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali +++ b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali @@ -41,7 +41,7 @@ # virtual methods -.method public invoke()Ljava/lang/Object; +.method public invoke(I)Ljava/lang/Object; .locals 10 iget-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a; @@ -166,6 +166,15 @@ invoke-virtual {v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + const/4 v8, 0x1 + + if-ne p1, v8, :append_track + + invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done @@ -174,6 +183,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali index 044963a..380603a 100644 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali @@ -154,6 +154,17 @@ invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + iget v0, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I + + const/4 v2, 0x1 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali index 2d51fef..655da85 100644 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali @@ -39,8 +39,8 @@ # virtual methods -.method public invoke()Ljava/lang/Object; - .locals 7 +.method public invoke(I)Ljava/lang/Object; + .locals 8 iget-wide v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J @@ -73,12 +73,14 @@ iget-wide v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J - invoke-direct/range {v0 .. v5}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V :emit - iget-object v6, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; + iget-object v7, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; - invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; @@ -86,6 +88,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/ArtistTrackCreditsQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali index 4c3c696..58272fc 100644 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali @@ -7,6 +7,8 @@ # instance fields +.field public final action:I + .field public final context:Landroid/content/Context; .field public final moduleUuid:Ljava/lang/String; @@ -17,7 +19,7 @@ # direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V @@ -30,5 +32,7 @@ iput-wide p4, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J + iput p6, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I + return-void .end method diff --git a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali index 30575e3..c5ce95e 100644 --- a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali +++ b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali @@ -158,12 +158,12 @@ # virtual methods -.method public invoke()Ljava/lang/Object; - .locals 7 +.method public invoke(I)Ljava/lang/Object; + .locals 8 - iget-object v6, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; + iget-object v7, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; - if-eqz v6, :done + if-eqz v7, :done iget-object v4, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; @@ -198,12 +198,14 @@ iget-object v3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; - invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V move-object v1, v0 :emit - invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; @@ -211,6 +213,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/CompactGridMediaQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/ComposeSearchQueue.smali b/patches/extension/radiant/swipe/ComposeSearchQueue.smali index 1f20e8c..ee0c6c1 100644 --- a/patches/extension/radiant/swipe/ComposeSearchQueue.smali +++ b/patches/extension/radiant/swipe/ComposeSearchQueue.smali @@ -11,6 +11,16 @@ if-eqz p1, :done + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-lt v0, v1, :done + + const/4 v1, 0x2 + + if-gt v0, v1, :done + iget-object v8, p1, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context; if-eqz v8, :done @@ -198,6 +208,17 @@ invoke-virtual {v4, v9}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_track + + invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done @@ -237,6 +258,17 @@ move-result-object v9 + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_album + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_album invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done @@ -252,6 +284,17 @@ move-result-object v9 + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_playlist + + invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done @@ -263,6 +306,17 @@ move-result-object v9 + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_mix + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_mix invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; :done diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali b/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali index 1b2ccf9..c1a9e54 100644 --- a/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali +++ b/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali @@ -180,7 +180,7 @@ # virtual methods -.method public invoke()Ljava/lang/Object; +.method public invoke(I)Ljava/lang/Object; .locals 4 iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l; @@ -201,7 +201,7 @@ new-instance p0, Lradiant/swipe/ComposeSearchQueueEvent; - invoke-direct {p0, v1, v2, v3}, Lradiant/swipe/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;I)V + invoke-direct {p0, v1, v2, v3, p1}, Lradiant/swipe/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;II)V invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; @@ -211,6 +211,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSearchQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali b/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali index c5eeeed..4ef90be 100644 --- a/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali +++ b/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali @@ -17,6 +17,8 @@ # instance fields +.field public final action:I + .field public final context:Landroid/content/Context; .field public final id:Ljava/lang/String; @@ -25,7 +27,7 @@ # direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;I)V +.method public constructor (Landroid/content/Context;Ljava/lang/String;II)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V @@ -36,5 +38,7 @@ iput p3, p0, Lradiant/swipe/ComposeSearchQueueEvent;->type:I + iput p4, p0, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + return-void .end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeAction.smali b/patches/extension/radiant/swipe/ComposeSwipeAction.smali index afd97e3..36ff8fd 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeAction.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeAction.smali @@ -10,5 +10,8 @@ .method public abstract invoke()Ljava/lang/Object; .end method +.method public abstract invoke(I)Ljava/lang/Object; +.end method + .method public abstract setContext(Landroid/content/Context;)V .end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali index 0b043d0..3398b27 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali @@ -82,11 +82,9 @@ move-result v8 - const/16 v9, __RL_SWIPE_TO_QUEUE_DIRECTION__ + cmpg-float v9, v6, v1 - const/4 v10, 0x4 - - if-ne v9, v10, :right_exposure + if-gez v9, :right_exposure add-float v9, v3, v6 @@ -108,11 +106,41 @@ :exposure_ready invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z - iget v11, v5, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I + invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + + move-result v11 + + const/4 v12, 0x1 + + if-ne v11, v12, :add_color + + const v11, __RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR__ + + goto :color_ready + + :add_color + const v11, __RL_SWIPE_TO_QUEUE_ADD_COLOR__ + + :color_ready invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V - iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable; + invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + + move-result v11 + + const/4 v12, 0x1 + + if-ne v11, v12, :add_icon + + iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; + + goto :icon_ready + + :add_icon + iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; + + :icon_ready if-eqz v11, :background_done @@ -134,11 +162,13 @@ move-result v14 - const/16 v15, __RL_SWIPE_TO_QUEUE_DIRECTION__ + const/4 v15, 0x0 - const/4 v1, 0x4 + int-to-float v15, v15 - if-ne v15, v1, :right_icon + cmpg-float v15, v6, v15 + + if-gez v15, :right_icon int-to-float v1, v12 diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/swipe/ComposeSwipeState.smali index be5e69b..19adcd5 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState.smali @@ -31,9 +31,9 @@ .field final draw:Lradiant/swipe/ComposeSwipeState$Draw; -.field icon:Landroid/graphics/drawable/Drawable; +.field addIcon:Landroid/graphics/drawable/Drawable; -.field backgroundColor:I +.field playNextIcon:Landroid/graphics/drawable/Drawable; # direct methods @@ -135,6 +135,36 @@ # virtual methods +.method actionForOffset(F)I + .locals 2 + + const/4 v0, 0x0 + + int-to-float v0, v0 + + cmpg-float v1, p1, v0 + + if-ltz v1, :left + + cmpl-float p1, p1, v0 + + if-gtz p1, :right + + const/4 p1, 0x0 + + return p1 + + :left + const/16 p1, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ + + return p1 + + :right + const/16 p1, __RL_SWIPE_TO_QUEUE_RIGHT_ACTION__ + + return p1 +.end method + .method animateReset()V .locals 7 @@ -336,14 +366,14 @@ move-result v0 - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I - move-result v0 + move-result v2 goto :complete_ready :not_complete - const/4 v0, 0x0 + const/4 v2, 0x0 :complete_ready const/4 v1, 0x0 @@ -358,7 +388,7 @@ invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V - if-eqz v0, :done + if-eqz v2, :done invoke-static {}, Lradiant/swipe/ComposeTapGuard;->suppressAfterSwipe()V @@ -366,7 +396,7 @@ if-eqz v0, :done - invoke-interface {v0}, Lradiant/swipe/ComposeSwipeAction;->invoke()Ljava/lang/Object; + invoke-interface {v0, v2}, Lradiant/swipe/ComposeSwipeAction;->invoke(I)Ljava/lang/Object; goto :done @@ -380,28 +410,13 @@ .end method .method isCorrectDirection(F)Z - .locals 3 + .locals 1 - const/16 v0, __RL_SWIPE_TO_QUEUE_DIRECTION__ + invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I - const/4 v1, 0x4 + move-result v0 - const/4 v2, 0x0 - - if-ne v0, v1, :expect_right - - cmpg-float v0, p1, v2 - - if-gez v0, :wrong - - const/4 v0, 0x1 - - return v0 - - :expect_right - cmpl-float v0, p1, v2 - - if-lez v0, :wrong + if-eqz v0, :wrong const/4 v0, 0x1 @@ -606,10 +621,6 @@ :load_resources iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; - const v1, __RL_SWIPE_TO_QUEUE_COLOR__ - - iput v1, p0, Lradiant/swipe/ComposeSwipeState;->backgroundColor:I - sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; @@ -627,7 +638,26 @@ invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_icon - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->icon:Landroid/graphics/drawable/Drawable; + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; + + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_play_next:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + if-eqz v1, :store_play_next_icon + + invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + const/4 v2, -0x1 + + invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_play_next_icon + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; :context_ready if-eqz p1, :enabled_ready diff --git a/patches/extension/radiant/swipe/DynamicMediaQueue.smali b/patches/extension/radiant/swipe/DynamicMediaQueue.smali index e0e1ca5..d363405 100644 --- a/patches/extension/radiant/swipe/DynamicMediaQueue.smali +++ b/patches/extension/radiant/swipe/DynamicMediaQueue.smali @@ -11,6 +11,16 @@ if-eqz p1, :done + iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v5, 0x1 + + if-lt v4, v5, :done + + const/4 v5, 0x2 + + if-gt v4, v5, :done + iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; @@ -172,6 +182,17 @@ if-eqz v6, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_album invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done @@ -193,6 +214,17 @@ if-eqz v6, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_mix invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done @@ -208,6 +240,17 @@ move-result-object v12 + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done @@ -236,6 +279,17 @@ invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done @@ -249,6 +303,16 @@ if-eqz p1, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-lt v0, v1, :done + + const/4 v1, 0x2 + + if-gt v0, v1, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I const/4 v1, 0x3 @@ -362,6 +426,17 @@ move-result-object v4 + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_playlist + + invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done @@ -375,6 +450,16 @@ if-eqz p1, :done + iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v5, 0x1 + + if-lt v4, v5, :done + + const/4 v5, 0x2 + + if-gt v4, v5, :done + iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; @@ -536,6 +621,17 @@ if-eqz v6, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_album invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done @@ -557,6 +653,17 @@ if-eqz v6, :done + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_mix invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done @@ -572,6 +679,17 @@ move-result-object v12 + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done @@ -600,6 +718,17 @@ invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done diff --git a/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali b/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali index a8d662f..0881ddd 100644 --- a/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali +++ b/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali @@ -8,6 +8,8 @@ # instance fields +.field public final action:I + .field public final context:Landroid/content/Context; .field public final itemId:Ljava/lang/String; @@ -20,7 +22,7 @@ # direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V @@ -35,5 +37,7 @@ iput p5, p0, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I + iput p6, p0, Lradiant/swipe/DynamicMediaQueueEvent;->action:I + return-void .end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueue.smali b/patches/extension/radiant/swipe/DynamicTrackQueue.smali index 5042d46..5dc629d 100644 --- a/patches/extension/radiant/swipe/DynamicTrackQueue.smali +++ b/patches/extension/radiant/swipe/DynamicTrackQueue.smali @@ -162,6 +162,17 @@ invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + iget v0, p1, Lradiant/swipe/DynamicTrackQueueEvent;->action:I + + const/4 v2, 0x1 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali index a138a82..d4a8b8b 100644 --- a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali +++ b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali @@ -39,8 +39,8 @@ # virtual methods -.method public invoke()Ljava/lang/Object; - .locals 7 +.method public invoke(I)Ljava/lang/Object; + .locals 8 iget-wide v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J @@ -73,12 +73,14 @@ iget-wide v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J - invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V :emit - iget-object v6, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; + iget-object v7, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; - invoke-interface {v6, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; @@ -86,6 +88,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/DynamicTrackQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali b/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali index e666ca6..ab1ef10 100644 --- a/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali +++ b/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali @@ -7,6 +7,8 @@ # instance fields +.field public final action:I + .field public final context:Landroid/content/Context; .field public final moduleUuid:Ljava/lang/String; @@ -17,7 +19,7 @@ # direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V @@ -30,5 +32,7 @@ iput-wide p4, p0, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J + iput p6, p0, Lradiant/swipe/DynamicTrackQueueEvent;->action:I + return-void .end method diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/swipe/DynamicTrackResolver.smali index 354fe10..c6f1cdc 100644 --- a/patches/extension/radiant/swipe/DynamicTrackResolver.smali +++ b/patches/extension/radiant/swipe/DynamicTrackResolver.smali @@ -472,7 +472,9 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 8 + .locals 9 + + iget v8, p1, Lradiant/swipe/QueueRequest;->action:I iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; @@ -506,7 +508,7 @@ invoke-virtual {v1, v2}, Lradiant/swipe/AlbumItemQueueAction;->setContext(Landroid/content/Context;)V - invoke-virtual {v1}, Lradiant/swipe/AlbumItemQueueAction;->invoke()Ljava/lang/Object; + invoke-virtual {v1, v8}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; return-void @@ -622,6 +624,15 @@ move-result-object v5 + const/4 v0, 0x1 + + if-ne v8, v0, :append_track + + invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done diff --git a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali index 87bbd2b..b1ea2bc 100644 --- a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali +++ b/patches/extension/radiant/swipe/FavoriteTracksResolver.smali @@ -63,7 +63,9 @@ check-cast v2, Lcom/aspiro/wamp/model/FavoriteTrack; - invoke-virtual {v0, v1, v2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V + iget p1, p1, Lradiant/swipe/QueueRequest;->action:I + + invoke-virtual {v0, v1, v2, p1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V :done return-void diff --git a/patches/extension/radiant/swipe/FeedResolver.smali b/patches/extension/radiant/swipe/FeedResolver.smali index 74569f5..70def93 100644 --- a/patches/extension/radiant/swipe/FeedResolver.smali +++ b/patches/extension/radiant/swipe/FeedResolver.smali @@ -333,6 +333,8 @@ iget-object v1, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + iget p0, p1, Lradiant/swipe/QueueRequest;->action:I + invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v1 @@ -408,6 +410,15 @@ check-cast v7, Lcom/aspiro/wamp/model/Playlist; + const/4 v0, 0x1 + + if-ne p0, v0, :append_playlist + + invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done @@ -427,6 +438,17 @@ check-cast v7, Lcom/aspiro/wamp/model/Album; + const/4 v0, 0x1 + + if-ne p0, v0, :append_album + + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v7 + + goto :retain + + :append_album invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object v7 @@ -436,6 +458,17 @@ :queue_mix check-cast v7, Lcom/aspiro/wamp/mix/model/Mix; + const/4 v0, 0x1 + + if-ne p0, v0, :append_mix + + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v7 + + goto :retain + + :append_mix invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object v7 diff --git a/patches/extension/radiant/swipe/MyAlbumsResolver.smali b/patches/extension/radiant/swipe/MyAlbumsResolver.smali index 274aa7b..2f0f60c 100644 --- a/patches/extension/radiant/swipe/MyAlbumsResolver.smali +++ b/patches/extension/radiant/swipe/MyAlbumsResolver.smali @@ -122,6 +122,8 @@ .method public execute(Lradiant/swipe/QueueRequest;)V .locals 7 + iget v6, p1, Lradiant/swipe/QueueRequest;->action:I + invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; move-result-object p1 @@ -158,12 +160,24 @@ iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v6, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; - invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + const/4 v1, 0x1 + + if-ne v6, v1, :append + + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object p1 + goto :retain + + :append + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + :retain if-eqz p1, :done iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->j:Lio/reactivex/disposables/CompositeDisposable; diff --git a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali index bfd52de..d2c651e 100644 --- a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali +++ b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali @@ -152,7 +152,9 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 7 + .locals 8 + + iget v7, p1, Lradiant/swipe/QueueRequest;->action:I invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a; @@ -194,12 +196,24 @@ invoke-direct {v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object v6, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; - invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + const/4 v1, 0x1 + + if-ne v7, v1, :append + + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object p1 + goto :retain + + :append + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + :retain if-eqz p1, :done iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->h:Lio/reactivex/disposables/CompositeDisposable; diff --git a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali index a436c07..26733d7 100644 --- a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali +++ b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali @@ -157,6 +157,8 @@ .method public execute(Lradiant/swipe/QueueRequest;)V .locals 6 + iget v5, p1, Lradiant/swipe/QueueRequest;->action:I + invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; move-result-object p1 @@ -185,9 +187,18 @@ iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v5, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; - invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + const/4 v0, 0x1 + + if-ne v5, v0, :append + + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done return-void diff --git a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali index a88b44b..cbfe02e 100644 --- a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali +++ b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali @@ -243,7 +243,9 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 8 + .locals 9 + + iget v8, p1, Lradiant/swipe/QueueRequest;->action:I invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; move-result-object v0 @@ -301,6 +303,15 @@ :append invoke-virtual {v2}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object v3 + const/4 v0, 0x1 + + if-ne v8, v0, :append_track + + invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append_track invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done diff --git a/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali b/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali index ce5764f..30a4e17 100644 --- a/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali +++ b/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali @@ -39,8 +39,8 @@ # virtual methods -.method public invoke()Ljava/lang/Object; - .locals 6 +.method public invoke(I)Ljava/lang/Object; + .locals 7 iget-object v0, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; @@ -62,7 +62,9 @@ const/4 v5, 0x3 - invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; @@ -74,6 +76,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/PublicPlaylistQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali index 2d39530..5d74e8b 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -4,6 +4,41 @@ # direct methods +.method private static activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + .locals 1 + + :unwrap + instance-of v0, p0, Landroidx/fragment/app/FragmentActivity; + + if-nez v0, :ready + + instance-of v0, p0, Landroid/content/ContextWrapper; + + if-eqz v0, :invalid + + check-cast p0, Landroid/content/ContextWrapper; + + invoke-virtual {p0}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; + + move-result-object v0 + + if-eq v0, p0, :invalid + + move-object p0, v0 + + goto :unwrap + + :ready + check-cast p0, Landroidx/fragment/app/FragmentActivity; + + return-object p0 + + :invalid + const/4 p0, 0x0 + + return-object p0 +.end method + .method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; .locals 8 @@ -304,6 +339,210 @@ return-void .end method +.method public static playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + .locals 3 + + const/4 v0, 0x0 + + if-eqz p1, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + if-eqz p4, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + iget-object v1, p4, Lh4/a;->b:Lo3/a$a; + + invoke-interface {v1, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + + move-result-object v1 + + iget-object v1, v1, Lo3/a;->d:Lc3/l$a; + + invoke-interface {v1, p1, p2, p3}, Lc3/l$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l; + + move-result-object p1 + + invoke-virtual {p1, p0}, Lc3/l;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v0 + + :done + return-object v0 +.end method + +.method public static playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + .locals 2 + + const/4 v0, 0x0 + + if-eqz p1, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + if-eqz p4, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + iget-object v1, p4, Lh4/a;->h:Lu3/a$a; + + invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + + move-result-object v1 + + iget-object v1, v1, Lu3/a;->d:Lj3/q$a; + + invoke-interface {v1, p1, p2, p3}, Lj3/q$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q; + + move-result-object p1 + + invoke-virtual {p1, p0}, Lj3/q;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object v0 + + :done + return-object v0 +.end method + +.method public static playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + .locals 2 + + if-eqz p1, :done + + invoke-virtual {p1}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I + + move-result v0 + + if-lez v0, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-eqz v0, :play + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v0 + + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v0 + + check-cast v0, Le5/z$n2; + + iget-object v0, v0, Le5/z$n2;->v8:Ldagger/internal/f; + + invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; + + invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u; + + move-result-object p1 + + invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/u;->b(Landroidx/fragment/app/FragmentActivity;)V + + goto :done + + :play + invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + +.method public static playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + .locals 2 + + const/4 v0, 0x0 + + if-eqz p1, :done + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-eqz v1, :play + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + + move-result-object v1 + + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + + move-result-object v1 + + check-cast v1, Le5/z$n2; + + iget-object v1, v1, Le5/z$n2;->K9:Ldagger/internal/f; + + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lm3/i$a; + + invoke-interface {v1, p1, p2, p3}, Lm3/i$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i; + + move-result-object p1 + + invoke-virtual {p1, p0}, Lm3/i;->b(Landroidx/fragment/app/FragmentActivity;)V + + const/4 v0, 0x1 + + goto :done + + :play + invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + move-result v0 + + :done + return v0 +.end method + .method public static track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z .locals 2 diff --git a/patches/extension/radiant/swipe/QueueRequest.smali b/patches/extension/radiant/swipe/QueueRequest.smali index 566ba23..4b9d9a6 100644 --- a/patches/extension/radiant/swipe/QueueRequest.smali +++ b/patches/extension/radiant/swipe/QueueRequest.smali @@ -2,8 +2,17 @@ .super Ljava/lang/Object; .source "QueueRequest.smali" +# static fields +.field public static final ACTION_NONE:I = 0x0 + +.field public static final ACTION_PLAY_NEXT:I = 0x1 + +.field public static final ACTION_ADD_TO_QUEUE:I = 0x2 + # instance fields +.field public action:I + .field public final id:I .field public final media:Ljava/lang/Object; diff --git a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali index 28920bf..75766cb 100644 --- a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali +++ b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali @@ -122,6 +122,8 @@ .method public execute(Lradiant/swipe/QueueRequest;)V .locals 7 + iget v6, p1, Lradiant/swipe/QueueRequest;->action:I + invoke-direct {p0, p1}, Lradiant/swipe/SearchAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; move-result-object p1 @@ -158,12 +160,24 @@ iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v6, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; - invoke-static {v3, v4, v5, v6, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + const/4 v1, 0x1 + + if-ne v6, v1, :append + + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object p1 + goto :retain + + :append + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + move-result-object p1 + + :retain if-eqz p1, :done iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->g:Lio/reactivex/disposables/CompositeDisposable; diff --git a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali index 2c31db2..f5e496e 100644 --- a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali +++ b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali @@ -155,7 +155,9 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 6 + .locals 7 + + iget v6, p1, Lradiant/swipe/QueueRequest;->action:I invoke-direct {p0, p1}, Lradiant/swipe/SearchPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; @@ -189,9 +191,18 @@ invoke-direct {v4, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object v5, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; - invoke-static {v2, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + const/4 v0, 0x1 + + if-ne v6, v0, :append + + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done return-void diff --git a/patches/extension/radiant/swipe/SuggestionsResolver.smali b/patches/extension/radiant/swipe/SuggestionsResolver.smali index 5c214e3..599c249 100644 --- a/patches/extension/radiant/swipe/SuggestionsResolver.smali +++ b/patches/extension/radiant/swipe/SuggestionsResolver.smali @@ -303,7 +303,7 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 4 + .locals 7 invoke-direct {p0, p1}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; @@ -311,18 +311,75 @@ if-eqz v0, :done - iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; - - invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; - - move-result-object v0 - invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; move-result-object v1 if-eqz v1, :done + iget v2, p1, Lradiant/swipe/QueueRequest;->action:I + + const/4 v3, 0x1 + + if-ne v2, v3, :default_action + + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + + move-result v2 + + if-eqz v2, :default_action + + invoke-virtual {v0}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track; + + move-result-object v2 + + invoke-virtual {v2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I + + move-result v3 + + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v3 + + new-instance v4, Lcom/aspiro/wamp/model/MediaItemParent; + + invoke-direct {v4, v2}, Lcom/aspiro/wamp/model/MediaItemParent;->(Lcom/aspiro/wamp/model/MediaItem;)V + + invoke-static {v4}, Lkotlin/collections/u;->h(Ljava/lang/Object;)Ljava/util/List; + + move-result-object v4 + + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + + iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->j:Lcom/tidal/android/navigation/NavigationInfo; + + invoke-static {v3, v4, v5}, Lcom/aspiro/wamp/playqueue/source/model/b;->p(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + + move-result-object v6 + + new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + const-string v3, "suggestions" + + invoke-direct {v4, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V + + iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + + invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Landroidx/fragment/app/Fragment; + + invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; + + move-result-object v0 + + invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :default_action iget p1, p1, Lradiant/swipe/QueueRequest;->position:I invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z diff --git a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali index 96c01f0..8fbaa22 100644 --- a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali +++ b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali @@ -212,7 +212,9 @@ # virtual methods .method public execute(Lradiant/swipe/QueueRequest;)V - .locals 8 + .locals 9 + + iget v8, p1, Lradiant/swipe/QueueRequest;->action:I invoke-direct {p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; move-result-object v0 @@ -271,6 +273,15 @@ invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v0 + const/4 v2, 0x1 + + if-ne v8, v2, :queue_append_track + + invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :queue_append_track invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done @@ -285,6 +296,15 @@ iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 + const/4 v0, 0x1 + + if-ne v8, v0, :append_album + + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_album invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object v0 if-eqz v0, :done @@ -299,6 +319,15 @@ iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v6 + const/4 v0, 0x1 + + if-ne v8, v0, :append_playlist + + invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done @@ -313,6 +342,15 @@ iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 + const/4 v0, 0x1 + + if-ne v8, v0, :append_mix + + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + + goto :done + + :append_mix invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; move-result-object v0 if-eqz v0, :done diff --git a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali index 8ebf84f..bd8cd53 100644 --- a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali +++ b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali @@ -198,12 +198,12 @@ # virtual methods -.method public invoke()Ljava/lang/Object; - .locals 7 +.method public invoke(I)Ljava/lang/Object; + .locals 8 - iget-object v6, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; + iget-object v7, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; - if-eqz v6, :done + if-eqz v7, :done iget-object v4, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; @@ -245,12 +245,14 @@ iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - invoke-direct/range {v0 .. v5}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V move-object v1, v0 :emit - invoke-interface {v6, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; @@ -258,6 +260,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/VerticalMediaQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali index 8c63dfe..c38d57f 100644 --- a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali +++ b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali @@ -8,7 +8,7 @@ # direct methods -.method public static handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V +.method public static handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V .locals 10 if-eqz p0, :done @@ -101,6 +101,15 @@ invoke-virtual {v9, v3}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + const/4 v0, 0x1 + + if-ne p4, v0, :append + + invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :append invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done @@ -108,7 +117,7 @@ .end method .method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z - .locals 5 + .locals 6 instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c; @@ -138,15 +147,39 @@ move-result-object v0 + const/16 v1, 0x3a + + invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I + + move-result v1 + + if-lez v1, :not_handled + + const/4 v2, 0x0 + + invoke-virtual {v0, v2, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v2 + + invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I + + move-result v4 + + add-int/lit8 v1, v1, 0x1 + + invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; + + move-result-object v0 + invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v1 sget-object v3, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; - const/4 v4, 0x0 + const/4 v5, 0x0 - sput-object v4, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + sput-object v5, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; if-eqz v3, :handled @@ -156,7 +189,7 @@ check-cast v3, Landroid/content/Context; - invoke-static {p0, v3, v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;J)V + invoke-static {p0, v3, v1, v2, v4}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V :handled const/4 v0, 0x1 @@ -169,7 +202,7 @@ return v0 .end method -.method public static marker(J)Ljava/lang/String; +.method public static marker(JI)Ljava/lang/String; .locals 2 new-instance v0, Ljava/lang/StringBuilder; @@ -178,6 +211,12 @@ invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v1, 0x3a + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + invoke-virtual {v0, p0, p1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali index cf8dee1..9dfa506 100644 --- a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali +++ b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali @@ -31,7 +31,7 @@ # virtual methods -.method public invoke()Ljava/lang/Object; +.method public invoke(I)Ljava/lang/Object; .locals 5 iget-object v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l; @@ -52,7 +52,7 @@ invoke-static {v3}, Lradiant/swipe/ViewAllTrackQueue;->setContext(Landroid/content/Context;)V - invoke-static {v1, v2}, Lradiant/swipe/ViewAllTrackQueue;->marker(J)Ljava/lang/String; + invoke-static {v1, v2, p1}, Lradiant/swipe/ViewAllTrackQueue;->marker(JI)Ljava/lang/String; move-result-object v3 @@ -80,6 +80,18 @@ return-object v0 .end method +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/swipe/ViewAllTrackQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + .method public setContext(Landroid/content/Context;)V .locals 0 diff --git a/patches/manifest.json b/patches/manifest.json index b72add9..c6f2076 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -476,26 +476,75 @@ "advancedOptions": [ { "type": "choice", - "key": "swipe_direction", - "title": "Swipe Direction", - "description": "Choose direction of the swipe gesture", + "key": "left_action", + "title": "Left Swipe Action", + "description": "Choose the action for a left swipe", "entries": [ - "Left", - "Right" + "Disabled", + "Play next", + "Add to queue" + ], + "values": [ + "0x0", + "0x1", + "0x2" + ], + "defaultIndex": 2, + "distinctFrom": "right_action", + "token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION" + }, + { + "type": "choice", + "key": "right_action", + "title": "Right Swipe Action", + "description": "Choose the action for a right swipe", + "entries": [ + "Disabled", + "Play next", + "Add to queue" + ], + "values": [ + "0x0", + "0x1", + "0x2" + ], + "defaultIndex": 0, + "distinctFrom": "left_action", + "token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION" + }, + { + "type": "choice", + "key": "remove_direction", + "title": "Remove Track from Queue", + "description": "Choose the swipe direction used to remove items from the play queue", + "entries": [ + "Left swipe", + "Right swipe", + "Both" ], "values": [ "0x4", - "0x8" + "0x8", + "0xc" ], "defaultIndex": 0, - "token": "RL_SWIPE_TO_QUEUE_DIRECTION" + "token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION" }, { "type": "color", "key": "background_color", - "title": "Background Color", + "title": "Add to Queue Color", + "default": -14748953, + "defaultLabel": "Cyan", + "token": "RL_SWIPE_TO_QUEUE_ADD_COLOR" + }, + { + "type": "color", + "key": "play_next_color", + "title": "Play Next Color", "default": -14749031, - "token": "RL_SWIPE_TO_QUEUE_COLOR" + "defaultLabel": "Green", + "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" } ] }, diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index fe4e1e6..3eedd77 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali -@@ -107,6 +107,124 @@ +@@ -107,6 +107,143 @@ .end method @@ -54,7 +54,7 @@ + return v0 +.end method + -+.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;)V ++.method public final Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V + .locals 6 + + move v5, p1 @@ -102,10 +102,29 @@ + + move-object v2, p2 + ++ const/4 p1, 0x1 ++ ++ if-ne p3, p1, :rl_favorite_append ++ ++ invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z ++ move-result p1 ++ if-nez p1, :rl_favorite_play_next ++ const/4 v0, 0x0 ++ goto :rl_favorite_result ++ :rl_favorite_play_next ++ invoke-static {v1, v2, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z ++ ++ move-result v0 ++ ++ goto :rl_favorite_result ++ ++ :rl_favorite_append + invoke-virtual/range {v0 .. v4}, Lh4/a;->q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + move-result v0 + ++ :rl_favorite_result ++ + if-nez v0, :done + + # if nothing is playing, call row click handler to play the track directly instead of adding it to queue @@ -125,7 +144,7 @@ # virtual methods .method public final M()Ln8/b; .locals 1 -@@ -2265,9 +2418,16 @@ +@@ -2265,9 +2437,16 @@ iput-object p0, p1, Lo4/g;->e:Lo4/g$e; .line 224 @@ -334,7 +353,7 @@ .line 32 .line 33 - const/4 v1, 0x4 -+ const/16 v1, __RL_SWIPE_TO_QUEUE_DIRECTION__ ++ const/16 v1, __RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION__ .line 34 :cond_1 @@ -393,7 +412,7 @@ --- a/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali -@@ -1176,6 +1176,8 @@ +@@ -1176,8 +1176,10 @@ .line 69 .line 70 .line 71 @@ -406,7 +425,7 @@ .line 74 --- a/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali +++ b/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali -@@ -5193,6 +5193,8 @@ +@@ -5193,8 +5193,10 @@ .line 127 .line 128 .line 129 @@ -419,7 +438,7 @@ .line 132 --- a/com/aspiro/wamp/search/v2/UnifiedSearchView.smali +++ b/com/aspiro/wamp/search/v2/UnifiedSearchView.smali -@@ -1596,6 +1596,8 @@ +@@ -1596,8 +1596,10 @@ .line 60 .line 61 .line 62 @@ -432,7 +451,7 @@ .line 65 --- a/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali -@@ -1204,6 +1204,8 @@ +@@ -1204,8 +1204,10 @@ .line 69 .line 70 .line 71 @@ -458,7 +477,7 @@ .line 41 --- a/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali +++ b/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali -@@ -876,8 +876,10 @@ +@@ -876,7 +876,9 @@ .line 96 invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V From 2cb51576df33f049f40be344ca092fea59b2801c Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Mon, 31 Aug 2026 16:01:18 +0200 Subject: [PATCH 17/19] feat(swipe to queue): neutral default colors --- .../app/src/main/assets/patches-manifest.json | 6 +-- .../components/PatchAdvancedOptionsSheet.kt | 46 +++++++++++++------ .../ui/screens/patchopts/PatchSpec.kt | 1 - .../components/PatchAdvancedOptionsSheet.kt | 46 +++++++++++++------ Manager/app/src/main/res/drawable/ic_edit.xml | 9 ++++ Manager/app/src/main/res/values/strings.xml | 3 ++ patches/manifest.json | 6 +-- 7 files changed, 80 insertions(+), 37 deletions(-) create mode 100644 Manager/app/src/main/res/drawable/ic_edit.xml diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index c6f2076..d9ebef9 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -534,16 +534,14 @@ "type": "color", "key": "background_color", "title": "Add to Queue Color", - "default": -14748953, - "defaultLabel": "Cyan", + "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_ADD_COLOR" }, { "type": "color", "key": "play_next_color", "title": "Play Next Color", - "default": -14749031, - "defaultLabel": "Green", + "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" } ] diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index 58df3bc..93a348c 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -223,7 +223,6 @@ fun PatchAdvancedOptionsSheet( title = option.title, color = state.color(patch, option), defaultColor = option.default, - manifestDefaultLabel = option.defaultLabel, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -472,22 +471,33 @@ private fun ColorOptionRow( title: String, color: Int, defaultColor: Int, - manifestDefaultLabel: String?, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() - val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() - val opaqueDefault = defaultColor.withOpaqueAlpha() - val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) { - stringResource(R.string.patch_color_green) - } else stringResource(R.string.patch_waze_color_waze_default) - val presets = listOf( - defaultLabel, - stringResource(R.string.patch_waze_color_tidal_cyan), - stringResource(R.string.patch_waze_color_material_you), - ) - val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor) + val isNeutralPalette = defaultColor.withOpaqueAlpha() == NEUTRAL + val presets = if (isNeutralPalette) { + listOf( + stringResource(R.string.patch_color_neutral), + stringResource(R.string.patch_color_green), + stringResource(R.string.patch_color_cyan), + ) + } else { + listOf( + stringResource(R.string.patch_waze_color_waze_default), + stringResource(R.string.patch_waze_color_tidal_cyan), + stringResource(R.string.patch_waze_color_material_you), + ) + } + val presetColors = if (isNeutralPalette) { + listOf(NEUTRAL, GREEN, CYAN) + } else { + listOf( + defaultColor.withOpaqueAlpha(), + TIDAL_CYAN, + MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha(), + ) + } val selectedPreset = presetColors.indexOf(selectedColor) Column( @@ -515,6 +525,12 @@ private fun ColorOptionRow( style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.primary, ) + Icon( + painter = painterResource(R.drawable.ic_edit), + contentDescription = stringResource(R.string.patch_color_edit), + tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(18.dp), + ) } SingleChoiceSegmentedButtonRow(modifier = Modifier.fillMaxWidth()) { presets.forEachIndexed { index, label -> @@ -650,7 +666,9 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String { } private const val OPAQUE_ALPHA = -0x1000000 -private const val TIDAL_GREEN = -14749031 // #ff1ef299 +private const val NEUTRAL = -14408663 // #ff242429 +private const val GREEN = -14749031 // #ff1ef299 +private const val CYAN = -14748953 // #ff1ef2e7 private const val TIDAL_CYAN = -14549268 // #ff21feec private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt index 806030e..879327e 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt @@ -138,7 +138,6 @@ sealed interface OptionSpec { override val title: String = "", override val description: String = "", val default: Int = 0, - val defaultLabel: String? = null, /** Placeholder name (without the surrounding `__`) baked into the `.patch`/extension files. */ val token: String? = null, ) : OptionSpec diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index 2778e83..cb5f7b0 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -230,7 +230,6 @@ fun PatchAdvancedOptionsSheet( title = option.title, color = state.color(patch, option), defaultColor = option.default, - manifestDefaultLabel = option.defaultLabel, onColorChange = { state.setColor(patch, option, it) }, ) } @@ -455,22 +454,33 @@ private fun ColorOptionRow( title: String, color: Int, defaultColor: Int, - manifestDefaultLabel: String?, onColorChange: (Int) -> Unit, ) { var showPicker by rememberSaveable { mutableStateOf(false) } val selectedColor = color.withOpaqueAlpha() - val materialYouColor = MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha() - val opaqueDefault = defaultColor.withOpaqueAlpha() - val defaultLabel = manifestDefaultLabel ?: if (opaqueDefault == TIDAL_GREEN) { - stringResource(R.string.patch_color_green) - } else stringResource(R.string.patch_waze_color_waze_default) - val presets = listOf( - defaultLabel, - stringResource(R.string.patch_waze_color_tidal_cyan), - stringResource(R.string.patch_waze_color_material_you), - ) - val presetColors = listOf(opaqueDefault, TIDAL_CYAN, materialYouColor) + val isNeutralPalette = defaultColor.withOpaqueAlpha() == NEUTRAL + val presets = if (isNeutralPalette) { + listOf( + stringResource(R.string.patch_color_neutral), + stringResource(R.string.patch_color_green), + stringResource(R.string.patch_color_cyan), + ) + } else { + listOf( + stringResource(R.string.patch_waze_color_waze_default), + stringResource(R.string.patch_waze_color_tidal_cyan), + stringResource(R.string.patch_waze_color_material_you), + ) + } + val presetColors = if (isNeutralPalette) { + listOf(NEUTRAL, GREEN, CYAN) + } else { + listOf( + defaultColor.withOpaqueAlpha(), + TIDAL_CYAN, + MaterialTheme.colorScheme.primary.toArgb().withOpaqueAlpha(), + ) + } val selectedPreset = presetColors.indexOf(selectedColor) Column( @@ -498,6 +508,12 @@ private fun ColorOptionRow( style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.primary, ) + Icon( + painter = painterResource(R.drawable.ic_edit), + contentDescription = stringResource(R.string.patch_color_edit), + tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(18.dp), + ) } RadiantSegmented( options = presets, @@ -611,7 +627,9 @@ private fun formatSliderValue(option: OptionSpec.Slider, value: Float): String { } private const val OPAQUE_ALPHA = -0x1000000 -private const val TIDAL_GREEN = -14749031 // #ff1ef299 +private const val NEUTRAL = -14408663 // #ff242429 +private const val GREEN = -14749031 // #ff1ef299 +private const val CYAN = -14748953 // #ff1ef2e7 private const val TIDAL_CYAN = -14549268 // #ff21feec private fun Int.withOpaqueAlpha(): Int = (this and 0x00FFFFFF) or OPAQUE_ALPHA diff --git a/Manager/app/src/main/res/drawable/ic_edit.xml b/Manager/app/src/main/res/drawable/ic_edit.xml new file mode 100644 index 0000000..9ae2d89 --- /dev/null +++ b/Manager/app/src/main/res/drawable/ic_edit.xml @@ -0,0 +1,9 @@ + + + diff --git a/Manager/app/src/main/res/values/strings.xml b/Manager/app/src/main/res/values/strings.xml index 1a5afa2..54aba54 100644 --- a/Manager/app/src/main/res/values/strings.xml +++ b/Manager/app/src/main/res/values/strings.xml @@ -305,13 +305,16 @@ Media Menu Accent Color Waze Default + Neutral Green + Cyan TIDAL Cyan Material You Auto Menu Home Recents Custom color + Choose custom color Hex color Use #RRGGBB or #AARRGGBB. Enable Legacy UI diff --git a/patches/manifest.json b/patches/manifest.json index c6f2076..d9ebef9 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -534,16 +534,14 @@ "type": "color", "key": "background_color", "title": "Add to Queue Color", - "default": -14748953, - "defaultLabel": "Cyan", + "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_ADD_COLOR" }, { "type": "color", "key": "play_next_color", "title": "Play Next Color", - "default": -14749031, - "defaultLabel": "Green", + "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" } ] From 49693ca36b9b49d7ab5b13f0d4089eb659d8f498 Mon Sep 17 00:00:00 2001 From: Se7en-dev Date: Thu, 3 Sep 2026 11:36:22 +0200 Subject: [PATCH 18/19] feat(swipe to queue): add to playlist action + both directions for queue track removal + options UI rework --- .../app/src/main/assets/patches-manifest.json | 30 +++- .../ui/components/radiant/RadiantInputs.kt | 168 ++++++++++++++++++ .../components/PatchAdvancedOptionsSheet.kt | 61 +++---- .../components/PatchSelectionAccordion.kt | 55 ++++-- .../ui/screens/patchopts/PatchOptionsModel.kt | 18 +- .../ui/screens/patchopts/PatchSpec.kt | 9 + .../components/PatchAdvancedOptionsSheet.kt | 57 +++--- .../components/PatchSelectionAccordion.kt | 55 ++++-- patches/extension/radiant/SwipeToQueue.smali | 53 ++++++ .../radiant/swipe/AlbumItemQueueAction.smali | 15 +- .../swipe/ArtistTrackCreditsQueue.smali | 11 +- .../swipe/ArtistTrackCreditsQueueAction.smali | 4 + .../swipe/CompactGridMediaQueueAction.smali | 4 + .../radiant/swipe/ComposeSearchQueue.smali | 53 +++++- .../swipe/ComposeSwipeState$Draw.smali | 18 ++ .../radiant/swipe/ComposeSwipeState.smali | 21 +++ .../radiant/swipe/DynamicMediaQueue.smali | 105 +++++++++-- .../radiant/swipe/DynamicTrackQueue.smali | 11 +- .../swipe/DynamicTrackQueueAction.smali | 4 + .../radiant/swipe/DynamicTrackResolver.smali | 15 +- .../radiant/swipe/FeedResolver.smali | 29 +++ .../radiant/swipe/MyAlbumsResolver.smali | 11 ++ .../swipe/MyMixesAndRadioResolver.smali | 11 ++ .../radiant/swipe/MyPlaylistsResolver.smali | 9 + .../radiant/swipe/PlaylistItemsResolver.smali | 13 ++ .../radiant/swipe/QueueExecutor.smali | 126 +++++++++++++ .../radiant/swipe/QueueRequest.smali | 2 + .../radiant/swipe/SearchAlbumsResolver.smali | 11 ++ .../swipe/SearchPlaylistsResolver.smali | 9 + .../radiant/swipe/SuggestionsResolver.smali | 16 ++ .../radiant/swipe/UnifiedSearchResolver.smali | 35 ++++ .../swipe/VerticalMediaQueueAction.smali | 4 + .../radiant/swipe/ViewAllTrackQueue.smali | 11 +- .../swipe/ViewAllTrackQueueAction.smali | 5 + patches/manifest.json | 30 +++- patches/swipe-to-queue.patch | 15 +- 36 files changed, 953 insertions(+), 151 deletions(-) diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index d9ebef9..8a8f2e4 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -471,25 +471,27 @@ "radiant/swipe/SuggestionsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks/albums/playlists to add them to the play queue", + "description": "Swipe on tracks/albums/playlists to add them to the play queue (and more actions)", "default": false, "advancedOptions": [ { "type": "choice", "key": "left_action", "title": "Left Swipe Action", - "description": "Choose the action for a left swipe", "entries": [ "Disabled", "Play next", - "Add to queue" + "Add to queue", + "Add to playlist" ], "values": [ "0x0", "0x1", - "0x2" + "0x2", + "0x3" ], "defaultIndex": 2, + "inline": true, "distinctFrom": "right_action", "token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION" }, @@ -497,18 +499,20 @@ "type": "choice", "key": "right_action", "title": "Right Swipe Action", - "description": "Choose the action for a right swipe", "entries": [ "Disabled", "Play next", - "Add to queue" + "Add to queue", + "Add to playlist" ], "values": [ "0x0", "0x1", - "0x2" + "0x2", + "0x3" ], "defaultIndex": 0, + "inline": true, "distinctFrom": "left_action", "token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION" }, @@ -516,11 +520,10 @@ "type": "choice", "key": "remove_direction", "title": "Remove Track from Queue", - "description": "Choose the swipe direction used to remove items from the play queue", "entries": [ "Left swipe", "Right swipe", - "Both" + "Both directions" ], "values": [ "0x4", @@ -528,6 +531,8 @@ "0xc" ], "defaultIndex": 0, + "forceDropdown": true, + "inline": true, "token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION" }, { @@ -543,6 +548,13 @@ "title": "Play Next Color", "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" + }, + { + "type": "color", + "key": "add_to_playlist_color", + "title": "Add to Playlist Color", + "default": -14408663, + "token": "RL_SWIPE_TO_QUEUE_ADD_TO_PLAYLIST_COLOR" } ] }, diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt index ac57eba..69ba90d 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/components/radiant/RadiantInputs.kt @@ -3,26 +3,49 @@ package com.meowarex.rlmobile.ui.components.radiant import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateDpAsState import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.FastOutSlowInEasing +import androidx.compose.animation.core.MutableTransitionState +import androidx.compose.animation.core.animateFloat +import androidx.compose.animation.core.rememberTransition +import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.border +import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsFocusedAsState import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.* import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.layout.onSizeChanged +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.role +import androidx.compose.ui.semantics.selected +import androidx.compose.ui.semantics.semantics import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Popup +import androidx.compose.ui.window.PopupProperties +import com.meowarex.rlmobile.R import com.meowarex.rlmobile.ui.theme.* /** @@ -113,6 +136,151 @@ fun RadiantTextField( } } +/** + * Dropdown + */ +@Composable +fun RadiantDropdown( + options: List, + selectedIndex: Int, + onSelect: (Int) -> Unit, + modifier: Modifier = Modifier, + enabled: Boolean = true, + disabledIndices: Set = emptySet(), +) { + var expanded by rememberSaveable { mutableStateOf(false) } + val visibilityState = remember { MutableTransitionState(false) } + visibilityState.targetState = expanded + val transition = rememberTransition(visibilityState, label = "Dropdown") + val progress by transition.animateFloat( + transitionSpec = { tween(durationMillis = 160, easing = FastOutSlowInEasing) }, + label = "DropdownProgress", + ) { + if (it) 1f else 0f + } + val scheme = MaterialTheme.colorScheme + val selectedLabel = options.getOrNull(selectedIndex).orEmpty() + val shape = if (radiantStyle.native) MaterialTheme.shapes.extraSmall else RoundedCornerShape(16.dp) + var anchorWidthPx by remember { mutableIntStateOf(0) } + val anchorWidth = with(LocalDensity.current) { anchorWidthPx.toDp() } + val positionProvider = MenuDefaults.rememberDropdownMenuPopupPositionProvider( + dropdownMenuAnchorPosition = MenuAnchorPosition.Below, + offset = DpOffset(0.dp, 6.dp), + ) + Box(modifier = modifier.fillMaxWidth()) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + modifier = Modifier + .fillMaxWidth() + .onSizeChanged { anchorWidthPx = it.width } + .background(scheme.surfaceContainerLowest.copy(alpha = 0.8f), shape) + .then( + if (radiantStyle.native) Modifier.border(1.dp, scheme.outline, shape) + else Modifier.border( + RadiantDesign.Hairline, + hairlineBrush(scheme.onSurface, RadiantDesign.BORDER_ALPHA * 1.5f), + shape, + ) + ) + .clip(shape) + .clickable(enabled = enabled, role = Role.Button) { expanded = !expanded } + .alpha(if (enabled) 1f else 0.45f) + .heightIn(min = 52.dp) + .padding(horizontal = 16.dp, vertical = 10.dp), + ) { + Text( + text = selectedLabel, + style = MaterialTheme.typography.bodyLarge, + color = scheme.onSurface, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.weight(1f), + ) + Icon( + painter = painterResource(R.drawable.ic_arrow_down_small), + contentDescription = null, + modifier = Modifier.rotate(180f * progress), + ) + } + + if ( + anchorWidthPx > 0 && + (visibilityState.currentState || visibilityState.targetState || transition.isRunning) + ) { + Popup( + popupPositionProvider = positionProvider, + onDismissRequest = { expanded = false }, + properties = PopupProperties(focusable = true), + ) { + Surface( + modifier = Modifier + .width(anchorWidth) + .graphicsLayer { + alpha = progress + scaleX = 0.92f + 0.08f * progress + scaleY = 0.92f + 0.08f * progress + transformOrigin = positionProvider.transformOrigin + }, + shape = shape, + color = scheme.surfaceContainer, + tonalElevation = 0.dp, + shadowElevation = 8.dp, + border = BorderStroke( + RadiantDesign.Hairline, + scheme.onSurface.copy(alpha = RadiantDesign.BORDER_ALPHA * 2f), + ), + ) { + Column( + modifier = Modifier + .heightIn(max = 320.dp) + .verticalScroll(rememberScrollState()) + .padding(vertical = 6.dp), + ) { + options.forEachIndexed { index, option -> + val selected = index == selectedIndex + val itemEnabled = enabled && index !in disabledIndices + DropdownMenuItem( + text = { + Text( + text = option, + style = MaterialTheme.typography.bodyLarge, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + }, + trailingIcon = { + RadiantRadio( + selected = selected, + onClick = null, + enabled = itemEnabled, + ) + }, + enabled = itemEnabled, + onClick = { + onSelect(index) + expanded = false + }, + modifier = Modifier + .padding(horizontal = 6.dp, vertical = 2.dp) + .clip(RoundedCornerShape(12.dp)) + .semantics { + this.selected = selected + role = Role.RadioButton + } + .then( + if (selected) Modifier.background(scheme.primary.copy(alpha = 0.1f)) + else Modifier + ), + ) + } + } + } + } + } + } +} + /** * Slider. (i prefer the old on tbh so i reverted it back <3) */ diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index 93a348c..1a53860 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -33,11 +33,13 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.meowarex.rlmobile.R +import com.meowarex.rlmobile.ui.components.radiant.RadiantDropdown import com.meowarex.rlmobile.ui.legacy.components.ResetToDefaultButton import com.meowarex.rlmobile.ui.screens.patchopts.OptionLock import com.meowarex.rlmobile.ui.screens.patchopts.OptionSpec import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptionState import com.meowarex.rlmobile.ui.screens.patchopts.hiddenForVariant +import com.meowarex.rlmobile.ui.screens.patchopts.isInline import com.meowarex.rlmobile.ui.screens.patchopts.optionLock import com.meowarex.rlmobile.ui.screens.patchopts.PatchSpec import kotlinx.coroutines.launch @@ -103,12 +105,12 @@ fun PatchAdvancedOptionsSheet( val parentKeys = patch.advancedOptions .filterIsInstance() - .filter { !it.inline } + .filter { !it.isInline } .map { it.key } .toSet() val sheetOptions = patch.advancedOptions.filter { option -> when { - option is OptionSpec.Toggle && option.inline -> false + option.isInline -> false option is OptionSpec.Toggle && option.requiresOption in parentKeys -> false // Options belonging to another variant are hidden, not greyed out. option.hiddenForVariant(selectedVariant) -> false @@ -121,7 +123,7 @@ fun PatchAdvancedOptionsSheet( is OptionSpec.Toggle -> { val toggleOn = state.toggle(patch, option) val gatedChoices = patch.advancedOptions.filterIsInstance() - .filter { it.requiresOption == option.key } + .filter { it.requiresOption == option.key && !it.isInline } val gatedToggles = patch.advancedOptions.filterIsInstance() .filter { it.requiresOption == option.key && !it.inline } val hasSubOptions = gatedChoices.isNotEmpty() || gatedToggles.isNotEmpty() @@ -164,6 +166,7 @@ fun PatchAdvancedOptionsSheet( key(choice.key) { ChoiceOptionRow( title = choice.title, + description = choice.description, entries = choice.entries, selectedIndex = state.choice(patch, choice), forceDropdown = choice.forceDropdown, @@ -208,6 +211,7 @@ fun PatchAdvancedOptionsSheet( if (option.requiresOption == null) { ChoiceOptionRow( title = option.title, + description = option.description, entries = option.entries, selectedIndex = state.choice(patch, option), forceDropdown = option.forceDropdown, @@ -387,11 +391,12 @@ private fun snapToNearestStep( } @Composable -private fun ChoiceOptionRow( +internal fun ChoiceOptionRow( entries: List, selectedIndex: Int, onSelect: (Int) -> Unit, title: String = "", + description: String = "", forceDropdown: Boolean = false, disabledIndices: Set = emptySet(), modifier: Modifier = Modifier, @@ -399,48 +404,28 @@ private fun ChoiceOptionRow( Column( modifier = modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(6.dp), - horizontalAlignment = Alignment.CenterHorizontally, + horizontalAlignment = Alignment.Start, ) { if (title.isNotEmpty()) { Text( text = title, - style = MaterialTheme.typography.labelMedium, + style = MaterialTheme.typography.titleSmall, + ) + } + if (description.isNotEmpty()) { + Text( + text = description, + style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, - textAlign = TextAlign.Center, ) } if (forceDropdown || entries.size > 3) { - var expanded by rememberSaveable { mutableStateOf(false) } - val selectedLabel = entries.getOrNull(selectedIndex).orEmpty() - - Box(modifier = Modifier.fillMaxWidth()) { - OutlinedButton( - onClick = { expanded = true }, - modifier = Modifier.fillMaxWidth(), - ) { - Text( - text = selectedLabel, - maxLines = 1, - overflow = TextOverflow.Ellipsis, - ) - } - DropdownMenu( - expanded = expanded, - onDismissRequest = { expanded = false }, - modifier = Modifier.fillMaxWidth(), - ) { - entries.forEachIndexed { index, entry -> - DropdownMenuItem( - text = { Text(entry) }, - enabled = index !in disabledIndices, - onClick = { - onSelect(index) - expanded = false - }, - ) - } - } - } + RadiantDropdown( + options = entries, + selectedIndex = selectedIndex, + onSelect = onSelect, + disabledIndices = disabledIndices, + ) return@Column } SingleChoiceSegmentedButtonRow(modifier = Modifier.fillMaxWidth()) { diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchSelectionAccordion.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchSelectionAccordion.kt index 0704461..4d4d296 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchSelectionAccordion.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/legacy/screens/patchopts/components/PatchSelectionAccordion.kt @@ -36,6 +36,8 @@ import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptions import com.meowarex.rlmobile.ui.screens.patchopts.PatchSpec import com.meowarex.rlmobile.ui.screens.patchopts.effectiveVariants import com.meowarex.rlmobile.ui.screens.patchopts.resolveVariantIndex +import com.meowarex.rlmobile.ui.screens.patchopts.conflictingChoices +import com.meowarex.rlmobile.ui.screens.patchopts.isInline private data class LockInfo(val patch: PatchSpec, val lock: PatchLock) @@ -131,11 +133,9 @@ fun PatchSelectionAccordion( val checked = isEnabled(patch) val lock = lockState(patch) - val inlineToggles = patch.advancedOptions - .filterIsInstance() - .filter { it.inline } - val hasSheetOptions = patch.advancedOptions.any { it !is OptionSpec.Toggle || !it.inline } - val hasSettings = patch.variants.isNotEmpty() || inlineToggles.isNotEmpty() || hasSheetOptions + val inlineOptions = patch.advancedOptions.filter { it.isInline } + val hasSheetOptions = patch.advancedOptions.any { !it.isInline } + val hasSettings = patch.variants.isNotEmpty() || inlineOptions.isNotEmpty() || hasSheetOptions // When a patch is enabled and has settings show a carded view of the settings val carded = checked && hasSettings @@ -191,16 +191,41 @@ fun PatchSelectionAccordion( ) } - for (option in inlineToggles) key(option.key) { - val show = option.requiresVariant == null || - option.requiresVariant == resolvedVariant - if (show) { - InlineToggleRow( - title = option.title, - description = option.description, - checked = optionState.toggle(patch, option), - onCheckedChange = { optionState.setToggle(patch, option, it) }, - ) + for (option in inlineOptions) key(option.key) { + when (option) { + is OptionSpec.Toggle -> { + val show = option.requiresVariant == null || + option.requiresVariant == resolvedVariant + if (show) { + InlineToggleRow( + title = option.title, + description = option.description, + checked = optionState.toggle(patch, option), + onCheckedChange = { optionState.setToggle(patch, option, it) }, + ) + } + } + is OptionSpec.Choice -> { + val requiredToggle = option.requiresOption?.let { key -> + patch.advancedOptions.filterIsInstance() + .firstOrNull { it.key == key } + } + if (requiredToggle == null || optionState.toggle(patch, requiredToggle)) { + ChoiceOptionRow( + title = option.title, + description = option.description, + entries = option.entries, + selectedIndex = optionState.choice(patch, option), + forceDropdown = option.forceDropdown, + disabledIndices = patch.conflictingChoices(option) + .map { optionState.choice(patch, it) } + .filter { it != 0 } + .toSet(), + onSelect = { optionState.setChoice(patch, option, it) }, + ) + } + } + else -> Unit } } 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 80a7e50..e94dd65 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 @@ -195,10 +195,9 @@ class PatchOptionsModel( } fun isAdvancedModified(spec: PatchSpec): Boolean = spec.advancedOptions.any { option -> + if (option.isInline) return@any false when (option) { - // 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.Toggle -> 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 @@ -206,12 +205,17 @@ class PatchOptionsModel( } fun resetAdvanced(spec: PatchSpec) { - val prefix = "${spec.id}/" - optionBools = optionBools.filterKeys { !it.startsWith(prefix) } - optionFloats = optionFloats.filterKeys { !it.startsWith(prefix) } + val advancedOptions = spec.advancedOptions.filter { !it.isInline } + val boolKeys = advancedOptions.filterIsInstance().map { keyOf(spec, it) }.toSet() + val floatKeys = advancedOptions.filterIsInstance().map { keyOf(spec, it) }.toSet() + val intKeys = advancedOptions.filter { it is OptionSpec.Choice || it is OptionSpec.Color } + .map { keyOf(spec, it) } + .toSet() + optionBools = optionBools.filterKeys { it !in boolKeys } + optionFloats = optionFloats.filterKeys { it !in floatKeys } optionInts = normalizeChoiceSelections( specs = listOf(spec), - values = optionInts.filterKeys { !it.startsWith(prefix) }, + values = optionInts.filterKeys { it !in intKeys }, ) } diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt index 879327e..120b382 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchSpec.kt @@ -126,6 +126,8 @@ sealed interface OptionSpec { val values: List = emptyList(), val requiresOption: String? = null, val forceDropdown: Boolean = false, + /** Render inline in the patch card instead of inside the advanced sheet */ + val inline: Boolean = false, val distinctFrom: String? = null, val token: String? = null, ) : OptionSpec @@ -143,6 +145,13 @@ sealed interface OptionSpec { ) : OptionSpec } +val OptionSpec.isInline: Boolean + get() = when (this) { + is OptionSpec.Toggle -> inline + is OptionSpec.Choice -> inline + is OptionSpec.Slider, is OptionSpec.Color -> false + } + @Serializable enum class EncodeKind { @SerialName("floatBits") diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt index cb5f7b0..328f85a 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchAdvancedOptionsSheet.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.unit.dp import com.meowarex.rlmobile.R import com.meowarex.rlmobile.ui.components.radiant.RadiantButton import com.meowarex.rlmobile.ui.components.radiant.RadiantDialog +import com.meowarex.rlmobile.ui.components.radiant.RadiantDropdown import com.meowarex.rlmobile.ui.components.radiant.RadiantButtonSize import com.meowarex.rlmobile.ui.components.radiant.RadiantButtonStyle import com.meowarex.rlmobile.ui.components.radiant.RadiantIconButton @@ -45,6 +46,7 @@ import com.meowarex.rlmobile.ui.screens.patchopts.OptionSpec import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptionState import com.meowarex.rlmobile.ui.screens.patchopts.conflictingChoices import com.meowarex.rlmobile.ui.screens.patchopts.hiddenForVariant +import com.meowarex.rlmobile.ui.screens.patchopts.isInline import com.meowarex.rlmobile.ui.screens.patchopts.optionLock import com.meowarex.rlmobile.ui.screens.patchopts.PatchSpec import kotlinx.coroutines.launch @@ -110,12 +112,12 @@ fun PatchAdvancedOptionsSheet( val parentKeys = patch.advancedOptions .filterIsInstance() - .filter { !it.inline } + .filter { !it.isInline } .map { it.key } .toSet() val sheetOptions = patch.advancedOptions.filter { option -> when { - option is OptionSpec.Toggle && option.inline -> false + option.isInline -> false option is OptionSpec.Toggle && option.requiresOption in parentKeys -> false // Options belonging to another variant are hidden, not greyed out. option.hiddenForVariant(selectedVariant) -> false @@ -128,7 +130,7 @@ fun PatchAdvancedOptionsSheet( is OptionSpec.Toggle -> { val toggleOn = state.toggle(patch, option) val gatedChoices = patch.advancedOptions.filterIsInstance() - .filter { it.requiresOption == option.key } + .filter { it.requiresOption == option.key && !it.isInline } val gatedToggles = patch.advancedOptions.filterIsInstance() .filter { it.requiresOption == option.key && !it.inline } val hasSubOptions = gatedChoices.isNotEmpty() || gatedToggles.isNotEmpty() @@ -171,6 +173,7 @@ fun PatchAdvancedOptionsSheet( key(choice.key) { ChoiceOptionRow( title = choice.title, + description = choice.description, entries = choice.entries, selectedIndex = state.choice(patch, choice), forceDropdown = choice.forceDropdown, @@ -215,6 +218,7 @@ fun PatchAdvancedOptionsSheet( if (option.requiresOption == null) { ChoiceOptionRow( title = option.title, + description = option.description, entries = option.entries, selectedIndex = state.choice(patch, option), forceDropdown = option.forceDropdown, @@ -388,11 +392,12 @@ private fun snapToNearestStep( } @Composable -private fun ChoiceOptionRow( +internal fun ChoiceOptionRow( entries: List, selectedIndex: Int, onSelect: (Int) -> Unit, title: String = "", + description: String = "", forceDropdown: Boolean = false, disabledIndices: Set = emptySet(), modifier: Modifier = Modifier, @@ -400,44 +405,28 @@ private fun ChoiceOptionRow( Column( modifier = modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(6.dp), - horizontalAlignment = Alignment.CenterHorizontally, + horizontalAlignment = Alignment.Start, ) { if (title.isNotEmpty()) { Text( text = title, - style = MaterialTheme.typography.labelMedium, + style = MaterialTheme.typography.titleSmall, + ) + } + if (description.isNotEmpty()) { + Text( + text = description, + style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, - textAlign = TextAlign.Center, ) } if (forceDropdown || entries.size > 3) { - var expanded by rememberSaveable { mutableStateOf(false) } - val selectedLabel = entries.getOrNull(selectedIndex).orEmpty() - - Box(modifier = Modifier.fillMaxWidth()) { - RadiantButton( - text = selectedLabel, - onClick = { expanded = true }, - style = RadiantButtonStyle.Ghost, - fillWidth = true, - ) - DropdownMenu( - expanded = expanded, - onDismissRequest = { expanded = false }, - modifier = Modifier.fillMaxWidth(), - ) { - entries.forEachIndexed { index, entry -> - DropdownMenuItem( - text = { Text(entry) }, - enabled = index !in disabledIndices, - onClick = { - onSelect(index) - expanded = false - }, - ) - } - } - } + RadiantDropdown( + options = entries, + selectedIndex = selectedIndex, + onSelect = onSelect, + disabledIndices = disabledIndices, + ) return@Column } RadiantSegmented( diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchSelectionAccordion.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchSelectionAccordion.kt index c745918..0bcde3a 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchSelectionAccordion.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/components/PatchSelectionAccordion.kt @@ -33,6 +33,8 @@ import com.meowarex.rlmobile.ui.components.radiant.RadiantDialog import com.meowarex.rlmobile.ui.theme.radiantSurface import com.meowarex.rlmobile.ui.theme.glassSurface import com.meowarex.rlmobile.ui.screens.patchopts.OptionSpec +import com.meowarex.rlmobile.ui.screens.patchopts.conflictingChoices +import com.meowarex.rlmobile.ui.screens.patchopts.isInline import com.meowarex.rlmobile.ui.screens.patchopts.PatchLock import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptionState import com.meowarex.rlmobile.ui.screens.patchopts.PatchOptions @@ -134,11 +136,9 @@ fun PatchSelectionAccordion( val checked = isEnabled(patch) val lock = lockState(patch) - val inlineToggles = patch.advancedOptions - .filterIsInstance() - .filter { it.inline } - val hasSheetOptions = patch.advancedOptions.any { it !is OptionSpec.Toggle || !it.inline } - val hasSettings = patch.variants.isNotEmpty() || inlineToggles.isNotEmpty() || hasSheetOptions + val inlineOptions = patch.advancedOptions.filter { it.isInline } + val hasSheetOptions = patch.advancedOptions.any { !it.isInline } + val hasSettings = patch.variants.isNotEmpty() || inlineOptions.isNotEmpty() || hasSheetOptions // When a patch is enabled and has settings show a carded view of the settings val carded = checked && hasSettings @@ -189,16 +189,41 @@ fun PatchSelectionAccordion( ) } - for (option in inlineToggles) key(option.key) { - val show = option.requiresVariant == null || - option.requiresVariant == resolvedVariant - if (show) { - InlineToggleRow( - title = option.title, - description = option.description, - checked = optionState.toggle(patch, option), - onCheckedChange = { optionState.setToggle(patch, option, it) }, - ) + for (option in inlineOptions) key(option.key) { + when (option) { + is OptionSpec.Toggle -> { + val show = option.requiresVariant == null || + option.requiresVariant == resolvedVariant + if (show) { + InlineToggleRow( + title = option.title, + description = option.description, + checked = optionState.toggle(patch, option), + onCheckedChange = { optionState.setToggle(patch, option, it) }, + ) + } + } + is OptionSpec.Choice -> { + val requiredToggle = option.requiresOption?.let { key -> + patch.advancedOptions.filterIsInstance() + .firstOrNull { it.key == key } + } + if (requiredToggle == null || optionState.toggle(patch, requiredToggle)) { + ChoiceOptionRow( + title = option.title, + description = option.description, + entries = option.entries, + selectedIndex = optionState.choice(patch, option), + forceDropdown = option.forceDropdown, + disabledIndices = patch.conflictingChoices(option) + .map { optionState.choice(patch, it) } + .filter { it != 0 } + .toSet(), + onSelect = { optionState.setChoice(patch, option, it) }, + ) + } + } + else -> Unit } } diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/SwipeToQueue.smali index ec60872..1cf175b 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/SwipeToQueue.smali @@ -12,6 +12,10 @@ .field private final addIcon:Landroid/graphics/drawable/Drawable; +.field private final addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; + +.field private final addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + .field private final playNextBackground:Landroid/graphics/drawable/ColorDrawable; .field private final playNextIcon:Landroid/graphics/drawable/Drawable; @@ -81,6 +85,14 @@ iput-object v1, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; + new-instance v1, Landroid/graphics/drawable/ColorDrawable; + + const v2, __RL_SWIPE_TO_QUEUE_ADD_TO_PLAYLIST_COLOR__ + + invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V + + iput-object v1, p0, Lradiant/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; @@ -123,6 +135,29 @@ :store_play_next_icon iput-object v0, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; + invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; + + move-result-object v0 + + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_playlist:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + if-eqz v0, :store_add_to_playlist_icon + + invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v0 + + const/4 v1, -0x1 + + invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_add_to_playlist_icon + iput-object v0, p0, Lradiant/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + return-void .end method @@ -343,6 +378,15 @@ goto :background_ready :add_background + const/4 v9, 0x3 + + if-ne v8, v9, :add_to_queue_background + + iget-object v6, p0, Lradiant/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; + + goto :background_ready + + :add_to_queue_background iget-object v6, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; :background_ready @@ -474,6 +518,15 @@ goto :icon_ready :draw_add_icon + const/4 v9, 0x3 + + if-ne v8, v9, :draw_add_to_queue_icon + + iget-object v6, p0, Lradiant/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + + goto :icon_ready + + :draw_add_to_queue_icon iget-object v6, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; :icon_ready diff --git a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali index d575081..9988ddd 100644 --- a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali +++ b/patches/extension/radiant/swipe/AlbumItemQueueAction.smali @@ -50,6 +50,10 @@ iget-object v2, p0, Lradiant/swipe/AlbumItemQueueAction;->moduleId:Ljava/lang/String; + const/4 v3, 0x3 + + if-eq p1, v3, :active_queue + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v3 @@ -168,12 +172,21 @@ const/4 v8, 0x1 - if-ne p1, v8, :append_track + if-ne p1, v8, :check_add_to_playlist invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_to_playlist + const/4 v8, 0x3 + + if-ne p1, v8, :append_track + + invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append_track invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali index 380603a..8022129 100644 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali @@ -158,12 +158,21 @@ const/4 v2, 0x1 - if-ne v0, v2, :append + if-ne v0, v2, :check_add_to_playlist invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_to_playlist + const/4 v2, 0x3 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali index 655da85..b7b236d 100644 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali +++ b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali @@ -44,6 +44,10 @@ iget-wide v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J + const/4 v0, 0x3 + + if-eq p1, v0, :active_queue + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v0 diff --git a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali index c5ce95e..93e54c0 100644 --- a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali +++ b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali @@ -173,6 +173,10 @@ if-eqz v5, :done + const/4 v1, 0x3 + + if-eq p1, v1, :queue_event + const/4 v1, 0x4 if-ne v5, v1, :queue_event diff --git a/patches/extension/radiant/swipe/ComposeSearchQueue.smali b/patches/extension/radiant/swipe/ComposeSearchQueue.smali index ee0c6c1..0f6e46d 100644 --- a/patches/extension/radiant/swipe/ComposeSearchQueue.smali +++ b/patches/extension/radiant/swipe/ComposeSearchQueue.smali @@ -17,7 +17,7 @@ if-lt v0, v1, :done - const/4 v1, 0x2 + const/4 v1, 0x3 if-gt v0, v1, :done @@ -168,12 +168,19 @@ check-cast v3, Lh40/p; + iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x3 + + if-eq v0, v1, :queue_track + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v0 if-eqz v0, :play_track + :queue_track invoke-static {v3}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; move-result-object v9 @@ -212,12 +219,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_track + if-ne v0, v1, :check_add_track_to_playlist invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append_track invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z @@ -262,12 +278,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_album + if-ne v0, v1, :check_add_album_to_playlist invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_album invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; @@ -288,12 +313,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_playlist + if-ne v0, v1, :check_add_playlist_to_playlist invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + :append_playlist invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V @@ -310,12 +344,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_mix + if-ne v0, v1, :check_add_mix_to_playlist invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_mix invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali index 3398b27..f0a4975 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali @@ -119,6 +119,15 @@ goto :color_ready :add_color + const/4 v12, 0x3 + + if-ne v11, v12, :add_to_queue_color + + const v11, __RL_SWIPE_TO_QUEUE_ADD_TO_PLAYLIST_COLOR__ + + goto :color_ready + + :add_to_queue_color const v11, __RL_SWIPE_TO_QUEUE_ADD_COLOR__ :color_ready @@ -138,6 +147,15 @@ goto :icon_ready :add_icon + const/4 v12, 0x3 + + if-ne v11, v12, :add_to_queue_icon + + iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + + goto :icon_ready + + :add_to_queue_icon iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; :icon_ready diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/swipe/ComposeSwipeState.smali index 19adcd5..1f10a10 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState.smali +++ b/patches/extension/radiant/swipe/ComposeSwipeState.smali @@ -33,6 +33,8 @@ .field addIcon:Landroid/graphics/drawable/Drawable; +.field addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + .field playNextIcon:Landroid/graphics/drawable/Drawable; @@ -659,6 +661,25 @@ :store_play_next_icon iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; + sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_playlist:I + + invoke-virtual {v0, v1}, Landroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + if-eqz v1, :store_add_to_playlist_icon + + invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; + + move-result-object v1 + + const/4 v2, -0x1 + + invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V + + :store_add_to_playlist_icon + iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + :context_ready if-eqz p1, :enabled_ready diff --git a/patches/extension/radiant/swipe/DynamicMediaQueue.smali b/patches/extension/radiant/swipe/DynamicMediaQueue.smali index d363405..72098ab 100644 --- a/patches/extension/radiant/swipe/DynamicMediaQueue.smali +++ b/patches/extension/radiant/swipe/DynamicMediaQueue.smali @@ -17,7 +17,7 @@ if-lt v4, v5, :done - const/4 v5, 0x2 + const/4 v5, 0x3 if-gt v4, v5, :done @@ -186,12 +186,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_album + if-ne v0, v1, :check_add_album_to_playlist invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_album invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; @@ -218,12 +227,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_mix + if-ne v0, v1, :check_add_mix_to_playlist invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_mix invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; @@ -244,12 +262,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_playlist + if-ne v0, v1, :check_add_playlist_to_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + :append_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V @@ -283,12 +310,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_track + if-ne v0, v1, :check_add_track_to_playlist invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append_track invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z @@ -309,7 +345,7 @@ if-lt v0, v1, :done - const/4 v1, 0x2 + const/4 v1, 0x3 if-gt v0, v1, :done @@ -430,12 +466,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_playlist + if-ne v0, v1, :check_add_playlist_to_playlist invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + :append_playlist invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V @@ -456,7 +501,7 @@ if-lt v4, v5, :done - const/4 v5, 0x2 + const/4 v5, 0x3 if-gt v4, v5, :done @@ -625,12 +670,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_album + if-ne v0, v1, :check_add_album_to_playlist invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_album invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; @@ -657,12 +711,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_mix + if-ne v0, v1, :check_add_mix_to_playlist invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; goto :done + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :append_mix invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; @@ -683,12 +746,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_playlist + if-ne v0, v1, :check_add_playlist_to_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + :append_playlist invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V @@ -722,12 +794,21 @@ const/4 v1, 0x1 - if-ne v0, v1, :append_track + if-ne v0, v1, :check_add_track_to_playlist invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append_track invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/DynamicTrackQueue.smali b/patches/extension/radiant/swipe/DynamicTrackQueue.smali index 5dc629d..b6fd5a9 100644 --- a/patches/extension/radiant/swipe/DynamicTrackQueue.smali +++ b/patches/extension/radiant/swipe/DynamicTrackQueue.smali @@ -166,12 +166,21 @@ const/4 v2, 0x1 - if-ne v0, v2, :append + if-ne v0, v2, :check_add_to_playlist invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_to_playlist + const/4 v2, 0x3 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali index d4a8b8b..a13a6ed 100644 --- a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali +++ b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali @@ -44,6 +44,10 @@ iget-wide v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J + const/4 v0, 0x3 + + if-eq p1, v0, :active_queue + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v0 diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/swipe/DynamicTrackResolver.smali index c6f1cdc..512c0b2 100644 --- a/patches/extension/radiant/swipe/DynamicTrackResolver.smali +++ b/patches/extension/radiant/swipe/DynamicTrackResolver.smali @@ -525,6 +525,10 @@ if-eqz v1, :done + const/4 v2, 0x3 + + if-eq v8, v2, :append + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v2 @@ -626,12 +630,21 @@ const/4 v0, 0x1 - if-ne v8, v0, :append_track + if-ne v8, v0, :check_add_to_playlist invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_to_playlist + const/4 v0, 0x3 + + if-ne v8, v0, :append_track + + invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append_track invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/FeedResolver.smali b/patches/extension/radiant/swipe/FeedResolver.smali index 70def93..54d7b36 100644 --- a/patches/extension/radiant/swipe/FeedResolver.smali +++ b/patches/extension/radiant/swipe/FeedResolver.smali @@ -410,6 +410,10 @@ check-cast v7, Lcom/aspiro/wamp/model/Playlist; + const/4 v0, 0x3 + + if-eq p0, v0, :add_to_playlist_playlist + const/4 v0, 0x1 if-ne p0, v0, :append_playlist @@ -423,6 +427,11 @@ goto :done + :add_to_playlist_playlist + invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + :collection iget-object v6, v2, La80/c;->b:Lx40/a; @@ -438,6 +447,10 @@ check-cast v7, Lcom/aspiro/wamp/model/Album; + const/4 v0, 0x3 + + if-eq p0, v0, :add_to_playlist_album + const/4 v0, 0x1 if-ne p0, v0, :append_album @@ -455,9 +468,18 @@ goto :retain + :add_to_playlist_album + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :queue_mix check-cast v7, Lcom/aspiro/wamp/mix/model/Mix; + const/4 v0, 0x3 + + if-eq p0, v0, :add_to_playlist_mix + const/4 v0, 0x1 if-ne p0, v0, :append_mix @@ -473,6 +495,13 @@ move-result-object v7 + goto :retain + + :add_to_playlist_mix + invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :retain if-eqz v7, :done diff --git a/patches/extension/radiant/swipe/MyAlbumsResolver.smali b/patches/extension/radiant/swipe/MyAlbumsResolver.smali index 2f0f60c..70292bf 100644 --- a/patches/extension/radiant/swipe/MyAlbumsResolver.smali +++ b/patches/extension/radiant/swipe/MyAlbumsResolver.smali @@ -162,6 +162,10 @@ iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + const/4 v1, 0x3 + + if-eq v6, v1, :add_to_playlist + const/4 v1, 0x1 if-ne v6, v1, :append @@ -177,6 +181,13 @@ move-result-object p1 + goto :retain + + :add_to_playlist + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :retain if-eqz p1, :done diff --git a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali index d2c651e..58751f3 100644 --- a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali +++ b/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali @@ -198,6 +198,10 @@ iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; + const/4 v1, 0x3 + + if-eq v7, v1, :add_to_playlist + const/4 v1, 0x1 if-ne v7, v1, :append @@ -213,6 +217,13 @@ move-result-object p1 + goto :retain + + :add_to_playlist + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :retain if-eqz p1, :done diff --git a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali index 26733d7..ce6b0a6 100644 --- a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali +++ b/patches/extension/radiant/swipe/MyPlaylistsResolver.smali @@ -189,6 +189,10 @@ iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; + const/4 v0, 0x3 + + if-eq v5, v0, :add_to_playlist + const/4 v0, 0x1 if-ne v5, v0, :append @@ -200,6 +204,11 @@ :append invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + goto :done + + :add_to_playlist + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + :done return-void .end method diff --git a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali index cbfe02e..9e52236 100644 --- a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali +++ b/patches/extension/radiant/swipe/PlaylistItemsResolver.smali @@ -260,10 +260,15 @@ check-cast v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; if-eqz v2, :done + const/4 v3, 0x3 + + if-eq v8, v3, :build_source + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v3 if-eqz v3, :play + :build_source instance-of v3, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; if-eqz v3, :append_member @@ -303,6 +308,10 @@ :append invoke-virtual {v2}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object v3 + const/4 v0, 0x3 + + if-eq v8, v0, :add_to_playlist + const/4 v0, 0x1 if-ne v8, v0, :append_track @@ -315,6 +324,10 @@ invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :add_to_playlist + invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + goto :done + :play iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; if-eqz v3, :done diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/swipe/QueueExecutor.smali index 5d74e8b..d5ce7f9 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/swipe/QueueExecutor.smali @@ -39,6 +39,132 @@ return-object p0 .end method +.method public static addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + .locals 2 + + if-eqz p1, :done + + if-eqz p2, :done + + if-eqz p4, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + iget-object v0, p4, Lh4/a;->b:Lo3/a$a; + + if-eqz v0, :done + + invoke-interface {v0, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + + move-result-object v0 + + if-eqz v0, :done + + iget-object v0, v0, Lo3/a;->l:Lcom/aspiro/wamp/module/album/AlbumProvider; + + if-eqz v0, :done + + new-instance v1, Lc3/h; + + invoke-direct {v1, p1, v0, p2, p3}, Lc3/h;->(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/module/album/AlbumProvider;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + invoke-virtual {v1, p0}, Lc3/h;->b(Landroidx/fragment/app/FragmentActivity;)V + + :done + return-void +.end method + +.method public static addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + .locals 1 + + if-eqz p1, :done + + if-eqz p2, :done + + if-eqz p4, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + iget-object v0, p4, Lh4/a;->h:Lu3/a$a; + + if-eqz v0, :done + + invoke-interface {v0, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + + move-result-object v0 + + if-eqz v0, :done + + iget-object v0, v0, Lu3/a;->j:Lj3/k$a; + + if-eqz v0, :done + + invoke-interface {v0, p1, p2, p3}, Lj3/k$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k; + + move-result-object v0 + + if-eqz v0, :done + + invoke-virtual {v0, p0}, Lj3/k;->b(Landroidx/fragment/app/FragmentActivity;)V + + :done + return-void +.end method + +.method public static addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + .locals 1 + + if-eqz p1, :done + + if-eqz p2, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + new-instance v0, Lcom/aspiro/wamp/contextmenu/item/playlist/f; + + invoke-direct {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + invoke-virtual {v0, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->b(Landroidx/fragment/app/FragmentActivity;)V + + :done + return-void +.end method + +.method public static addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + .locals 1 + + if-eqz p1, :done + + if-eqz p2, :done + + invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + + move-result-object p0 + + if-eqz p0, :done + + new-instance v0, Lm3/d; + + invoke-direct {v0, p1, p2, p3}, Lm3/d;->(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + invoke-virtual {v0, p0}, Lm3/d;->b(Landroidx/fragment/app/FragmentActivity;)V + + :done + return-void +.end method + .method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; .locals 8 diff --git a/patches/extension/radiant/swipe/QueueRequest.smali b/patches/extension/radiant/swipe/QueueRequest.smali index 4b9d9a6..dfeb02a 100644 --- a/patches/extension/radiant/swipe/QueueRequest.smali +++ b/patches/extension/radiant/swipe/QueueRequest.smali @@ -9,6 +9,8 @@ .field public static final ACTION_ADD_TO_QUEUE:I = 0x2 +.field public static final ACTION_ADD_TO_PLAYLIST:I = 0x3 + # instance fields .field public action:I diff --git a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali index 75766cb..eba723b 100644 --- a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali +++ b/patches/extension/radiant/swipe/SearchAlbumsResolver.smali @@ -162,6 +162,10 @@ iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + const/4 v1, 0x3 + + if-eq v6, v1, :add_to_playlist + const/4 v1, 0x1 if-ne v6, v1, :append @@ -177,6 +181,13 @@ move-result-object p1 + goto :retain + + :add_to_playlist + invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + + goto :done + :retain if-eqz p1, :done diff --git a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali index f5e496e..1099ed2 100644 --- a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali +++ b/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali @@ -193,6 +193,10 @@ iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + const/4 v0, 0x3 + + if-eq v6, v0, :add_to_playlist + const/4 v0, 0x1 if-ne v6, v0, :append @@ -204,6 +208,11 @@ :append invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + goto :done + + :add_to_playlist + invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + :done return-void .end method diff --git a/patches/extension/radiant/swipe/SuggestionsResolver.smali b/patches/extension/radiant/swipe/SuggestionsResolver.smali index 599c249..e10af9b 100644 --- a/patches/extension/radiant/swipe/SuggestionsResolver.smali +++ b/patches/extension/radiant/swipe/SuggestionsResolver.smali @@ -319,6 +319,10 @@ iget v2, p1, Lradiant/swipe/QueueRequest;->action:I + const/4 v3, 0x3 + + if-eq v2, v3, :track_action + const/4 v3, 0x1 if-ne v2, v3, :default_action @@ -329,6 +333,7 @@ if-eqz v2, :default_action + :track_action invoke-virtual {v0}, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack;->getMediaItem()Lcom/aspiro/wamp/model/Track; move-result-object v2 @@ -375,10 +380,21 @@ move-result-object v0 + iget p1, p1, Lradiant/swipe/QueueRequest;->action:I + + const/4 v3, 0x3 + + if-eq p1, v3, :add_to_playlist + invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :add_to_playlist + invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :default_action iget p1, p1, Lradiant/swipe/QueueRequest;->position:I diff --git a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali index 8fbaa22..c9fcebe 100644 --- a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali +++ b/patches/extension/radiant/swipe/UnifiedSearchResolver.smali @@ -237,6 +237,8 @@ move-object v5, v0 check-cast v5, Lbm/k; iget-object v6, v5, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + const/4 v7, 0x3 + if-eq v8, v7, :append_track invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v7 if-nez v7, :append_track @@ -273,6 +275,10 @@ invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v0 + const/4 v2, 0x3 + + if-eq v8, v2, :add_to_playlist_track + const/4 v2, 0x1 if-ne v8, v2, :queue_append_track @@ -285,6 +291,10 @@ invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :add_to_playlist_track + invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + goto :done + :album instance-of v5, v0, Lbm/a; if-eqz v5, :playlist @@ -296,6 +306,10 @@ iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 + const/4 v0, 0x3 + + if-eq v8, v0, :add_to_playlist_album + const/4 v0, 0x1 if-ne v8, v0, :append_album @@ -312,6 +326,10 @@ invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z goto :done + :add_to_playlist_album + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + goto :done + :playlist instance-of v5, v0, Lbm/g; if-eqz v5, :mix @@ -319,6 +337,10 @@ iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v6 + const/4 v0, 0x3 + + if-eq v8, v0, :add_to_playlist_playlist + const/4 v0, 0x1 if-ne v8, v0, :append_playlist @@ -331,6 +353,10 @@ invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done + :add_to_playlist_playlist + invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + goto :done + :mix instance-of v5, v0, Lbm/f; if-eqz v5, :done @@ -342,6 +368,10 @@ iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 + const/4 v0, 0x3 + + if-eq v8, v0, :add_to_playlist_mix + const/4 v0, 0x1 if-ne v8, v0, :append_mix @@ -357,6 +387,11 @@ iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z + goto :done + + :add_to_playlist_mix + invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + :done return-void .end method diff --git a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali index bd8cd53..9229b4f 100644 --- a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali +++ b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali @@ -213,6 +213,10 @@ if-eqz v5, :done + const/4 v1, 0x3 + + if-eq p1, v1, :queue_event + const/4 v1, 0x4 if-ne v5, v1, :queue_event diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali index c38d57f..07e4ef1 100644 --- a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali +++ b/patches/extension/radiant/swipe/ViewAllTrackQueue.smali @@ -103,12 +103,21 @@ const/4 v0, 0x1 - if-ne p4, v0, :append + if-ne p4, v0, :check_add_to_playlist invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done + :check_add_to_playlist + const/4 v0, 0x3 + + if-ne p4, v0, :append + + invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + :append invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali index 9dfa506..82e6a74 100644 --- a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali +++ b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali @@ -40,12 +40,17 @@ iget-wide v1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->trackId:J + const/4 v3, 0x3 + + if-eq p1, v3, :queue_event + invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z move-result v3 if-eqz v3, :play_existing + :queue_event iget-object v3, p0, Lradiant/swipe/ViewAllTrackQueueAction;->context:Landroid/content/Context; if-eqz v3, :done diff --git a/patches/manifest.json b/patches/manifest.json index d9ebef9..8a8f2e4 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -471,25 +471,27 @@ "radiant/swipe/SuggestionsResolver.smali" ], "title": "Swipe to Queue", - "description": "Swipe on tracks/albums/playlists to add them to the play queue", + "description": "Swipe on tracks/albums/playlists to add them to the play queue (and more actions)", "default": false, "advancedOptions": [ { "type": "choice", "key": "left_action", "title": "Left Swipe Action", - "description": "Choose the action for a left swipe", "entries": [ "Disabled", "Play next", - "Add to queue" + "Add to queue", + "Add to playlist" ], "values": [ "0x0", "0x1", - "0x2" + "0x2", + "0x3" ], "defaultIndex": 2, + "inline": true, "distinctFrom": "right_action", "token": "RL_SWIPE_TO_QUEUE_LEFT_ACTION" }, @@ -497,18 +499,20 @@ "type": "choice", "key": "right_action", "title": "Right Swipe Action", - "description": "Choose the action for a right swipe", "entries": [ "Disabled", "Play next", - "Add to queue" + "Add to queue", + "Add to playlist" ], "values": [ "0x0", "0x1", - "0x2" + "0x2", + "0x3" ], "defaultIndex": 0, + "inline": true, "distinctFrom": "left_action", "token": "RL_SWIPE_TO_QUEUE_RIGHT_ACTION" }, @@ -516,11 +520,10 @@ "type": "choice", "key": "remove_direction", "title": "Remove Track from Queue", - "description": "Choose the swipe direction used to remove items from the play queue", "entries": [ "Left swipe", "Right swipe", - "Both" + "Both directions" ], "values": [ "0x4", @@ -528,6 +531,8 @@ "0xc" ], "defaultIndex": 0, + "forceDropdown": true, + "inline": true, "token": "RL_SWIPE_TO_QUEUE_REMOVE_DIRECTION" }, { @@ -543,6 +548,13 @@ "title": "Play Next Color", "default": -14408663, "token": "RL_SWIPE_TO_QUEUE_PLAY_NEXT_COLOR" + }, + { + "type": "color", + "key": "add_to_playlist_color", + "title": "Add to Playlist Color", + "default": -14408663, + "token": "RL_SWIPE_TO_QUEUE_ADD_TO_PLAYLIST_COLOR" } ] }, diff --git a/patches/swipe-to-queue.patch b/patches/swipe-to-queue.patch index 3eedd77..38aef33 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/swipe-to-queue.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali +++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali -@@ -107,6 +107,143 @@ +@@ -107,6 +107,154 @@ .end method @@ -102,6 +102,10 @@ + + move-object v2, p2 + ++ const/4 p1, 0x3 ++ ++ if-eq p3, p1, :rl_favorite_add_to_playlist ++ + const/4 p1, 0x1 + + if-ne p3, p1, :rl_favorite_append @@ -123,6 +127,13 @@ + + move-result v0 + ++ goto :rl_favorite_result ++ ++ :rl_favorite_add_to_playlist ++ invoke-static {v1, v2, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V ++ ++ goto :done ++ + :rl_favorite_result + + if-nez v0, :done @@ -144,7 +155,7 @@ # virtual methods .method public final M()Ln8/b; .locals 1 -@@ -2265,9 +2437,16 @@ +@@ -2265,9 +2448,16 @@ iput-object p0, p1, Lo4/g;->e:Lo4/g$e; .line 224 From aaf2d9e99df869bcb55760c8515973d0a35d4262 Mon Sep 17 00:00:00 2001 From: meowarex Date: Fri, 4 Sep 2026 09:24:52 +0000 Subject: [PATCH 19/19] New Patch: Swipe to Queue --- .version | 2 +- Manager/app/build.gradle.kts | 2 +- .../app/src/main/assets/patches-manifest.json | 104 +- .../ui/screens/patchopts/PatchOptionsModel.kt | 10 +- patches/R8-SYMBOLS.md | 973 ++++++++++++++++++ patches/data.json | 2 +- .../android/feature/appscaffold/ui/r$c.smali | 16 +- patches/extension/radiant/Kawarp.smali | 78 +- .../radiant/MiniPlayerBackground.smali | 4 +- .../radiant/MiniSeekerFloating.smali | 4 +- .../extension/radiant/MiniSeekerLine.smali | 28 +- patches/extension/radiant/NoOp.smali | 4 +- patches/extension/radiant/QualityBadge.smali | 12 +- .../extension/radiant/RLAPILyricsHook.smali | 4 +- .../extension/radiant/RLAPILyricsWorker.smali | 24 +- .../extension/radiant/SeekerConsumer.smali | 6 +- patches/extension/radiant/SparkleButton.smali | 14 +- .../extension/radiant/SparkleContent.smali | 2 +- patches/extension/radiant/SpvFactory.smali | 2 +- patches/extension/radiant/SylLayout.smali | 6 +- .../gestures/MiniPlayerGestures$Gesture.smali | 521 ---------- .../MiniPlayerGestures$RootGesture.smali | 178 ---- .../MiniPlayerTrackGestures$OffsetLayer.smali | 70 -- .../{ => lyrics}/LyricsDrag$Guard.smali | 12 +- .../gestures/{ => lyrics}/LyricsDrag.smali | 4 +- .../MiniPlayerGestures$ApplyPending.smali | 18 +- .../MiniPlayerGestures$FeedbackLayer.smali | 22 +- ...PlayerGestures$FeedbackResetAnimator.smali | 8 +- .../MiniPlayerGestures$Gesture.smali | 521 ++++++++++ .../MiniPlayerGestures$RootGesture.smali | 178 ++++ .../{ => miniplayer}/MiniPlayerGestures.smali | 386 +++---- .../MiniPlayerTrackGestures$Gesture.smali | 46 +- .../MiniPlayerTrackGestures$OffsetLayer.smali | 70 ++ ...iniPlayerTrackGestures$ResetAnimator.smali | 8 +- .../MiniPlayerTrackGestures$TextDraw.smali | 22 +- .../MiniPlayerTrackGestures.smali | 144 +-- .../queue}/AlbumItemQueueAction.smali | 58 +- .../queue/ArtistTrackCreditsQueue.smali | 181 ++++ .../queue/ArtistTrackCreditsQueueAction.smali | 113 ++ .../queue/ArtistTrackCreditsQueueEvent.smali | 38 + .../queue/CompactGridMediaQueueAction.smali | 281 +++++ .../gestures/queue/ComposeSearchQueue.smali | 367 +++++++ .../queue/ComposeSearchQueueAction.smali | 232 +++++ .../queue}/ComposeSearchQueueEvent.smali | 12 +- .../queue}/ComposeSwipeAction.smali | 4 +- .../queue}/ComposeSwipeState$Draw.smali | 36 +- .../queue}/ComposeSwipeState$Gesture.smali | 58 +- .../ComposeSwipeState$ResetAnimator.smali | 16 +- .../queue}/ComposeSwipeState.smali | 186 ++-- .../gestures/queue/ComposeTapGuard.smali | 97 ++ .../gestures/queue/DynamicMediaQueue.smali | 844 +++++++++++++++ .../queue/DynamicMediaQueueEvent.smali | 43 + .../gestures/queue/DynamicTrackQueue.smali | 189 ++++ .../queue/DynamicTrackQueueAction.smali | 113 ++ .../queue/DynamicTrackQueueEvent.smali | 38 + .../queue}/DynamicTrackResolver.smali | 236 ++--- .../queue}/FavoriteTracksResolver.smali | 40 +- .../queue}/FeedResolver.smali | 174 ++-- .../queue}/MyAlbumsResolver.smali | 82 +- .../queue}/MyMixesAndRadioResolver.smali | 86 +- .../queue}/MyPlaylistsResolver.smali | 82 +- .../queue}/PlaylistItemsResolver.smali | 116 +-- .../queue/PublicPlaylistQueueAction.smali | 125 +++ .../queue}/QueueExecutor.smali | 230 ++--- .../queue}/QueueRequest.smali | 8 +- .../queue}/QueueRowResolver.smali | 6 +- .../queue}/QueueSwipeRemove.smali | 10 +- .../queue}/SearchAlbumsResolver.smali | 82 +- .../queue}/SearchPlaylistsResolver.smali | 80 +- .../queue}/SuggestionsResolver.smali | 130 +-- .../{ => gestures/queue}/SwipeToQueue.smali | 86 +- .../queue}/UnifiedSearchResolver.smali | 254 ++--- .../queue/VerticalMediaQueueAction.smali | 328 ++++++ .../queue}/ViewAllTrackQueue.smali | 54 +- .../queue/ViewAllTrackQueueAction.smali | 106 ++ .../swipe/ArtistTrackCreditsQueue.smali | 181 ---- .../swipe/ArtistTrackCreditsQueueAction.smali | 113 -- .../swipe/ArtistTrackCreditsQueueEvent.smali | 38 - .../swipe/CompactGridMediaQueueAction.smali | 281 ----- .../radiant/swipe/ComposeSearchQueue.smali | 367 ------- .../swipe/ComposeSearchQueueAction.smali | 232 ----- .../radiant/swipe/ComposeTapGuard.smali | 97 -- .../radiant/swipe/DynamicMediaQueue.smali | 844 --------------- .../swipe/DynamicMediaQueueEvent.smali | 43 - .../radiant/swipe/DynamicTrackQueue.smali | 189 ---- .../swipe/DynamicTrackQueueAction.smali | 113 -- .../swipe/DynamicTrackQueueEvent.smali | 38 - .../swipe/PublicPlaylistQueueAction.smali | 125 --- .../swipe/VerticalMediaQueueAction.smali | 328 ------ .../swipe/ViewAllTrackQueueAction.smali | 106 -- .../lyrics-gesture-scroll-guard.patch | 2 +- .../mini-player-left-right-gesture.patch | 10 +- .../mini-player-up-gesture.patch | 10 +- .../{ => player}/player-swipe-gesture.patch | 4 +- .../queue}/swipe-to-queue-compose.patch | 140 +-- .../{ => gestures/queue}/swipe-to-queue.patch | 40 +- patches/manifest.json | 104 +- tools/kawarp-build/src/radiant/Kawarp.java | 32 +- tools/kawarp-build/stubs/am0/a.java | 1 + tools/kawarp-build/stubs/am0/l.java | 1 + .../compose/ui/draw/DrawModifierKt.java | 2 +- tools/kawarp-build/stubs/b0/c.java | 1 + tools/kawarp-build/stubs/ce0/b.java | 3 +- tools/kawarp-build/stubs/coil/f.java | 1 + tools/kawarp-build/stubs/coil/request/b.java | 5 +- tools/kawarp-build/stubs/coil/request/d.java | 1 + tools/kawarp-build/stubs/coil/request/h.java | 3 +- .../playerscreen/ui/composables/p3.java | 3 +- .../image/coil/base/CoilImageLoader.java | 4 +- .../stubs/com/tidal/android/image/coil/c.java | 3 +- .../stubs/com/tidal/android/image/core/b.java | 1 + tools/kawarp-build/stubs/d0/c.java | 1 + tools/kawarp-build/stubs/kotlin/u.java | 1 + tools/kawarp-build/stubs/xd0/e.java | 1 + tools/kawarp-build/stubs/xd0/f.java | 1 + tools/kawarp-build/stubs/xd0/g.java | 5 +- 116 files changed, 6598 insertions(+), 5603 deletions(-) create mode 100644 patches/R8-SYMBOLS.md delete mode 100644 patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali delete mode 100644 patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali delete mode 100644 patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali rename patches/extension/radiant/gestures/{ => lyrics}/LyricsDrag$Guard.smali (63%) rename patches/extension/radiant/gestures/{ => lyrics}/LyricsDrag.smali (80%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerGestures$ApplyPending.smali (50%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerGestures$FeedbackLayer.smali (50%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerGestures$FeedbackResetAnimator.smali (73%) create mode 100644 patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali create mode 100644 patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerGestures.smali (59%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerTrackGestures$Gesture.smali (54%) create mode 100644 patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerTrackGestures$ResetAnimator.smali (73%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerTrackGestures$TextDraw.smali (76%) rename patches/extension/radiant/gestures/{ => miniplayer}/MiniPlayerTrackGestures.smali (56%) rename patches/extension/radiant/{swipe => gestures/queue}/AlbumItemQueueAction.smali (60%) create mode 100644 patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali create mode 100644 patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali create mode 100644 patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali create mode 100644 patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali create mode 100644 patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali create mode 100644 patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSearchQueueEvent.smali (55%) rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSwipeAction.smali (71%) rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSwipeState$Draw.smali (75%) rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSwipeState$Gesture.smali (54%) rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSwipeState$ResetAnimator.smali (58%) rename patches/extension/radiant/{swipe => gestures/queue}/ComposeSwipeState.smali (54%) create mode 100644 patches/extension/radiant/gestures/queue/ComposeTapGuard.smali create mode 100644 patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali create mode 100644 patches/extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali create mode 100644 patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali create mode 100644 patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali create mode 100644 patches/extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali rename patches/extension/radiant/{swipe => gestures/queue}/DynamicTrackResolver.smali (54%) rename patches/extension/radiant/{swipe => gestures/queue}/FavoriteTracksResolver.smali (61%) rename patches/extension/radiant/{swipe => gestures/queue}/FeedResolver.smali (58%) rename patches/extension/radiant/{swipe => gestures/queue}/MyAlbumsResolver.smali (54%) rename patches/extension/radiant/{swipe => gestures/queue}/MyMixesAndRadioResolver.smali (60%) rename patches/extension/radiant/{swipe => gestures/queue}/MyPlaylistsResolver.smali (60%) rename patches/extension/radiant/{swipe => gestures/queue}/PlaylistItemsResolver.smali (70%) create mode 100644 patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali rename patches/extension/radiant/{swipe => gestures/queue}/QueueExecutor.smali (60%) rename patches/extension/radiant/{swipe => gestures/queue}/QueueRequest.smali (69%) rename patches/extension/radiant/{swipe => gestures/queue}/QueueRowResolver.smali (55%) rename patches/extension/radiant/{ => gestures/queue}/QueueSwipeRemove.smali (94%) rename patches/extension/radiant/{swipe => gestures/queue}/SearchAlbumsResolver.smali (53%) rename patches/extension/radiant/{swipe => gestures/queue}/SearchPlaylistsResolver.smali (61%) rename patches/extension/radiant/{swipe => gestures/queue}/SuggestionsResolver.smali (61%) rename patches/extension/radiant/{ => gestures/queue}/SwipeToQueue.smali (74%) rename patches/extension/radiant/{swipe => gestures/queue}/UnifiedSearchResolver.smali (54%) create mode 100644 patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali rename patches/extension/radiant/{swipe => gestures/queue}/ViewAllTrackQueue.smali (67%) create mode 100644 patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali delete mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali delete mode 100644 patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/ComposeSearchQueue.smali delete mode 100644 patches/extension/radiant/swipe/ComposeSearchQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/ComposeTapGuard.smali delete mode 100644 patches/extension/radiant/swipe/DynamicMediaQueue.smali delete mode 100644 patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali delete mode 100644 patches/extension/radiant/swipe/DynamicTrackQueue.smali delete mode 100644 patches/extension/radiant/swipe/DynamicTrackQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali delete mode 100644 patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/VerticalMediaQueueAction.smali delete mode 100644 patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali rename patches/gestures/{ => lyrics}/lyrics-gesture-scroll-guard.patch (81%) rename patches/gestures/{ => mini-player}/mini-player-left-right-gesture.patch (76%) rename patches/gestures/{ => mini-player}/mini-player-up-gesture.patch (73%) rename patches/gestures/{ => player}/player-swipe-gesture.patch (79%) rename patches/{ => gestures/queue}/swipe-to-queue-compose.patch (51%) rename patches/{ => gestures/queue}/swipe-to-queue.patch (82%) diff --git a/.version b/.version index 0664a8f..2bf1ca5 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.1.6 +1.1.7 diff --git a/Manager/app/build.gradle.kts b/Manager/app/build.gradle.kts index ad19044..f81a5e7 100644 --- a/Manager/app/build.gradle.kts +++ b/Manager/app/build.gradle.kts @@ -32,7 +32,7 @@ android { minSdk = 24 targetSdk = 36 versionCode = 68 - versionName = "1.1.6" + versionName = "1.1.7" vectorDrawables { useSupportLibrary = true diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 8a8f2e4..98adc34 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -430,45 +430,45 @@ "swipe-to-queue-compose.patch" ], "extensionFiles": [ - "radiant/SwipeToQueue.smali", - "radiant/QueueSwipeRemove.smali", - "radiant/swipe/QueueRequest.smali", - "radiant/swipe/QueueRowResolver.smali", - "radiant/swipe/QueueExecutor.smali", - "radiant/swipe/FavoriteTracksResolver.smali", - "radiant/swipe/DynamicTrackResolver.smali", - "radiant/swipe/MyAlbumsResolver.smali", - "radiant/swipe/MyPlaylistsResolver.smali", - "radiant/swipe/MyMixesAndRadioResolver.smali", - "radiant/swipe/SearchAlbumsResolver.smali", - "radiant/swipe/SearchPlaylistsResolver.smali", - "radiant/swipe/PlaylistItemsResolver.smali", - "radiant/swipe/UnifiedSearchResolver.smali", - "radiant/swipe/ComposeSwipeAction.smali", - "radiant/swipe/ComposeSwipeState.smali", - "radiant/swipe/ComposeSwipeState$Gesture.smali", - "radiant/swipe/ComposeSwipeState$Draw.smali", - "radiant/swipe/ComposeSwipeState$ResetAnimator.smali", - "radiant/swipe/ComposeTapGuard.smali", - "radiant/swipe/AlbumItemQueueAction.smali", - "radiant/swipe/DynamicTrackQueueEvent.smali", - "radiant/swipe/DynamicTrackQueueAction.smali", - "radiant/swipe/DynamicTrackQueue.smali", - "radiant/swipe/ViewAllTrackQueueAction.smali", - "radiant/swipe/ViewAllTrackQueue.smali", - "radiant/swipe/ComposeSearchQueueEvent.smali", - "radiant/swipe/ComposeSearchQueueAction.smali", - "radiant/swipe/ComposeSearchQueue.smali", - "radiant/swipe/FeedResolver.smali", - "radiant/swipe/ArtistTrackCreditsQueueEvent.smali", - "radiant/swipe/ArtistTrackCreditsQueueAction.smali", - "radiant/swipe/ArtistTrackCreditsQueue.smali", - "radiant/swipe/DynamicMediaQueueEvent.smali", - "radiant/swipe/CompactGridMediaQueueAction.smali", - "radiant/swipe/VerticalMediaQueueAction.smali", - "radiant/swipe/PublicPlaylistQueueAction.smali", - "radiant/swipe/DynamicMediaQueue.smali", - "radiant/swipe/SuggestionsResolver.smali" + "radiant/gestures/queue/SwipeToQueue.smali", + "radiant/gestures/queue/QueueSwipeRemove.smali", + "radiant/gestures/queue/QueueRequest.smali", + "radiant/gestures/queue/QueueRowResolver.smali", + "radiant/gestures/queue/QueueExecutor.smali", + "radiant/gestures/queue/FavoriteTracksResolver.smali", + "radiant/gestures/queue/DynamicTrackResolver.smali", + "radiant/gestures/queue/MyAlbumsResolver.smali", + "radiant/gestures/queue/MyPlaylistsResolver.smali", + "radiant/gestures/queue/MyMixesAndRadioResolver.smali", + "radiant/gestures/queue/SearchAlbumsResolver.smali", + "radiant/gestures/queue/SearchPlaylistsResolver.smali", + "radiant/gestures/queue/PlaylistItemsResolver.smali", + "radiant/gestures/queue/UnifiedSearchResolver.smali", + "radiant/gestures/queue/ComposeSwipeAction.smali", + "radiant/gestures/queue/ComposeSwipeState.smali", + "radiant/gestures/queue/ComposeSwipeState$Gesture.smali", + "radiant/gestures/queue/ComposeSwipeState$Draw.smali", + "radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali", + "radiant/gestures/queue/ComposeTapGuard.smali", + "radiant/gestures/queue/AlbumItemQueueAction.smali", + "radiant/gestures/queue/DynamicTrackQueueEvent.smali", + "radiant/gestures/queue/DynamicTrackQueueAction.smali", + "radiant/gestures/queue/DynamicTrackQueue.smali", + "radiant/gestures/queue/ViewAllTrackQueueAction.smali", + "radiant/gestures/queue/ViewAllTrackQueue.smali", + "radiant/gestures/queue/ComposeSearchQueueEvent.smali", + "radiant/gestures/queue/ComposeSearchQueueAction.smali", + "radiant/gestures/queue/ComposeSearchQueue.smali", + "radiant/gestures/queue/FeedResolver.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueue.smali", + "radiant/gestures/queue/DynamicMediaQueueEvent.smali", + "radiant/gestures/queue/CompactGridMediaQueueAction.smali", + "radiant/gestures/queue/VerticalMediaQueueAction.smali", + "radiant/gestures/queue/PublicPlaylistQueueAction.smali", + "radiant/gestures/queue/DynamicMediaQueue.smali", + "radiant/gestures/queue/SuggestionsResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue (and more actions)", @@ -678,14 +678,14 @@ "lyrics-gesture-scroll-guard.patch" ], "extensionFiles": [ - "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" + "radiant/gestures/miniplayer/MiniPlayerGestures.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali", + "radiant/gestures/lyrics/LyricsDrag.smali", + "radiant/gestures/lyrics/LyricsDrag$Guard.smali" ] }, { @@ -715,11 +715,11 @@ "mini-player-left-right-gesture.patch" ], "extensionFiles": [ - "radiant/gestures/MiniPlayerTrackGestures.smali", - "radiant/gestures/MiniPlayerTrackGestures$Gesture.smali", - "radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali", - "radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali", - "radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali", "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } 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 e94dd65..305cf2f 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 @@ -238,7 +238,6 @@ class PatchOptionsModel( fun lockState(spec: PatchSpec): PatchLock { if (isBlockedByPackageName(spec)) return PatchLock.RequiresDefaultPackage - if (spec.variants.isNotEmpty()) return PatchLock.Free val byId = specs.associateBy { it.id } fun closure(seed: PatchSpec, step: (PatchSpec) -> List): Set = @@ -254,7 +253,14 @@ class PatchOptionsModel( if (other.id == spec.id || !isPatchEnabled(other)) continue val requiresClosure = closure(other, requiresOf) - if (spec in requiresClosure - other) return PatchLock.LockedOn(other) + // A spec with variants is a multi-choice control, so there is no single state to + // force it *on* into - hence the exemption here. Forcing it *off* is unambiguous, so + // the disables check below still applies to it. Skipping both left LyricsRlApi and + // PlayerBackdrop tappable under Legacy UI even though setPatchEnabled had already + // switched them off, letting the user turn a patch back on that cannot work. + if (spec.variants.isEmpty() && spec in requiresClosure - other) { + return PatchLock.LockedOn(other) + } val disablesClosure = requiresClosure.flatMap { it.disables } .mapNotNull(byId::get) diff --git a/patches/R8-SYMBOLS.md b/patches/R8-SYMBOLS.md new file mode 100644 index 0000000..87c9eb2 --- /dev/null +++ b/patches/R8-SYMBOLS.md @@ -0,0 +1,973 @@ +# R8 Symbol Map - TIDAL 2.200.0-10004 + +Maintained by hand. Snapshot of the tree as of TIDAL 2.200.0-10004 - counts and line +numbers in section 4 drift as patches are edited, so treat them as a starting point +rather than gospel, and re-check with `grep -rn 'MARKER: R8'`. + +Every identifier below is **renamed by R8 on each TIDAL build** and has to be re-derived +when bumping the target APK. This file is the checklist for that sweep. + +In `extension/**/*.smali` and `tools/kawarp-build/**/*.java` each occurrence also carries +an inline `MARKER: R8 ` comment, so `grep -rn 'MARKER: R8'` finds them in place. +Smali comments are stripped by the assembler - verified by round-tripping the whole tree +through `smali a` + `baksmali d`, which reproduced the unannotated bytecode exactly. + +**`.patch` files are deliberately NOT annotated inline.** A comment on a context or +removed line changes the text `applyPatchFuzzy` matches against and makes the hunk +unlocatable (`Fuzzy match failed: could not locate context for hunk near line N`). +Comments on added `+` lines are unsafe too, because several patches stack on the same +target class (8 hook `PlayerScreenKt.smali` alone), so one patch's output is another's +context. Section 4 lists those occurrences by line number instead. + +## Re-deriving after a TIDAL bump + +1. baksmali the new APK. +2. For **members** (section 2) the owner class name is usually stable - open the new owner + and match on the descriptor, which R8 does not change. That pins the new member name. +3. For **classes** (section 1) match on shape: superclass, interfaces, method descriptors. +4. Apply each rename everywhere, re-run the patch set, and check for failed hunks. +5. Update the `TIDAL ` in the heading above once the sweep is done. + +## Gotcha: extension classes that are themselves patch targets + +`player-backdrop-kawarp.patch` has `--- a/radiant/HomeBackdrop.smali` - it patches one of our +own extension classes, not a TIDAL class. For those files the extension smali IS the patch's +match target, so a marker comment on a context or removed line breaks the hunk exactly like it +would in a `.patch` file (`Fuzzy match failed: could not locate context for hunk near line N`). + +`extension/radiant/HomeBackdrop.smali` is therefore deliberately left unmarked. Before marking +any extension file, check it is not a patch target: + + grep -rn '^--- a/radiant/\|^--- a/dev/' --include=*.patch patches/ + +## Gotcha: `tools/kawarp-build/build.sh` drops markers + +That script regenerates `extension/radiant/Kawarp.smali` and +`extension/dev/kawarp/KawarpEngine.smali` from the Java sources on every run, so any +`MARKER: R8` comments in those two files are lost. After running it, re-mark them +(`Kawarp.smali` had 39 marked lines) or the Kawarp half of this map goes stale silently. +The Java side under `tools/kawarp-build/{src,stubs}` is not regenerated and keeps its +markers. + +## 1. Rolled class references (268) + +| symbol | uses | referenced from | +|---|---:|---| +| `Lam0/l;` | 246 | `extension/radiant/Kawarp.smali`, `extension/radiant/MiniPlayerBackground.smali`, `extension/radiant/MiniSeekerFloating.smali` +31 more | +| `Lh4/a;` | 152 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/FeedResolver.smali` +6 more | +| `Lkotlin/u;` | 109 | `extension/radiant/Kawarp.smali`, `extension/radiant/MiniSeekerFloating.smali`, `extension/radiant/NoOp.smali` +22 more | +| `Lam0/a;` | 74 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `extension/radiant/NoOp.smali` +10 more | +| `Lcf/b;` | 60 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali`, `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Lm40/e$e;` | 49 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali`, `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackQueueAction.smali` +3 more | +| `Lh40/p;` | 46 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lo6/b;` | 46 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lzc/a;` | 44 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `La50/b;` | 42 | `extension/radiant/gestures/queue/FeedResolver.smali`, `extension/radiant/gestures/queue/PlaylistItemsResolver.smali`, `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/tidal/android/dynamicpages/ui/c;` | 42 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lu5/b$a;` | 40 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `La50/d;` | 38 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali`, `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` +3 more | +| `Le5/z$n2;` | 36 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lo6/b$a;` | 36 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lm40/e$d;` | 32 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` +1 more | +| `Lc60/r$b;` | 30 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lu5/b$a$b;` | 30 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lbm/k;` | 28 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcoil/request/b;` | 28 | `extension/radiant/Kawarp.smali` | +| `Lbm/a;` | 26 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lm40/e$a;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | +| `Lm40/e$c;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | +| `Lve/a;` | 26 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | 25 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali` +8 more | +| `Lbm/f;` | 24 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lbm/g;` | 24 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lh40/j;` | 24 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lb80/a;` | 22 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lb80/c;` | 20 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lo6/i;` | 20 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lf20/a;` | 19 | `extension/radiant/QualityBadge.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | +| `Lb80/d;` | 18 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lc60/r;` | 18 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lh40/a;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lh40/i;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lm40/e;` | 18 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lx40/a;` | 17 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/FeedResolver.smali` +5 more | +| `Lc60/b0;` | 16 | `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lc60/d;` | 16 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali` | +| `Lcom/tidal/android/core/adapterdelegate/c;` | 16 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/r$c;` | 16 | `extension/com/tidal/android/feature/appscaffold/ui/r$c.smali`, `extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Le5/c;` | 16 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lgh/j;` | 16 | `extension/radiant/MiniSeekerLine.smali` | +| `Lc60/c0;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lc60/f;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcoil/f;` | 14 | `extension/radiant/Kawarp.smali` | +| `Lh40/n;` | 14 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lpb0/b;` | 14 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lu5/b$a$a;` | 14 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | 13 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lc60/v;` | 12 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | 12 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/search/v2/d;` | 12 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcom/tidal/android/navigation/a;` | 12 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` +2 more | +| `Lh9/p1;` | 12 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lie0/i;` | 12 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lo3/a$a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lo3/a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lu3/a$a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lu3/a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 11 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lq20/c2;` | 11 | `extension/radiant/QualityBadge.smali`, `player-move-playing-from.patch`, `player-quality-badge-colors.patch` | +| `Lql0/a;` | 11 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lc60/h;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lcoil/request/h$a;` | 10 | `extension/radiant/Kawarp.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | 10 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/player/d;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | 10 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lcom/aspiro/wamp/playqueue/g1;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lcom/tidal/android/dynamicpages/ui/b;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lcom/tidal/android/feature/playerscreen/ui/f;` | 10 | `extension/radiant/RLAPILyricsWorker.smali`, `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | +| `Li60/c;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Ltl/h;` | 10 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcoil/request/h;` | 9 | `extension/radiant/Kawarp.smali` | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | 9 | `lyrics-disable-cover.patch`, `lyrics-replace-lyrics-button.patch`, `lyrics-replace-share-button.patch` +3 more | +| `Lpb0/b$a;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lpb0/b$e;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lpb0/b$f;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lpb0/b$i;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `La80/c;` | 8 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/b$b;` | 8 | `extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali`, `extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a;` | 8 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;` | 8 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | 8 | `player-quality-badge-colors.patch` | +| `Ldagger/internal/f;` | 8 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lfd/c;` | 8 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | +| `Li40/c$b;` | 8 | `extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali` | +| `Lie0/h;` | 8 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lld/c;` | 8 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lpe/f;` | 8 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | +| `Ltl/q;` | 8 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lu5/g;` | 8 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali` | +| `Lv9/e;` | 8 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lbi/e;` | 7 | `extension/radiant/RLAPILyricsWorker.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | 7 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `player-backdrop-kawarp.patch` +1 more | +| `Lm3/f;` | 7 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lam0/p;` | 6 | `extension/radiant/SparkleButton.smali`, `extension/radiant/SparkleContent.smali`, `mini-player-black.patch` +1 more | +| `Lc3/h;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lc60/s;` | 6 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lce0/b$a;` | 6 | `extension/radiant/Kawarp.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/f;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | 6 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | 6 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/feature/appscaffold/ui/b$a;` | 6 | `extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/r;` | 6 | `extension/com/tidal/android/feature/appscaffold/ui/r$c.smali` | +| `Lcom/tidal/android/feature/feed/ui/c;` | 6 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | 6 | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | +| `Lcom/tidal/android/feature/viewall/ui/e$c;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lf20/d;` | 6 | `extension/radiant/QualityBadge.smali` | +| `Lgh/b;` | 6 | `extension/radiant/SeekerConsumer.smali` | +| `Lhf/c;` | 6 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | +| `Lie0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lie0/g;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lm3/d;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lm3/f$a;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lmb0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Ln8/d;` | 6 | `extension/radiant/gestures/queue/FavoriteTracksResolver.smali` | +| `Lpd0/a;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lq20/u1;` | 6 | `extension/radiant/SparkleButton.smali` | +| `Lra/d;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lxd0/g;` | 6 | `extension/radiant/Kawarp.smali` | +| `Lcom/tidal/android/feature/playerscreen/ui/g$c;` | 5 | `extension/radiant/RLAPILyricsWorker.smali`, `lyrics-rl-api-observer.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/p;` | 5 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch`, `player-hide-playing-from.patch` +1 more | +| `Lb0/c;` | 4 | `extension/radiant/Kawarp.smali` | +| `Lbm/h;` | 4 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lc3/i$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lc3/i;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lc3/l$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lc3/l;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lce0/b;` | 4 | `extension/radiant/Kawarp.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/core/k;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | 4 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/playback/e0;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/playback/f;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/playback/k0;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/playqueue/d1;` | 4 | `extension/radiant/MiniSeekerLine.smali` | +| `Lcom/aspiro/wamp/playqueue/u0;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lcom/aspiro/wamp/search/v2/a$g;` | 4 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcom/squareup/ui/market/core/theme/k$a;` | 4 | `extension/radiant/SparkleButton.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;` | 4 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;` | 4 | `extension/radiant/gestures/queue/DynamicTrackQueueAction.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a;` | 4 | `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/q;` | 4 | `cover-capture.patch`, `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Lcom/tidal/android/feature/search/ui/f;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lcom/tidal/android/feature/viewall/ui/c;` | 4 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lcom/tidal/android/image/core/b$a;` | 4 | `extension/radiant/Kawarp.smali` | +| `Ld0/c$a;` | 4 | `extension/radiant/Kawarp.smali` | +| `Lj3/k$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lj3/k;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lj3/n$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lj3/n;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lj3/q$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lj3/q;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lm3/i$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lm3/i;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lmb0/e;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lvn0/b;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lz70/a;` | 4 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lzf/c;` | 4 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Landroidx/navigation/f0;` | 3 | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Landroidx/window/embedding/a2;` | 3 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | 3 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/feature/appscaffold/ui/r$a;` | 3 | `extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/t;` | 3 | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/b;` | 3 | `lyrics-replace-share-button.patch` | +| `Lcom/tidal/android/feature/viewall/ui/e;` | 3 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/image/core/b$h$a;` | 3 | `extension/radiant/Kawarp.smali` | +| `Ldagger/internal/j;` | 3 | `extension/radiant/MiniSeekerLine.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lkotlin/jvm/internal/n;` | 3 | `integration-waze-playback.patch` | +| `La30/a;` | 2 | `player-favorite-heart.patch` | +| `Lad/f;` | 2 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | +| `Lam0/q;` | 2 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Landroidx/window/embedding/b2;` | 2 | `lyrics-replace-share-button.patch` | +| `Lbd/d$a;` | 2 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | +| `Lbm/i;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcoil/request/d;` | 2 | `extension/radiant/Kawarp.smali` | +| `Lcom/aspiro/wamp/contextmenu/menu/track/c;` | 2 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | 2 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h;` | 2 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/search/v2/a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lcom/aspiro/wamp/util/h0;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lcom/squareup/ui/market/components/n;` | 2 | `extension/radiant/SparkleButton.smali` | +| `Lcom/squareup/ui/market/core/theme/k;` | 2 | `extension/radiant/SparkleButton.smali` | +| `Lcom/squareup/ui/market/core/theme/z;` | 2 | `extension/radiant/SparkleButton.smali` | +| `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | 2 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b;` | 2 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b;` | 2 | `extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b;` | 2 | `extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali` | +| `Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b;` | 2 | `extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali` | +| `Lcom/tidal/android/feature/appscaffold/ui/composable/a;` | 2 | `mini-player-black.patch`, `mini-player-dynamic-bg.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/s3;` | 2 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/d;` | 2 | `lyrics-disable-cover.patch`, `player-move-playing-from.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/e0;` | 2 | `lyrics-replace-share-button.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/g;` | 2 | `lyrics-disable-cover.patch`, `lyrics-progress-pill.patch` | +| `Lcom/tidal/android/feature/search/ui/b;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueueEvent.smali` | +| `Lcom/tidal/android/feature/search/ui/e;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lcom/tidal/android/feature/viewall/ui/u;` | 2 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lcom/tidal/android/image/coil/c;` | 2 | `extension/radiant/Kawarp.smali` | +| `Lcom/tidal/android/image/core/b;` | 2 | `extension/radiant/Kawarp.smali` | +| `Ldf/d$a;` | 2 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | +| `Lhu/akarnokd/rxjava/interop/f;` | 2 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lid/e;` | 2 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lij/a0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lij/j0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lij/q$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Ljd/d$a;` | 2 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lk5/f;` | 2 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali` | +| `Lkotlin/collections/u;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lkotlin/coroutines/e;` | 2 | `extension/radiant/gestures/lyrics/LyricsDrag$Guard.smali` | +| `Lkotlin/coroutines/h;` | 2 | `extension/radiant/MiniPlayerBackground.smali` | +| `Lkotlin/i;` | 2 | `mini-player-dynamic-bg.patch` | +| `Lmb0/f;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lo4/g;` | 2 | `gestures/queue/swipe-to-queue.patch` | +| `Lo50/a;` | 2 | `debug-menu-unlock.patch` | +| `Lp7/a$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lq20/r4;` | 2 | `extension/radiant/QualityBadge.smali` | +| `Lq20/s4;` | 2 | `extension/radiant/QualityBadge.smali` | +| `Lqe/c$a;` | 2 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | +| `Ltl/f;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lul/a0$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lul/d$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lul/n0$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lul/w$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lv6/e$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lv70/b;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lvn0/a;` | 2 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lw70/c$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lw70/h$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lw70/k$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lwf/d;` | 2 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Lxd0/e;` | 2 | `extension/radiant/Kawarp.smali` | +| `Lxd0/f;` | 2 | `extension/radiant/Kawarp.smali` | +| `Lxf/d$a;` | 2 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `La30/b;` | 1 | `player-favorite-heart.patch` | +| `Landroidx/compose/foundation/text/input/a;` | 1 | `player-backdrop-playback.patch` | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/l;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/squareup/ui/market/layout/e;` | 1 | `player-backdrop-playback.patch` | +| `Lcom/squareup/ui/market/text/a;` | 1 | `player-move-playing-from.patch` | +| `Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/feature/appscaffold/ui/composable/g;` | 1 | `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/b0;` | 1 | `lyrics-disable-cover.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/e5;` | 1 | `lyrics-replace-share-button.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/k1;` | 1 | `lyrics-replace-lyrics-button.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/o1;` | 1 | `lyrics-fade-region.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/t4;` | 1 | `player-quality-badge-colors.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/g$a;` | 1 | `lyrics-disable-cover.patch` | +| `Lcom/tidal/android/feature/viewall/ui/e$a;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/feature/viewall/ui/n;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/featureflags/n;` | 1 | `debug-menu-unlock.patch` | +| `Lcom/tidal/android/tidalapi/domain/model/o;` | 1 | `lyrics-rl-api-isrc.patch` | +| `Lde0/c;` | 1 | `player-backdrop-playback.patch` | +| `Lmb/f;` | 1 | `integration-waze-playback.patch` | +| `Ln8/b;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lo4/g$e;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lob0/q;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lob0/w;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | + +## 2. Rolled members on otherwise-stable classes (347) + +The owner name survives R8; only the member name rolls. Match on the descriptor. + +| owner | member | descriptor | uses | +|---|---|---|---:| +| `Lcom/aspiro/wamp/App$a;` | `a` | `()Lcom/aspiro/wamp/App;` | 8 | +| `Lcom/aspiro/wamp/App;` | `e` | `()Le5/c;` | 8 | +| `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;` | `a` | `(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a;` | 8 | +| `Lm40/e$e;` | `a` | `:J` | 8 | +| `La50/b;` | `b` | `:Ljava/util/ArrayList;` | 7 | +| `Lcf/b;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 6 | +| `Lcom/tidal/android/navigation/a;` | `b` | `(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node;` | 6 | +| `Lie0/i;` | `a` | `(Lh40/p;)Lcom/aspiro/wamp/model/Track;` | 6 | +| `Lo6/b;` | `c` | `:Lo6/b$a;` | 6 | +| `Lzc/a;` | `b` | `:Lcom/aspiro/wamp/model/Album;` | 6 | +| `Lc60/r$b;` | `a` | `:Lh40/n;` | 5 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `j` | `(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 5 | +| `Lcom/tidal/android/dynamicpages/ui/c;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 5 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `P` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 5 | +| `Li60/c;` | `c` | `(Ljava/lang/String;)Lc60/h;` | 5 | +| `Lm40/e$e;` | `j` | `:Z` | 5 | +| `Lo6/b$a;` | `q` | `:Ljava/lang/String;` | 5 | +| `Lo6/b;` | `a` | `:Lo6/i;` | 5 | +| `Lbm/a;` | `a` | `:Lcom/aspiro/wamp/model/Album;` | 4 | +| `Lbm/f;` | `a` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 4 | +| `Lbm/g;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 4 | +| `Lbm/k;` | `a` | `:Lcom/aspiro/wamp/model/Track;` | 4 | +| `Lcf/b;` | `h` | `:Z` | 4 | +| `Lcf/b;` | `f` | `:Z` | 4 | +| `Lcf/b;` | `g` | `:Ljava/lang/String;` | 4 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `o` | `(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 4 | +| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `N` | `()Ltl/h;` | 4 | +| `Lcom/tidal/android/feature/playerscreen/ui/f;` | `a` | `:Ljava/lang/String;` | 4 | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `m` | `:Lcom/tidal/android/feature/playerscreen/ui/p;` | 4 | +| `Lh40/p;` | `a` | `:J` | 4 | +| `Lie0/h;` | `a` | `(Lh40/j;)Lcom/aspiro/wamp/model/Playlist;` | 4 | +| `Lo6/b$a;` | `o` | `:I` | 4 | +| `Lu5/b$a$b;` | `r` | `:I` | 4 | +| `Lu5/b$a;` | `c` | `:Lu5/b$a$b;` | 4 | +| `Lzc/a;` | `k` | `:Z` | 4 | +| `Lb80/a;` | `a` | `:Lcom/aspiro/wamp/model/Album;` | 3 | +| `Lb80/c;` | `a` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Lb80/d;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 3 | +| `Lc60/s;` | `a` | `(Lc60/r;)Ljava/lang/String;` | 3 | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `i` | `:Z` | 3 | +| `Lcom/aspiro/wamp/player/d;` | `b` | `()Lcom/aspiro/wamp/model/MediaItemParent;` | 3 | +| `Lcom/aspiro/wamp/playqueue/g1;` | `a` | `()Lcom/aspiro/wamp/player/d;` | 3 | +| `Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;` | `a` | `(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;` | 3 | +| `Lcom/tidal/android/feature/appscaffold/ui/b$b;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/b$b;` | 3 | +| `Lcom/tidal/android/feature/appscaffold/ui/r$c;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/r$c;` | 3 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | `a` | `(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 3 | +| `Lh4/a;` | `b` | `:Lo3/a$a;` | 3 | +| `Lh4/a;` | `h` | `:Lu3/a$a;` | 3 | +| `Lie0/a;` | `a` | `(Lh40/a;)Lcom/aspiro/wamp/model/Album;` | 3 | +| `Lie0/g;` | `b` | `(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Lm40/e$d;` | `a` | `:Ljava/lang/String;` | 3 | +| `Lm40/e$d;` | `g` | `:Z` | 3 | +| `Lo3/a$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a;` | 3 | +| `Lo6/b$a;` | `d` | `:I` | 3 | +| `Lu3/a$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a;` | 3 | +| `Lu5/b$a$b;` | `s` | `:Ljava/lang/String;` | 3 | +| `Lu5/b$a;` | `a` | `:Lu5/b$a$a;` | 3 | +| `Lve/a;` | `c` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Lcoil/request/h$a;` | `b` | `:Lcoil/request/b;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `Y` | `(ILcom/aspiro/wamp/model/FavoriteTrack;)Z` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `d` | `:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `l` | `:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `b` | `(I)Lcom/aspiro/wamp/model/FavoriteTrack;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | `f` | `:Landroidx/recyclerview/widget/RecyclerView;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `c` | `:Lpe/f;` | 2 | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `h` | `:Landroid/graphics/drawable/Drawable;` | 2 | +| `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `h` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 2 | +| `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `c` | `:Lcom/aspiro/wamp/playlist/ui/items/a;` | 2 | +| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `g` | `:Lio/reactivex/disposables/CompositeDisposable;` | 2 | +| `Lcom/aspiro/wamp/search/v2/d;` | `e` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 2 | +| `Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;` | `p0` | `()Lf20/a;` | 2 | +| `Lcom/tidal/android/feature/appscaffold/ui/b$a;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/b$a;` | 2 | +| `Lcom/tidal/android/feature/appscaffold/ui/composable/a;` | `c` | `:Landroidx/compose/foundation/shape/RoundedCornerShape;` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `b` | `:I` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `d` | `:J` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `e` | `:J` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/s3;` | `a` | `(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | `b` | `:I` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | `a` | `:Ljava/lang/String;` | 2 | +| `Lcom/tidal/android/feature/search/ui/SearchQuery;` | `a` | `:Ljava/lang/String;` | 2 | +| `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `m` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 2 | +| `Le5/z$n2;` | `r2` | `()Lcom/aspiro/wamp/playqueue/g1;` | 2 | +| `Lh9/p1;` | `b` | `:Lx40/a;` | 2 | +| `Lm3/f$a;` | `a` | `(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f;` | 2 | +| `Lm3/f;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 2 | +| `Lm40/e$a;` | `a` | `:J` | 2 | +| `Lm40/e$a;` | `e` | `:Z` | 2 | +| `Lm40/e$c;` | `a` | `:Ljava/lang/String;` | 2 | +| `Lm40/e$c;` | `h` | `:Z` | 2 | +| `Lo50/a;` | `a` | `:Ljava/lang/String;` | 2 | +| `Lo6/b;` | `b` | `:J` | 2 | +| `Lo6/i;` | `p` | `:Ljava/util/LinkedHashMap;` | 2 | +| `Ltl/q;` | `a` | `:Lx40/a;` | 2 | +| `Lu5/b$a$b;` | `g` | `:Lcom/aspiro/wamp/model/Availability;` | 2 | +| `Lu5/b$a$b;` | `p` | `:Z` | 2 | +| `Lu5/b$a;` | `b` | `:J` | 2 | +| `Lve/a;` | `f` | `:Z` | 2 | +| `Lve/a;` | `a` | `:Ljava/lang/String;` | 2 | +| `La30/a;` | `a` | `:I` | 1 | +| `La30/b;` | `O` | `:La30/a;` | 1 | +| `La80/c;` | `a` | `:Ljava/lang/String;` | 1 | +| `La80/c;` | `e` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `La80/c;` | `b` | `:Lx40/a;` | 1 | +| `Lb80/a;` | `c` | `:Z` | 1 | +| `Lb80/a;` | `g` | `:I` | 1 | +| `Lb80/c;` | `c` | `:I` | 1 | +| `Lb80/d;` | `c` | `:I` | 1 | +| `Lbi/e;` | `i` | `()Z` | 1 | +| `Lbi/e;` | `h` | `(Z)V` | 1 | +| `Lbm/a;` | `c` | `:Lcom/aspiro/wamp/model/Availability$Album;` | 1 | +| `Lbm/i;` | `a` | `(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lbm/k;` | `e` | `:Lcom/aspiro/wamp/model/Availability$MediaItem;` | 1 | +| `Lbm/k;` | `n` | `:Lcom/aspiro/wamp/search/SearchDataSource;` | 1 | +| `Lc3/h;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lc3/i$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i;` | 1 | +| `Lc3/i;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lc3/l$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l;` | 1 | +| `Lc3/l;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lc60/b0;` | `b` | `:Ljava/lang/String;` | 1 | +| `Lc60/b0;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Lc60/b0;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lc60/b0;` | `e` | `:I` | 1 | +| `Lc60/b0;` | `c` | `:Ljava/lang/String;` | 1 | +| `Lc60/b0;` | `g` | `:Ljava/lang/String;` | 1 | +| `Lc60/c0;` | `b` | `:Ljava/lang/String;` | 1 | +| `Lc60/c0;` | `g` | `:Ljava/util/ArrayList;` | 1 | +| `Lc60/c0;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lc60/c0;` | `f` | `:I` | 1 | +| `Lc60/c0;` | `c` | `:Ljava/lang/String;` | 1 | +| `Lc60/d;` | `b` | `:Ljava/lang/String;` | 1 | +| `Lc60/d;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Lc60/d;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lc60/d;` | `e` | `:I` | 1 | +| `Lc60/d;` | `c` | `:Ljava/lang/String;` | 1 | +| `Lc60/d;` | `g` | `:Ljava/lang/String;` | 1 | +| `Lc60/f;` | `b` | `:Ljava/lang/String;` | 1 | +| `Lc60/f;` | `g` | `:Ljava/util/ArrayList;` | 1 | +| `Lc60/f;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lc60/f;` | `d` | `:I` | 1 | +| `Lc60/f;` | `e` | `:Ljava/lang/String;` | 1 | +| `Lc60/v;` | `b` | `:Ljava/lang/String;` | 1 | +| `Lc60/v;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Lc60/v;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lc60/v;` | `e` | `:I` | 1 | +| `Lce0/b$a;` | `a` | `()Lce0/b;` | 1 | +| `Lce0/b;` | `a` | `()Lxd0/e;` | 1 | +| `Lcoil/f;` | `b` | `(Lcoil/request/h;)Lcoil/request/d;` | 1 | +| `Lcoil/request/b;` | `a` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | +| `Lcoil/request/b;` | `b` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | +| `Lcoil/request/b;` | `c` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | +| `Lcoil/request/b;` | `d` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | +| `Lcoil/request/b;` | `e` | `:Ld0/c$a;` | 1 | +| `Lcoil/request/b;` | `f` | `:Lcoil/size/Precision;` | 1 | +| `Lcoil/request/b;` | `g` | `:Landroid/graphics/Bitmap$Config;` | 1 | +| `Lcoil/request/b;` | `h` | `:Z` | 1 | +| `Lcoil/request/b;` | `i` | `:Lcoil/request/CachePolicy;` | 1 | +| `Lcoil/request/b;` | `j` | `:Lcoil/request/CachePolicy;` | 1 | +| `Lcoil/request/h$a;` | `d` | `:Lb0/c;` | 1 | +| `Lcoil/request/h$a;` | `a` | `()Lcoil/request/h;` | 1 | +| `Lcoil/request/h;` | `a` | `(Lcoil/request/h;)Lcoil/request/h$a;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/f;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;` | `a` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;` | `a` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lcom/aspiro/wamp/contextmenu/menu/track/c;` | `b` | `:Ldagger/internal/j;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | `a` | `:Lcom/aspiro/wamp/contextmenu/menu/track/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `h` | `:Lad/f;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `c` | `:Lfd/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `j` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `f` | `:Lid/e;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `c` | `:Lld/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `g` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `Z` | `(ILcom/aspiro/wamp/model/FavoriteTrack;I)V` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `f` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `b` | `:Lx40/a;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `w` | `(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `N` | `()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `m` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `k` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `h` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `j` | `:Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `d` | `:Lhf/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `g` | `:Lwf/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `c` | `:Lzf/c;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `c` | `:Landroid/graphics/drawable/ColorDrawable;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `d` | `:Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl$ActionType;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | `o` | `:Ljava/lang/Object;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | `j` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j;` | `a` | `(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `M` | `()Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | +| `Lcom/aspiro/wamp/playback/e0;` | `a` | `(Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lio/reactivex/disposables/Disposable;` | 1 | +| `Lcom/aspiro/wamp/playback/f;` | `a` | `(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f;` | 1 | +| `Lcom/aspiro/wamp/playback/k0;` | `c` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)V` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `k` | `()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `c` | `(Lcom/aspiro/wamp/model/Track;)V` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `i` | `(I)V` | 1 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `c` | `(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource;` | 1 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `f` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/PlaylistSource;` | 1 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `p` | `(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 1 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `m` | `(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/MyItemsSource;` | 1 | +| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `c` | `:Ltl/q;` | 1 | +| `Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lcom/aspiro/wamp/util/h0;` | `c` | `(I)Ljava/lang/String;` | 1 | +| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `P` | `(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1;` | 1 | +| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `b` | `(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/squareup/ui/market/components/MarketLabelKt;` | `e` | `(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lam0/l;Lq20/c2;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/squareup/ui/market/core/theme/k;` | `e` | `:Lcom/squareup/ui/market/core/theme/k$a;` | 1 | +| `Lcom/squareup/ui/market/core/theme/z;` | `t` | `(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet;` | 1 | +| `Lcom/squareup/ui/market/layout/e;` | `c` | `(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;` | 1 | +| `Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;` | `a` | `:Lcom/tidal/android/featureflags/n;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/c;` | `a` | `:Lcom/aspiro/wamp/core/k;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | `c` | `:Ljava/lang/String;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | `f` | `:Lam0/q;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;` | `f` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;` | `e` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/composable/g;` | `a` | `:Lam0/l;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/q;` | `d` | `:Ljava/lang/String;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/q;` | `e` | `:Z` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/r$a;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/r$a;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/t;` | `b` | `:Lcom/tidal/android/feature/appscaffold/ui/q;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/t;` | `c` | `:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/t;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `d` | `:Lv70/b;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `c` | `:La80/c;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `f` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/c;` | `c` | `:Lz70/a;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/viewstates/UpdatedIntervals$a;` | `a` | `(I)Ljava/lang/String;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a;` | `a` | `:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `W` | `:Lkotlinx/coroutines/flow/StateFlow;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `Q` | `:Lkotlin/i;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `a` | `:Lbi/e;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `O` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `K` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/b0;` | `b` | `:Lcom/tidal/android/feature/playerscreen/ui/s$a;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;` | `c` | `(Lcom/tidal/android/feature/playerscreen/ui/d;Lam0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;` | `a` | `(Lcom/tidal/android/feature/playerscreen/ui/g;Lam0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lam0/l;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/anim/BouncePressKt;` | `a` | `(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/e5;` | `a` | `(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/k1;` | `a` | `(Landroidx/compose/ui/Modifier;Lam0/a;ZLandroidx/compose/runtime/Composer;I)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/o1;` | `a` | `:F` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/t4;` | `g` | `:F` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/g$c;` | `c` | `:I` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/p;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `j` | `:Lcom/tidal/android/feature/playerscreen/ui/g;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `d` | `:Lcom/tidal/android/feature/playerscreen/ui/b;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `i` | `:Z` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `c` | `:Lcom/tidal/android/feature/playerscreen/ui/d;` | 1 | +| `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `n` | `:Ljava/util/List;` | 1 | +| `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `d` | `:Lcom/tidal/android/feature/search/ui/e;` | 1 | +| `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `f` | `:Lcom/tidal/android/feature/search/ui/f;` | 1 | +| `Lcom/tidal/android/feature/search/ui/f;` | `a` | `(JLh40/p;Ljava/lang/String;)V` | 1 | +| `Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;` | `n` | `:Lcom/tidal/android/feature/viewall/ui/c;` | 1 | +| `Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;` | `f` | `:Lcom/tidal/android/feature/viewall/ui/u;` | 1 | +| `Lcom/tidal/android/feature/viewall/ui/c;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Lcom/tidal/android/feature/viewall/ui/e$c;` | `a` | `:Ljava/lang/Object;` | 1 | +| `Lcom/tidal/android/image/coil/base/CoilImageLoader;` | `a` | `:Lcoil/f;` | 1 | +| `Lcom/tidal/android/image/coil/c;` | `a` | `(Lxd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h;` | 1 | +| `Lde0/c;` | `a` | `:Ljava/lang/String;` | 1 | +| `Le5/z$n2;` | `z0` | `:Ldagger/internal/j;` | 1 | +| `Le5/z$n2;` | `u3` | `()Lcom/aspiro/wamp/playback/f;` | 1 | +| `Le5/z$n2;` | `x3` | `()Lcom/aspiro/wamp/playback/e0;` | 1 | +| `Le5/z$n2;` | `w8` | `:Ldagger/internal/f;` | 1 | +| `Le5/z$n2;` | `y3` | `()Lcom/aspiro/wamp/playback/k0;` | 1 | +| `Le5/z$n2;` | `v8` | `:Ldagger/internal/f;` | 1 | +| `Le5/z$n2;` | `K9` | `:Ldagger/internal/f;` | 1 | +| `Le5/z$n2;` | `k9` | `:Ldagger/internal/f;` | 1 | +| `Lfd/c;` | `a` | `:Lx40/a;` | 1 | +| `Lfd/c;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lfd/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lgh/b;` | `b` | `:F` | 1 | +| `Lgh/j;` | `a` | `()V` | 1 | +| `Lgh/j;` | `d` | `:Lio/reactivex/subjects/BehaviorSubject;` | 1 | +| `Lh4/a;` | `q` | `(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z` | 1 | +| `Lh4/a;` | `n` | `:Lcom/aspiro/wamp/contextmenu/menu/track/TrackContextMenu$a;` | 1 | +| `Lhf/c;` | `e` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lhf/c;` | `d` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lj3/k$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k;` | 1 | +| `Lj3/k;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lj3/n$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n;` | 1 | +| `Lj3/n;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lj3/q$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q;` | 1 | +| `Lj3/q;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lk5/f;` | `l` | `(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module;` | 1 | +| `Lld/c;` | `a` | `:Lx40/a;` | 1 | +| `Lld/c;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lld/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lm3/d;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lm3/f;` | `j` | `:Lcom/aspiro/wamp/playqueue/g1;` | 1 | +| `Lm3/i$a;` | `a` | `(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i;` | 1 | +| `Lm3/i;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lmb/f;` | `c` | `:Ljava/util/Map;` | 1 | +| `Lmb0/a;` | `a` | `:Lh40/n;` | 1 | +| `Lmb0/f;` | `a` | `(Lmb0/e;)Ljava/lang/String;` | 1 | +| `Ln8/d;` | `f` | `:Lcom/aspiro/wamp/model/MediaItem;` | 1 | +| `Lo3/a;` | `l` | `:Lcom/aspiro/wamp/module/album/AlbumProvider;` | 1 | +| `Lo3/a;` | `e` | `:Lc3/i$a;` | 1 | +| `Lo3/a;` | `d` | `:Lc3/l$a;` | 1 | +| `Lo4/g;` | `e` | `:Lo4/g$e;` | 1 | +| `Lo4/g;` | `b` | `:I` | 1 | +| `Lo6/i;` | `g` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lo6/i;` | `e` | `(ILjava/lang/String;)V` | 1 | +| `Lo6/i;` | `m` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lob0/q;` | `a` | `(Lpb0/b$e;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | +| `Lob0/w;` | `a` | `(Lpb0/b$f;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | +| `Lpb0/b$a;` | `a` | `:J` | 1 | +| `Lpb0/b$a;` | `f` | `:Z` | 1 | +| `Lpb0/b$e;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lpb0/b$f;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lpb0/b$i;` | `a` | `:J` | 1 | +| `Lpb0/b$i;` | `i` | `:Z` | 1 | +| `Lpd0/a;` | `a` | `:Lh40/n;` | 1 | +| `Lpe/f;` | `a` | `:Lx40/a;` | 1 | +| `Lpe/f;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lq20/c2;` | `g` | `(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2;` | 1 | +| `Lra/d;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Ltl/f;` | `e` | `(Lcom/aspiro/wamp/search/v2/a;)V` | 1 | +| `Ltl/h;` | `c` | `()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;` | 1 | +| `Ltl/q;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lu3/a;` | `j` | `:Lj3/k$a;` | 1 | +| `Lu3/a;` | `e` | `:Lj3/n$a;` | 1 | +| `Lu3/a;` | `d` | `:Lj3/q$a;` | 1 | +| `Lu5/b$a$a;` | `g` | `(ILjava/lang/String;)V` | 1 | +| `Lu5/g;` | `h` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lu5/g;` | `j` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lv9/e;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lv9/e;` | `a` | `:Lcom/aspiro/wamp/core/k;` | 1 | +| `Lvn0/a;` | `c` | `(Ljava/lang/Iterable;)Lvn0/b;` | 1 | +| `Lz70/a;` | `c` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lzf/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | + +## 3. Rolled patch target classes (64) + +`--- a/` headers naming an obfuscated class. If these move the hunk cannot even be located. + +| target | hooked by | +|---|---| +| `cg0/h.smali` | `lyrics-rl-api-isrc.patch` | +| `com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/playqueue/l.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/suggestions/h.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/suggestions/o0.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/search/v2/UnifiedSearchView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/tidal/android/core/debug/DebugFeatureInteractorDefault.smali` | `debug-menu-unlock.patch` | +| `com/tidal/android/core/ui/composable/c0.smali` | `player-backdrop-kawarp.patch`, `player-backdrop-playback.patch` | +| `com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/modules/compactgridcard/CompactGridCardModuleManager$createModuleViewState$2$2.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali` | `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali` | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | +| `com/tidal/android/feature/appscaffold/ui/composable/a.smali` | `mini-player-black.patch`, `mini-player-grey.patch` | +| `com/tidal/android/feature/appscaffold/ui/composable/g.smali` | `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `com/tidal/android/feature/appscaffold/ui/composable/i.smali` | `gestures/mini-player/mini-player-up-gesture.patch`, `mini-player-black.patch`, `mini-player-dynamic-bg.patch`, `mini-player-floating-border.patch`, `mini-player-grey.patch` | +| `com/tidal/android/feature/appscaffold/ui/q.smali` | `cover-capture.patch` | +| `com/tidal/android/feature/appscaffold/ui/t.smali` | `cover-capture.patch` | +| `com/tidal/android/feature/feed/ui/FeedView.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/tidal/android/feature/home/ui/composables/g.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/home/ui/k.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/home/ui/o.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1.smali` | `lyrics-keep-controls-visible.patch` | +| `com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali` | `lyrics-replace-lyrics-button.patch`, `lyrics-replace-share-button.patch`, `lyrics-sparkle-conditional-visibility.patch`, `player-backdrop-kawarp.patch`, `player-backdrop-playback.patch`, `player-hide-playing-from.patch`, `player-move-playing-from.patch`, `player-one-handed.patch` | +| `com/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a.smali` | `lyrics-rl-api-observer.patch` | +| `com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali` | `lyrics-rl-api.patch`, `player-quality-badge-colors.patch` | +| `com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali` | `lyrics-keep-controls-visible.patch`, `lyrics-rl-api.patch`, `mini-player-dynamic-bg.patch` | +| `com/tidal/android/feature/playerscreen/ui/b0.smali` | `lyrics-disable-cover.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali` | `gestures/lyrics/lyrics-gesture-scroll-guard.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/SeekbarAndTimeKt.smali` | `player-quality-badge-colors.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/c1.smali` | `player-favorite-heart.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/f2.smali` | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/n2.smali` | `player-move-playing-from.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/o1.smali` | `lyrics-fade-region.patch` | +| `com/tidal/android/feature/playerscreen/ui/i$a.smali` | `player-quality-badge-colors.patch` | +| `com/tidal/android/feature/playerscreen/ui/m0.smali` | `lyrics-progress-pill.patch` | +| `com/tidal/android/feature/search/ui/SearchScreenViewModel.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/search/ui/composables/u0.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/viewall/ui/l.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/wave2/foundation/WaveScaffoldKt.smali` | `collection-backdrop.patch` | +| `de0/c.smali` | `player-backdrop-playback.patch` | +| `h4/a.smali` | `gestures/queue/swipe-to-queue.patch` | +| `hg/d.smali` | `enable-legacy-ui.patch` | +| `j40/e4.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `j40/p2.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `mb/f.smali` | `integration-waze-playback.patch` | +| `p7/a.smali` | `gestures/queue/swipe-to-queue.patch` | +| `v6/e.smali` | `gestures/queue/swipe-to-queue.patch` | + +## 4. Occurrences inside .patch files - not marked inline (220) + +| file | line | kind | symbols | +|---|---:|---|---| +| `cover-capture.patch` | 5 | context | `Lcom/tidal/android/feature/appscaffold/ui/q; d` | +| `cover-capture.patch` | 11 | context | `Lcom/tidal/android/feature/appscaffold/ui/q; e` | +| `cover-capture.patch` | 15 | context | `Lcom/tidal/android/feature/appscaffold/ui/q;` | +| `debug-menu-unlock.patch` | 11 | context | `Lcom/tidal/android/featureflags/n; a` | +| `debug-menu-unlock.patch` | 26 | context | `Lo50/a; a` | +| `debug-menu-unlock.patch` | 36 | context | `Lo50/a; a` | +| `gestures/lyrics/lyrics-gesture-scroll-guard.patch` | 12 | context | `Lam0/l;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 7 | added | `Lam0/l;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 16 | context | `Lcom/tidal/android/feature/appscaffold/ui/t; Lcom/tidal/android/feature/appscaffold/ui/q; b` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 32 | context | `Lf20/a; p0` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 63 | context | `Lbi/e; i` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 73 | added | `Lcom/tidal/android/feature/appscaffold/ui/r$c; a` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 81 | added | `Lbi/e;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 89 | added | `Lbi/e; h` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 95 | context | `Landroidx/navigation/f0;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 116 | added | `Lkotlin/u;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 122 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/g; Lam0/l; a` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 126 | context | `Lcom/tidal/android/feature/appscaffold/ui/b$b; a` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 14 | added | `Lam0/l;` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 23 | context | `Lcom/tidal/android/feature/appscaffold/ui/t; c` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 25 | added | `Lcom/tidal/android/feature/appscaffold/ui/t; a` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 64 | context | `Lf20/a; p0` | +| `gestures/player/player-swipe-gesture.patch` | 35 | added | `Lam0/l;` | +| `gestures/player/player-swipe-gesture.patch` | 37 | added | `Lam0/l;` | +| `gestures/player/player-swipe-gesture.patch` | 41 | context | `Lam0/l;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 5 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 7 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 18 | added | `Lm40/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 26 | added | `Lam0/l; Lm40/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 28 | added | `Lm40/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 54 | context | `Landroidx/navigation/f0;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 60 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 72 | added | `Lam0/l; Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 93 | added | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d; Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; b` | +| `gestures/queue/swipe-to-queue-compose.patch` | 95 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; Lam0/q; f` | +| `gestures/queue/swipe-to-queue-compose.patch` | 97 | added | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d; c` | +| `gestures/queue/swipe-to-queue-compose.patch` | 99 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 103 | added | `Lam0/q;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 105 | added | `Lkotlin/u;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 123 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 127 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 129 | added | `Lkotlin/u;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 159 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 161 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 167 | added | `Lam0/l; Lpb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 173 | added | `Lpb0/b$a; f` | +| `gestures/queue/swipe-to-queue-compose.patch` | 187 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 193 | added | `Lam0/l; Lpb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 208 | context | `Lob0/w; Lpb0/b$f; Lam0/a; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 211 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 213 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 219 | added | `Lam0/l; Lpb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 225 | added | `Lpb0/b$i; i` | +| `gestures/queue/swipe-to-queue-compose.patch` | 239 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 245 | added | `Lam0/l; Lpb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 260 | context | `Lob0/q; Lpb0/b$e; Lam0/a; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 265 | context | `Lam0/l;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 267 | added | `Lm40/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 273 | added | `Lm40/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 275 | added | `Lm40/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 283 | added | `Lam0/l; Lm40/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 285 | added | `Lm40/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 300 | added | `Lcom/tidal/android/feature/viewall/ui/n;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 304 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 318 | added | `Lcom/tidal/android/feature/viewall/ui/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 324 | added | `Lkotlin/u;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 330 | context | `Lcom/tidal/android/feature/viewall/ui/e$a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 334 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 335 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 341 | added | `Lm40/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 349 | added | `Lam0/l; Lm40/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 351 | added | `Lm40/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 376 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 384 | added | `Lam0/l; Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 390 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 402 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 403 | added | `Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 407 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 413 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 415 | added | `Lm40/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 421 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 429 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 430 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 438 | added | `Lam0/l; Lm40/e$d;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 444 | added | `Lm40/e$d; g` | +| `gestures/queue/swipe-to-queue-compose.patch` | 480 | context | `Landroidx/navigation/f0;` | +| `gestures/queue/swipe-to-queue.patch` | 13 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; d` | +| `gestures/queue/swipe-to-queue.patch` | 17 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; b` | +| `gestures/queue/swipe-to-queue.patch` | 33 | added | `f` | +| `gestures/queue/swipe-to-queue.patch` | 62 | added | `Y` | +| `gestures/queue/swipe-to-queue.patch` | 69 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; d` | +| `gestures/queue/swipe-to-queue.patch` | 73 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; b` | +| `gestures/queue/swipe-to-queue.patch` | 79 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; m` | +| `gestures/queue/swipe-to-queue.patch` | 81 | added | `Lcom/aspiro/wamp/playqueue/source/model/b; m` | +| `gestures/queue/swipe-to-queue.patch` | 87 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; k` | +| `gestures/queue/swipe-to-queue.patch` | 89 | added | `Lx40/a; b` | +| `gestures/queue/swipe-to-queue.patch` | 91 | added | `Lh4/a;` | +| `gestures/queue/swipe-to-queue.patch` | 95 | added | `Lh4/a;` | +| `gestures/queue/swipe-to-queue.patch` | 126 | added | `Lh4/a; q` | +| `gestures/queue/swipe-to-queue.patch` | 142 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; l` | +| `gestures/queue/swipe-to-queue.patch` | 146 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; f` | +| `gestures/queue/swipe-to-queue.patch` | 148 | added | `w` | +| `gestures/queue/swipe-to-queue.patch` | 156 | context | `Ln8/b;` | +| `gestures/queue/swipe-to-queue.patch` | 159 | context | `Lo4/g; Lo4/g$e; e` | +| `gestures/queue/swipe-to-queue.patch` | 163 | context | `Lo4/g; b` | +| `gestures/queue/swipe-to-queue.patch` | 164 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; l` | +| `gestures/queue/swipe-to-queue.patch` | 168 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; f` | +| `gestures/queue/swipe-to-queue.patch` | 174 | context | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; N` | +| `gestures/queue/swipe-to-queue.patch` | 207 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 218 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 230 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 270 | added | `Lh4/a; n` | +| `gestures/queue/swipe-to-queue.patch` | 272 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | +| `gestures/queue/swipe-to-queue.patch` | 274 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/d; Lcom/aspiro/wamp/contextmenu/menu/track/c; a` | +| `gestures/queue/swipe-to-queue.patch` | 276 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/c; Ldagger/internal/j; b` | +| `gestures/queue/swipe-to-queue.patch` | 278 | added | `Lql0/a;` | +| `gestures/queue/swipe-to-queue.patch` | 282 | added | `Lm3/f$a;` | +| `gestures/queue/swipe-to-queue.patch` | 284 | added | `Lm3/f$a; Lm3/f; a` | +| `gestures/queue/swipe-to-queue.patch` | 288 | added | `Lm3/f; Lcom/aspiro/wamp/playqueue/g1; j` | +| `gestures/queue/swipe-to-queue.patch` | 290 | added | `Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a` | +| `gestures/queue/swipe-to-queue.patch` | 294 | added | `Lcom/aspiro/wamp/player/d; b` | +| `gestures/queue/swipe-to-queue.patch` | 300 | added | `Lm3/f; b` | +| `gestures/queue/swipe-to-queue.patch` | 323 | context | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a; Lcom/aspiro/wamp/nowplaying/view/playqueue/l;` | +| `gestures/queue/swipe-to-queue.patch` | 346 | added | `h` | +| `gestures/queue/swipe-to-queue.patch` | 357 | added | `i` | +| `gestures/queue/swipe-to-queue.patch` | 359 | context | `d` | +| `gestures/queue/swipe-to-queue.patch` | 430 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 443 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 456 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 469 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 482 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | +| `gestures/queue/swipe-to-queue.patch` | 500 | context | `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; M` | +| `integration-waze-playback.patch` | 9 | added | `Lkotlin/jvm/internal/n;` | +| `integration-waze-playback.patch` | 17 | added | `Lkotlin/jvm/internal/n;` | +| `integration-waze-playback.patch` | 35 | added | `Lkotlin/jvm/internal/n;` | +| `integration-waze-playback.patch` | 55 | context | `Lmb/f; c` | +| `lyrics-disable-cover.patch` | 11 | added | `Lcom/tidal/android/feature/playerscreen/ui/b0; Lcom/tidal/android/feature/playerscreen/ui/s$a; b` | +| `lyrics-disable-cover.patch` | 13 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/g; j` | +| `lyrics-disable-cover.patch` | 15 | added | `Lcom/tidal/android/feature/playerscreen/ui/g$a;` | +| `lyrics-disable-cover.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/d; Lam0/l; c` | +| `lyrics-fade-region.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/o1; a` | +| `lyrics-keep-controls-visible.patch` | 28 | added | `Lkotlin/u;` | +| `lyrics-progress-pill.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/g; Lam0/l; a` | +| `lyrics-progress-pill.patch` | 60 | added | `Lam0/a;` | +| `lyrics-progress-pill.patch` | 72 | added | `Lam0/l;` | +| `lyrics-replace-lyrics-button.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/k1; Lam0/a; a` | +| `lyrics-replace-lyrics-button.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/s3; Lam0/a; a` | +| `lyrics-replace-lyrics-button.patch` | 21 | added | `Landroidx/window/embedding/a2;` | +| `lyrics-replace-lyrics-button.patch` | 27 | added | `Landroidx/window/embedding/a2;` | +| `lyrics-replace-lyrics-button.patch` | 35 | added | `Lam0/a;` | +| `lyrics-replace-lyrics-button.patch` | 38 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | +| `lyrics-replace-share-button.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/b; Lam0/a; b` | +| `lyrics-replace-share-button.patch` | 20 | removed | `Lcom/tidal/android/feature/playerscreen/ui/e0;` | +| `lyrics-replace-share-button.patch` | 21 | added | `Landroidx/window/embedding/b2;` | +| `lyrics-replace-share-button.patch` | 26 | removed | `Lcom/tidal/android/feature/playerscreen/ui/e0;` | +| `lyrics-replace-share-button.patch` | 27 | added | `Landroidx/window/embedding/b2;` | +| `lyrics-replace-share-button.patch` | 33 | context | `Lam0/a;` | +| `lyrics-replace-share-button.patch` | 36 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/b; d` | +| `lyrics-replace-share-button.patch` | 42 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/e5; Lam0/a; a` | +| `lyrics-replace-share-button.patch` | 43 | added | `Lcom/tidal/android/feature/playerscreen/ui/b; Lam0/a; b` | +| `lyrics-rl-api-isrc.patch` | 4 | context | `Lcom/tidal/android/tidalapi/domain/model/o;` | +| `lyrics-rl-api-observer.patch` | 10 | context | `a` | +| `lyrics-rl-api-observer.patch` | 34 | context | `Lcom/tidal/android/feature/playerscreen/ui/g$c; c` | +| `lyrics-rl-api-syllable.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/f;` | +| `lyrics-rl-api-syllable.patch` | 23 | context | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | +| `lyrics-rl-api-syllable.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; b` | +| `lyrics-rl-api-syllable.patch` | 29 | added | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | +| `lyrics-rl-api-syllable.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; d` | +| `lyrics-rl-api-syllable.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; e` | +| `lyrics-rl-api-syllable.patch` | 64 | added | `Lam0/l;` | +| `lyrics-rl-api-syllable.patch` | 76 | removed | `Lam0/l;` | +| `lyrics-rl-api-syllable.patch` | 77 | added | `Lam0/l;` | +| `lyrics-rl-api-word.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/f;` | +| `lyrics-rl-api-word.patch` | 23 | context | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | +| `lyrics-rl-api-word.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; b` | +| `lyrics-rl-api-word.patch` | 29 | added | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | +| `lyrics-rl-api-word.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; d` | +| `lyrics-rl-api-word.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; e` | +| `lyrics-rl-api-word.patch` | 52 | removed | `Lam0/l;` | +| `lyrics-rl-api-word.patch` | 53 | added | `Lam0/l;` | +| `lyrics-rl-api.patch` | 77 | context | `P` | +| `lyrics-sparkle-conditional-visibility.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/s3; Lam0/a; a` | +| `lyrics-sparkle-conditional-visibility.patch` | 7 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; i` | +| `lyrics-sparkle-conditional-visibility.patch` | 15 | context | `Landroidx/window/embedding/a2;` | +| `lyrics-sparkle-conditional-visibility.patch` | 20 | context | `Lam0/a;` | +| `lyrics-sparkle-conditional-visibility.patch` | 36 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | +| `mini-player-black.patch` | 56 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/a; c` | +| `mini-player-black.patch` | 71 | context | `Lam0/p;` | +| `mini-player-dynamic-bg.patch` | 14 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/a; c` | +| `mini-player-dynamic-bg.patch` | 20 | context | `W` | +| `mini-player-dynamic-bg.patch` | 22 | added | `Lkotlin/i; Q` | +| `mini-player-dynamic-bg.patch` | 24 | added | `Lkotlin/i;` | +| `mini-player-floating-border.patch` | 9 | added | `Lam0/l;` | +| `mini-player-floating-border.patch` | 14 | context | `Lkotlin/u;` | +| `mini-player-grey.patch` | 58 | context | `Lam0/p;` | +| `player-backdrop-kawarp.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; b` | +| `player-backdrop-kawarp.patch` | 9 | added | `Lam0/a;` | +| `player-backdrop-kawarp.patch` | 36 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; a` | +| `player-backdrop-playback.patch` | 10 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; b` | +| `player-backdrop-playback.patch` | 46 | removed | `Landroidx/compose/foundation/text/input/a;` | +| `player-backdrop-playback.patch` | 73 | context | `Lde0/c; a` | +| `player-backdrop-playback.patch` | 95 | context | `Lcom/squareup/ui/market/layout/e; c` | +| `player-favorite-heart.patch` | 16 | removed | `La30/b; La30/a; O` | +| `player-favorite-heart.patch` | 20 | removed | `La30/a; a` | +| `player-hide-playing-from.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | +| `player-move-playing-from.patch` | 8 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | +| `player-move-playing-from.patch` | 12 | added | `Lcom/tidal/android/feature/playerscreen/ui/p; a` | +| `player-move-playing-from.patch` | 22 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/d; c` | +| `player-move-playing-from.patch` | 29 | context | `Lq20/c2;` | +| `player-move-playing-from.patch` | 61 | added | `Lcom/squareup/ui/market/text/a; Lam0/l; Lq20/c2; e` | +| `player-quality-badge-colors.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/t4; g` | +| `player-quality-badge-colors.patch` | 16 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | +| `player-quality-badge-colors.patch` | 18 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a; b` | +| `player-quality-badge-colors.patch` | 22 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a; a` | +| `player-quality-badge-colors.patch` | 33 | added | `Lq20/c2;` | +| `player-quality-badge-colors.patch` | 55 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | +| `player-quality-badge-colors.patch` | 66 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a; a` | +| `player-quality-badge-colors.patch` | 68 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a; b` | +| `player-quality-badge-colors.patch` | 111 | removed | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | +| `player-quality-badge-colors.patch` | 114 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | diff --git a/patches/data.json b/patches/data.json index 115a790..4ca9b0f 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.2.6" + "patchesVersion": "1.2.7" } diff --git a/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali b/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali index 31a3ff1..a589ddd 100644 --- a/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali +++ b/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali @@ -1,12 +1,12 @@ -.class public final Lcom/tidal/android/feature/appscaffold/ui/r$c; -.super Lcom/tidal/android/feature/appscaffold/ui/r; +.class public final Lcom/tidal/android/feature/appscaffold/ui/r$c; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; +.super Lcom/tidal/android/feature/appscaffold/ui/r; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r; .source "SourceFile" # Synthetic mini-player event used by right swipe (previous/rewind). # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/tidal/android/feature/appscaffold/ui/r; + value = Lcom/tidal/android/feature/appscaffold/ui/r; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -16,18 +16,18 @@ # static fields -.field public static final a:Lcom/tidal/android/feature/appscaffold/ui/r$c; +.field public static final a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lcom/tidal/android/feature/appscaffold/ui/r$c; + new-instance v0, Lcom/tidal/android/feature/appscaffold/ui/r$c; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; - invoke-direct {v0}, Lcom/tidal/android/feature/appscaffold/ui/r;->()V + invoke-direct {v0}, Lcom/tidal/android/feature/appscaffold/ui/r;->()V # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r; - sput-object v0, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; + sput-object v0, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; a return-void .end method @@ -44,7 +44,7 @@ return v0 :cond_0 - instance-of p1, p1, Lcom/tidal/android/feature/appscaffold/ui/r$c; + instance-of p1, p1, Lcom/tidal/android/feature/appscaffold/ui/r$c; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; if-nez p1, :cond_1 diff --git a/patches/extension/radiant/Kawarp.smali b/patches/extension/radiant/Kawarp.smali index 0ad7822..9066ea3 100644 --- a/patches/extension/radiant/Kawarp.smali +++ b/patches/extension/radiant/Kawarp.smali @@ -2,10 +2,10 @@ .super Ljava/lang/Object; # interfaces -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; .implements Ljava/lang/Runnable; .implements Landroid/view/Choreographer$FrameCallback; -.implements Lb0/c; +.implements Lb0/c; # MARKER: R8 Lb0/c; # static fields @@ -31,7 +31,7 @@ .field private static volatile loadToken:I -.field private static volatile loader:Lcoil/f; +.field private static volatile loader:Lcoil/f; # MARKER: R8 Lcoil/f; .field private static volatile requestedUuid:Ljava/lang/String; @@ -100,7 +100,7 @@ .method private static attach(Landroidx/compose/runtime/Composer;)V .registers 3 - sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; + sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; if-eqz v0, :cond_5 @@ -129,7 +129,7 @@ move-result-object p0 - instance-of v0, p0, Lce0/b$a; + instance-of v0, p0, Lce0/b$a; # MARKER: R8 Lce0/b$a; if-nez v0, :cond_1d @@ -138,13 +138,13 @@ :cond_1d move-object v0, p0 - check-cast v0, Lce0/b$a; + check-cast v0, Lce0/b$a; # MARKER: R8 Lce0/b$a; - invoke-interface {v0}, Lce0/b$a;->a()Lce0/b; + invoke-interface {v0}, Lce0/b$a;->a()Lce0/b; # MARKER: R8 Lce0/b$a; Lce0/b; a move-result-object v0 - invoke-interface {v0}, Lce0/b;->a()Lxd0/e; + invoke-interface {v0}, Lce0/b;->a()Lxd0/e; # MARKER: R8 Lce0/b; Lxd0/e; a move-result-object v0 @@ -159,9 +159,9 @@ check-cast v0, Lcom/tidal/android/image/coil/base/CoilImageLoader; - iget-object p0, v0, Lcom/tidal/android/image/coil/base/CoilImageLoader;->a:Lcoil/f; + iget-object p0, v0, Lcom/tidal/android/image/coil/base/CoilImageLoader;->a:Lcoil/f; # MARKER: R8 Lcoil/f; a - sput-object p0, Lradiant/Kawarp;->loader:Lcoil/f; + sput-object p0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; :try_end_35 .catchall {:try_start_5 .. :try_end_35} :catchall_36 @@ -174,7 +174,7 @@ return-void .end method -.method public static b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V +.method public static b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lam0/a; .registers 11 invoke-static {p3, p4, p5, p8, p9}, Lradiant/Kawarp;->render(ILjava/lang/String;ZLandroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)V @@ -471,7 +471,7 @@ sget-object p1, Lradiant/Kawarp;->DRAW:Lradiant/Kawarp; - invoke-static {p0, p1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawBehind(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, p1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawBehind(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -500,7 +500,7 @@ move-object v6, p4 - invoke-static/range {v0 .. v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + invoke-static/range {v0 .. v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; a :goto_42 invoke-interface {v6}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V @@ -530,7 +530,7 @@ goto :goto_28 :cond_11 - sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; + sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; if-nez v0, :cond_16 @@ -725,7 +725,7 @@ invoke-static {p1}, Lradiant/Kawarp;->draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V - sget-object p1, Lkotlin/u;->a:Lkotlin/u; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object p1 .end method @@ -734,11 +734,11 @@ .registers 15 :try_start_0 - new-instance v0, Lxd0/g; + new-instance v0, Lxd0/g; # MARKER: R8 Lxd0/g; sget-object v1, Lradiant/Kawarp;->appContext:Landroid/content/Context; - new-instance v2, Lcom/tidal/android/image/core/b$a; + new-instance v2, Lcom/tidal/android/image/core/b$a; # MARKER: R8 Lcom/tidal/android/image/core/b$a; iget v3, p0, Lradiant/Kawarp;->albumId:I @@ -748,7 +748,7 @@ iget-object v4, p0, Lradiant/Kawarp;->uuid:Ljava/lang/String; - invoke-direct {v2, v3, v4}, Lcom/tidal/android/image/core/b$a;->(Ljava/lang/String;Ljava/lang/String;)V + invoke-direct {v2, v3, v4}, Lcom/tidal/android/image/core/b$a;->(Ljava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/image/core/b$a; const/4 v7, 0x0 @@ -762,57 +762,57 @@ const/4 v6, 0x0 - invoke-direct/range {v0 .. v8}, Lxd0/g;->(Landroid/content/Context;Lcom/tidal/android/image/core/b;Lcom/tidal/android/image/core/b$h$a;Lcom/tidal/android/image/core/b$h$a;ZLjava/util/List;Lxd0/f;Z)V + invoke-direct/range {v0 .. v8}, Lxd0/g;->(Landroid/content/Context;Lcom/tidal/android/image/core/b;Lcom/tidal/android/image/core/b$h$a;Lcom/tidal/android/image/core/b$h$a;ZLjava/util/List;Lxd0/f;Z)V # MARKER: R8 Lxd0/g; Lcom/tidal/android/image/core/b; Lcom/tidal/android/image/core/b$h$a; Lxd0/f; const/4 v1, 0x0 - invoke-static {v0, v1}, Lcom/tidal/android/image/coil/c;->a(Lxd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h; + invoke-static {v0, v1}, Lcom/tidal/android/image/coil/c;->a(Lxd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h; # MARKER: R8 Lcom/tidal/android/image/coil/c; Lxd0/g; Lcoil/request/h; a move-result-object v0 - invoke-static {v0}, Lcoil/request/h;->a(Lcoil/request/h;)Lcoil/request/h$a; + invoke-static {v0}, Lcoil/request/h;->a(Lcoil/request/h;)Lcoil/request/h$a; # MARKER: R8 Lcoil/request/h; Lcoil/request/h$a; a move-result-object v0 - iget-object v1, v0, Lcoil/request/h$a;->b:Lcoil/request/b; + iget-object v1, v0, Lcoil/request/h$a;->b:Lcoil/request/b; # MARKER: R8 Lcoil/request/h$a; Lcoil/request/b; b - new-instance v2, Lcoil/request/b; + new-instance v2, Lcoil/request/b; # MARKER: R8 Lcoil/request/b; - iget-object v3, v1, Lcoil/request/b;->a:Lkotlinx/coroutines/CoroutineDispatcher; + iget-object v3, v1, Lcoil/request/b;->a:Lkotlinx/coroutines/CoroutineDispatcher; # MARKER: R8 Lcoil/request/b; a - iget-object v4, v1, Lcoil/request/b;->b:Lkotlinx/coroutines/CoroutineDispatcher; + iget-object v4, v1, Lcoil/request/b;->b:Lkotlinx/coroutines/CoroutineDispatcher; # MARKER: R8 Lcoil/request/b; b - iget-object v5, v1, Lcoil/request/b;->c:Lkotlinx/coroutines/CoroutineDispatcher; + iget-object v5, v1, Lcoil/request/b;->c:Lkotlinx/coroutines/CoroutineDispatcher; # MARKER: R8 Lcoil/request/b; c - iget-object v6, v1, Lcoil/request/b;->d:Lkotlinx/coroutines/CoroutineDispatcher; + iget-object v6, v1, Lcoil/request/b;->d:Lkotlinx/coroutines/CoroutineDispatcher; # MARKER: R8 Lcoil/request/b; d - iget-object v7, v1, Lcoil/request/b;->e:Ld0/c$a; + iget-object v7, v1, Lcoil/request/b;->e:Ld0/c$a; # MARKER: R8 Lcoil/request/b; Ld0/c$a; e - iget-object v8, v1, Lcoil/request/b;->f:Lcoil/size/Precision; + iget-object v8, v1, Lcoil/request/b;->f:Lcoil/size/Precision; # MARKER: R8 Lcoil/request/b; f - iget-object v9, v1, Lcoil/request/b;->g:Landroid/graphics/Bitmap$Config; + iget-object v9, v1, Lcoil/request/b;->g:Landroid/graphics/Bitmap$Config; # MARKER: R8 Lcoil/request/b; g - iget-boolean v10, v1, Lcoil/request/b;->h:Z + iget-boolean v10, v1, Lcoil/request/b;->h:Z # MARKER: R8 Lcoil/request/b; h - iget-object v11, v1, Lcoil/request/b;->i:Lcoil/request/CachePolicy; + iget-object v11, v1, Lcoil/request/b;->i:Lcoil/request/CachePolicy; # MARKER: R8 Lcoil/request/b; i - iget-object v12, v1, Lcoil/request/b;->j:Lcoil/request/CachePolicy; + iget-object v12, v1, Lcoil/request/b;->j:Lcoil/request/CachePolicy; # MARKER: R8 Lcoil/request/b; j sget-object v13, Lcoil/request/CachePolicy;->DISABLED:Lcoil/request/CachePolicy; - invoke-direct/range {v2 .. v13}, Lcoil/request/b;->(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Ld0/c$a;Lcoil/size/Precision;Landroid/graphics/Bitmap$Config;ZLcoil/request/CachePolicy;Lcoil/request/CachePolicy;Lcoil/request/CachePolicy;)V + invoke-direct/range {v2 .. v13}, Lcoil/request/b;->(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Ld0/c$a;Lcoil/size/Precision;Landroid/graphics/Bitmap$Config;ZLcoil/request/CachePolicy;Lcoil/request/CachePolicy;Lcoil/request/CachePolicy;)V # MARKER: R8 Lcoil/request/b; Ld0/c$a; - iput-object v2, v0, Lcoil/request/h$a;->b:Lcoil/request/b; + iput-object v2, v0, Lcoil/request/h$a;->b:Lcoil/request/b; # MARKER: R8 Lcoil/request/h$a; Lcoil/request/b; b - iput-object p0, v0, Lcoil/request/h$a;->d:Lb0/c; + iput-object p0, v0, Lcoil/request/h$a;->d:Lb0/c; # MARKER: R8 Lcoil/request/h$a; Lb0/c; d - sget-object v1, Lradiant/Kawarp;->loader:Lcoil/f; + sget-object v1, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; - invoke-virtual {v0}, Lcoil/request/h$a;->a()Lcoil/request/h; + invoke-virtual {v0}, Lcoil/request/h$a;->a()Lcoil/request/h; # MARKER: R8 Lcoil/request/h$a; Lcoil/request/h; a move-result-object v0 - invoke-interface {v1, v0}, Lcoil/f;->b(Lcoil/request/h;)Lcoil/request/d; + invoke-interface {v1, v0}, Lcoil/f;->b(Lcoil/request/h;)Lcoil/request/d; # MARKER: R8 Lcoil/f; Lcoil/request/h; Lcoil/request/d; b :try_end_4d .catchall {:try_start_0 .. :try_end_4d} :catchall_4e diff --git a/patches/extension/radiant/MiniPlayerBackground.smali b/patches/extension/radiant/MiniPlayerBackground.smali index 74e4692..ecc933f 100644 --- a/patches/extension/radiant/MiniPlayerBackground.smali +++ b/patches/extension/radiant/MiniPlayerBackground.smali @@ -48,7 +48,7 @@ const/4 v4, 0x1 - invoke-static {v0, v1, p2, v3, v4}, Landroidx/compose/runtime/SnapshotStateKt;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/h;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + invoke-static {v0, v1, p2, v3, v4}, Landroidx/compose/runtime/SnapshotStateKt;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/h;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lkotlin/coroutines/h; move-result-object v0 @@ -91,7 +91,7 @@ const/16 v7, 0x8 - invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lam0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lam0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lam0/l; move-result-object v0 diff --git a/patches/extension/radiant/MiniSeekerFloating.smali b/patches/extension/radiant/MiniSeekerFloating.smali index d0f46df..44d1c98 100644 --- a/patches/extension/radiant/MiniSeekerFloating.smali +++ b/patches/extension/radiant/MiniSeekerFloating.smali @@ -1,7 +1,7 @@ .class public final Lradiant/MiniSeekerFloating; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # static fields @@ -46,7 +46,7 @@ .catch Ljava/lang/Throwable; {:try_start .. :try_end} :swallow :swallow - sget-object v0, Lkotlin/u;->a:Lkotlin/u; # Unit + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # Unit MARKER: R8 Lkotlin/u; return-object v0 .end method diff --git a/patches/extension/radiant/MiniSeekerLine.smali b/patches/extension/radiant/MiniSeekerLine.smali index 2b29518..f4b24b9 100644 --- a/patches/extension/radiant/MiniSeekerLine.smali +++ b/patches/extension/radiant/MiniSeekerLine.smali @@ -5,7 +5,7 @@ # static fields .field public static progressState:Landroidx/compose/runtime/MutableFloatState; -.field public static volatile vm:Lgh/j; +.field public static volatile vm:Lgh/j; # MARKER: R8 Lgh/j; .field public static volatile sub:Lio/reactivex/disposables/Disposable; @@ -57,40 +57,40 @@ :start_block :try_start - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cached vm + sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cached vm MARKER: R8 Lgh/j; if-nez v0, :got_vm # reuse if present - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # app singleton + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # app singleton MARKER: R8 a move-result-object v0 # app - invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; # dagger component + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; # dagger component MARKER: R8 Le5/c; e move-result-object v0 # component - check-cast v0, Le5/z$n2; # narrow type + check-cast v0, Le5/z$n2; # narrow type MARKER: R8 Le5/z$n2; - iget-object v0, v0, Le5/z$n2;->z0:Ldagger/internal/j; # playqueue provider + iget-object v0, v0, Le5/z$n2;->z0:Ldagger/internal/j; # playqueue provider MARKER: R8 Le5/z$n2; Ldagger/internal/j; z0 - invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # resolve + invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # resolve MARKER: R8 Lql0/a; move-result-object v0 # playqueue - check-cast v0, Lcom/aspiro/wamp/playqueue/d1; # narrow type + check-cast v0, Lcom/aspiro/wamp/playqueue/d1; # narrow type MARKER: R8 Lcom/aspiro/wamp/playqueue/d1; - new-instance v1, Lgh/j; # build vm + new-instance v1, Lgh/j; # build vm MARKER: R8 Lgh/j; - invoke-direct {v1, v0}, Lgh/j;->(Lcom/aspiro/wamp/playqueue/d1;)V # ctor + invoke-direct {v1, v0}, Lgh/j;->(Lcom/aspiro/wamp/playqueue/d1;)V # ctor MARKER: R8 Lgh/j; Lcom/aspiro/wamp/playqueue/d1; - sput-object v1, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cache + sput-object v1, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cache MARKER: R8 Lgh/j; :got_vm - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # vm ref + sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # vm ref MARKER: R8 Lgh/j; - invoke-virtual {v0}, Lgh/j;->a()V # activate emission + invoke-virtual {v0}, Lgh/j;->a()V # activate emission MARKER: R8 Lgh/j; a - iget-object v0, v0, Lgh/j;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject + iget-object v0, v0, Lgh/j;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject MARKER: R8 Lgh/j; d invoke-static {}, Lio/reactivex/android/schedulers/AndroidSchedulers;->mainThread()Lio/reactivex/Scheduler; # main scheduler diff --git a/patches/extension/radiant/NoOp.smali b/patches/extension/radiant/NoOp.smali index ebce3a2..673edfa 100644 --- a/patches/extension/radiant/NoOp.smali +++ b/patches/extension/radiant/NoOp.smali @@ -1,6 +1,6 @@ .class public final Lradiant/NoOp; .super Ljava/lang/Object; -.implements Lam0/a; +.implements Lam0/a; # MARKER: R8 Lam0/a; # static fields @@ -33,7 +33,7 @@ .method public final invoke()Ljava/lang/Object; .locals 1 - sget-object v0, Lkotlin/u;->a:Lkotlin/u; + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object v0 .end method diff --git a/patches/extension/radiant/QualityBadge.smali b/patches/extension/radiant/QualityBadge.smali index 504b5e4..be49990 100644 --- a/patches/extension/radiant/QualityBadge.smali +++ b/patches/extension/radiant/QualityBadge.smali @@ -85,15 +85,15 @@ return-object p0 .end method -.method public static style(ILq20/c2;)Lq20/c2; +.method public static style(ILq20/c2;)Lq20/c2; # MARKER: R8 Lq20/c2; .registers 16 invoke-static {p0}, Lradiant/QualityBadge;->textArgb(I)I move-result v0 - new-instance v1, Lf20/a; - invoke-direct {v1, v0}, Lf20/a;->(I)V - new-instance v0, Lf20/d; + new-instance v1, Lf20/a; # MARKER: R8 Lf20/a; + invoke-direct {v1, v0}, Lf20/a;->(I)V # MARKER: R8 Lf20/a; + new-instance v0, Lf20/d; # MARKER: R8 Lf20/d; const/4 v2, 0x0 const/4 v3, 0x0 const/4 v4, 0x0 @@ -107,7 +107,7 @@ const/4 v12, 0x0 const/16 v13, 0xffe const/4 v14, 0x0 - invoke-direct/range {v0 .. v14}, Lf20/d;->(Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct/range {v0 .. v14}, Lf20/d;->(Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V # MARKER: R8 Lf20/d; Lf20/a; move-object v9, v0 move-object/from16 v0, p1 @@ -118,7 +118,7 @@ const/4 v5, 0x0 const/16 v6, 0x1d const/4 v7, 0x0 - invoke-static/range {v0 .. v7}, Lq20/c2;->g(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2; + invoke-static/range {v0 .. v7}, Lq20/c2;->g(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2; # MARKER: R8 Lq20/c2; Lq20/s4; Lf20/d; Lq20/r4; g move-result-object p0 return-object p0 .end method \ No newline at end of file diff --git a/patches/extension/radiant/RLAPILyricsHook.smali b/patches/extension/radiant/RLAPILyricsHook.smali index 0b7eb70..776d702 100644 --- a/patches/extension/radiant/RLAPILyricsHook.smali +++ b/patches/extension/radiant/RLAPILyricsHook.smali @@ -223,7 +223,7 @@ return-void :rl_new_track - iget-object v5, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v5, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; @@ -243,7 +243,7 @@ if-eq p0, v6, :store_keep_open - iget-object v7, v6, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v7, v6, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v7}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; diff --git a/patches/extension/radiant/RLAPILyricsWorker.smali b/patches/extension/radiant/RLAPILyricsWorker.smali index 5be7bb9..daa92ff 100644 --- a/patches/extension/radiant/RLAPILyricsWorker.smali +++ b/patches/extension/radiant/RLAPILyricsWorker.smali @@ -63,7 +63,7 @@ iget-object v1, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v2, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v2, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P sget-object v3, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; @@ -82,15 +82,15 @@ if-ne v0, v1, :not_current - iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->a:Lbi/e; + iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->a:Lbi/e; # MARKER: R8 Lbi/e; a - invoke-interface {v1}, Lbi/e;->getCurrentItem()Lcom/aspiro/wamp/playqueue/u0; + invoke-interface {v1}, Lbi/e;->getCurrentItem()Lcom/aspiro/wamp/playqueue/u0; # MARKER: R8 Lbi/e; Lcom/aspiro/wamp/playqueue/u0; move-result-object v1 if-eqz v1, :not_current - invoke-interface {v1}, Lcom/aspiro/wamp/playqueue/u0;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; + invoke-interface {v1}, Lcom/aspiro/wamp/playqueue/u0;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Lcom/aspiro/wamp/playqueue/u0; move-result-object v1 @@ -506,9 +506,9 @@ move-wide v7, v11 :no_syl - new-instance v4, Lcom/tidal/android/feature/playerscreen/ui/f; + new-instance v4, Lcom/tidal/android/feature/playerscreen/ui/f; # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/f; - invoke-direct {v4, v5, v7, v8}, Lcom/tidal/android/feature/playerscreen/ui/f;->(Ljava/lang/String;J)V + invoke-direct {v4, v5, v7, v8}, Lcom/tidal/android/feature/playerscreen/ui/f;->(Ljava/lang/String;J)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/f; invoke-virtual {v2, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z @@ -855,9 +855,9 @@ iget-object v4, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 O - invoke-static {v3}, Lvn0/a;->c(Ljava/lang/Iterable;)Lvn0/b; + invoke-static {v3}, Lvn0/a;->c(Ljava/lang/Iterable;)Lvn0/b; # MARKER: R8 Lvn0/a; Lvn0/b; c move-result-object v6 @@ -868,13 +868,13 @@ const-string v7, "" :have_id - new-instance v8, Lcom/tidal/android/feature/playerscreen/ui/g$c; + new-instance v8, Lcom/tidal/android/feature/playerscreen/ui/g$c; # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/g$c; const/4 v9, -0x1 const/4 v10, 0x0 - invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Lvn0/b;IZ)V + invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Lvn0/b;IZ)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/g$c; Lvn0/b; const-string v6, "publishing g$c -> K=true (O=true if sticky) N=g$c" @@ -886,7 +886,7 @@ sput-boolean v6, Lradiant/RLAPILyricsHook;->isRlState:Z - iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->K:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->K:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 K sget-object v7, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; @@ -902,7 +902,7 @@ :open_lyrics - iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v6, v7}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V diff --git a/patches/extension/radiant/SeekerConsumer.smali b/patches/extension/radiant/SeekerConsumer.smali index ed33c90..d2caf5d 100644 --- a/patches/extension/radiant/SeekerConsumer.smali +++ b/patches/extension/radiant/SeekerConsumer.smali @@ -20,13 +20,13 @@ if-eqz p1, :ret # null guard - instance-of v0, p1, Lgh/b; # type guard + instance-of v0, p1, Lgh/b; # type guard MARKER: R8 Lgh/b; if-eqz v0, :ret # skip if wrong type - check-cast p1, Lgh/b; # narrow type + check-cast p1, Lgh/b; # narrow type MARKER: R8 Lgh/b; - iget v0, p1, Lgh/b;->b:F # raw progress + iget v0, p1, Lgh/b;->b:F # raw progress MARKER: R8 Lgh/b; b invoke-static {v0}, Ljava/lang/Float;->isNaN(F)Z # nan check diff --git a/patches/extension/radiant/SparkleButton.smali b/patches/extension/radiant/SparkleButton.smali index f6cd728..a6ba964 100644 --- a/patches/extension/radiant/SparkleButton.smali +++ b/patches/extension/radiant/SparkleButton.smali @@ -4,7 +4,7 @@ # direct methods -.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V +.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # MARKER: R8 Lam0/a; .locals 21 .annotation build Landroidx/compose/runtime/Composable; .end annotation @@ -94,11 +94,11 @@ invoke-static {v2, v3, v4, v5}, Landroidx/compose/runtime/ComposerKt;->traceEventStart(IIILjava/lang/String;)V :cond_3 - sget-object v2, Lcom/squareup/ui/market/core/theme/k;->e:Lcom/squareup/ui/market/core/theme/k$a; + sget-object v2, Lcom/squareup/ui/market/core/theme/k;->e:Lcom/squareup/ui/market/core/theme/k$a; # MARKER: R8 Lcom/squareup/ui/market/core/theme/k; Lcom/squareup/ui/market/core/theme/k$a; e const/4 v4, 0x6 - invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/z;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; + invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/z;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; # MARKER: R8 Lcom/squareup/ui/market/core/theme/z; Lcom/squareup/ui/market/core/theme/k$a; t move-result-object v15 @@ -131,7 +131,7 @@ const/16 v18, 0x0 - invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1; + invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1; # MARKER: R8 Lq20/u1; P move-result-object v4 @@ -140,7 +140,7 @@ :cond_5 move-object v9, v4 - check-cast v9, Lq20/u1; + check-cast v9, Lq20/u1; # MARKER: R8 Lq20/u1; sget v2, Lcom/tidal/android/feature/playerscreen/ui/R$string;->lyrics:I @@ -150,7 +150,7 @@ move v4, v3 - invoke-static {v14}, Lcom/tidal/android/feature/playerscreen/ui/composables/anim/BouncePressKt;->a(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; + invoke-static {v14}, Lcom/tidal/android/feature/playerscreen/ui/composables/anim/BouncePressKt;->a(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # MARKER: R8 a move-result-object v3 @@ -172,7 +172,7 @@ const/4 v8, 0x0 - invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->b(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V + invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->b(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V # MARKER: R8 Lam0/a; Lcom/squareup/ui/market/components/n; Lq20/u1; Lam0/p; b invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z diff --git a/patches/extension/radiant/SparkleContent.smali b/patches/extension/radiant/SparkleContent.smali index 3446db9..e8c84b7 100644 --- a/patches/extension/radiant/SparkleContent.smali +++ b/patches/extension/radiant/SparkleContent.smali @@ -3,7 +3,7 @@ .source "SourceFile" # interfaces -.implements Lam0/p; +.implements Lam0/p; # MARKER: R8 Lam0/p; # virtual methods diff --git a/patches/extension/radiant/SpvFactory.smali b/patches/extension/radiant/SpvFactory.smali index 932b5b8..d58fc91 100644 --- a/patches/extension/radiant/SpvFactory.smali +++ b/patches/extension/radiant/SpvFactory.smali @@ -1,6 +1,6 @@ .class public final Lradiant/SpvFactory; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # static fields diff --git a/patches/extension/radiant/SylLayout.smali b/patches/extension/radiant/SylLayout.smali index 4599fe5..550cd29 100644 --- a/patches/extension/radiant/SylLayout.smali +++ b/patches/extension/radiant/SylLayout.smali @@ -2,7 +2,7 @@ .super Ljava/lang/Object; # interfaces -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # Remembers where each line's glyphs landed @@ -31,7 +31,7 @@ # One reusable callback per line -.method public static cb(I)Lam0/l; +.method public static cb(I)Lam0/l; # MARKER: R8 Lam0/l; .locals 5 if-gez p0, :have_idx @@ -258,7 +258,7 @@ aput-object p1, v1, v0 :ret - sget-object v0, Lkotlin/u;->a:Lkotlin/u; + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object v0 .end method diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali deleted file mode 100644 index 0007797..0000000 --- a/patches/extension/radiant/gestures/MiniPlayerGestures$Gesture.smali +++ /dev/null @@ -1,521 +0,0 @@ -.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 deleted file mode 100644 index 54fd219..0000000 --- a/patches/extension/radiant/gestures/MiniPlayerGestures$RootGesture.smali +++ /dev/null @@ -1,178 +0,0 @@ -.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/gestures/MiniPlayerTrackGestures$OffsetLayer.smali b/patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali deleted file mode 100644 index e0e260c..0000000 --- a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali +++ /dev/null @@ -1,70 +0,0 @@ -.class public final Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; -.super Ljava/lang/Object; -.implements Lam0/l; - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerTrackGestures; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x19 - name = "OffsetLayer" -.end annotation - - -# static fields -.field public static final INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; - - -# direct methods -.method static constructor ()V - .locals 1 - - new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; - - invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->()V - - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; - - return-void -.end method - -.method private constructor ()V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - - -# virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; - .locals 1 - - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; - - invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F - - move-result v0 - - invoke-interface {p1, v0}, Landroidx/compose/ui/graphics/GraphicsLayerScope;->setTranslationX(F)V - - 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, Landroidx/compose/ui/graphics/GraphicsLayerScope; - - invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; - - move-result-object p1 - - return-object p1 -.end method diff --git a/patches/extension/radiant/gestures/LyricsDrag$Guard.smali b/patches/extension/radiant/gestures/lyrics/LyricsDrag$Guard.smali similarity index 63% rename from patches/extension/radiant/gestures/LyricsDrag$Guard.smali rename to patches/extension/radiant/gestures/lyrics/LyricsDrag$Guard.smali index a85b17a..42bb36a 100644 --- a/patches/extension/radiant/gestures/LyricsDrag$Guard.smali +++ b/patches/extension/radiant/gestures/lyrics/LyricsDrag$Guard.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/gestures/LyricsDrag$Guard; +.class public final Lradiant/gestures/lyrics/LyricsDrag$Guard; .super Ljava/lang/Object; # interfaces @@ -9,17 +9,17 @@ # static state -.field public static final INSTANCE:Lradiant/gestures/LyricsDrag$Guard; +.field public static final INSTANCE:Lradiant/gestures/lyrics/LyricsDrag$Guard; .method static constructor ()V .locals 1 - new-instance v0, Lradiant/gestures/LyricsDrag$Guard; + new-instance v0, Lradiant/gestures/lyrics/LyricsDrag$Guard; - invoke-direct {v0}, Lradiant/gestures/LyricsDrag$Guard;->()V + invoke-direct {v0}, Lradiant/gestures/lyrics/LyricsDrag$Guard;->()V - sput-object v0, Lradiant/gestures/LyricsDrag$Guard;->INSTANCE:Lradiant/gestures/LyricsDrag$Guard; + sput-object v0, Lradiant/gestures/lyrics/LyricsDrag$Guard;->INSTANCE:Lradiant/gestures/lyrics/LyricsDrag$Guard; return-void .end method @@ -42,7 +42,7 @@ return-wide p3 .end method -.method public onPostFling-RZ2iAVY(JJLkotlin/coroutines/e;)Ljava/lang/Object; +.method public onPostFling-RZ2iAVY(JJLkotlin/coroutines/e;)Ljava/lang/Object; # MARKER: R8 Lkotlin/coroutines/e; .locals 2 invoke-static {p3, p4}, Landroidx/compose/ui/unit/Velocity;->box-impl(J)Landroidx/compose/ui/unit/Velocity; diff --git a/patches/extension/radiant/gestures/LyricsDrag.smali b/patches/extension/radiant/gestures/lyrics/LyricsDrag.smali similarity index 80% rename from patches/extension/radiant/gestures/LyricsDrag.smali rename to patches/extension/radiant/gestures/lyrics/LyricsDrag.smali index d80bac7..ba94cb7 100644 --- a/patches/extension/radiant/gestures/LyricsDrag.smali +++ b/patches/extension/radiant/gestures/lyrics/LyricsDrag.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/gestures/LyricsDrag; +.class public final Lradiant/gestures/lyrics/LyricsDrag; .super Ljava/lang/Object; # Stops lyrics scroll dismissing the player @@ -16,7 +16,7 @@ .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; + sget-object v0, Lradiant/gestures/lyrics/LyricsDrag$Guard;->INSTANCE:Lradiant/gestures/lyrics/LyricsDrag$Guard; const/4 v1, 0x0 diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali similarity index 50% rename from patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali index e2b20da..79533c5 100644 --- a/patches/extension/radiant/gestures/MiniPlayerGestures$ApplyPending.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali @@ -1,10 +1,10 @@ -.class public final Lradiant/gestures/MiniPlayerGestures$ApplyPending; +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending; .super Ljava/lang/Object; .implements Ljava/lang/Runnable; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -25,9 +25,9 @@ invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; - iput p2, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->b:I + iput p2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending;->b:I return-void .end method @@ -39,23 +39,23 @@ .method public final run()V .locals 3 - iget-object v0, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending;->a:Landroidx/compose/material3/SheetState; - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V - iget v1, p0, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->b:I + iget v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending;->b:I add-int/lit8 v1, v1, -0x1 if-lez v1, :done - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->needsApply(Landroidx/compose/material3/SheetState;)Z + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->needsApply(Landroidx/compose/material3/SheetState;)Z move-result v2 if-eqz v2, :done - invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V :done return-void diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali similarity index 50% rename from patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali index e344d11..c90829b 100644 --- a/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,18 +15,18 @@ # static fields -.field public static final INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; +.field public static final INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; - invoke-direct {v0}, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->()V + invoke-direct {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer;->()V - sput-object v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; return-void .end method @@ -41,10 +41,10 @@ # virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; +.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -52,7 +52,7 @@ invoke-interface {p1, v0}, Landroidx/compose/ui/graphics/GraphicsLayerScope;->setTranslationY(F)V - sget-object p1, Lkotlin/u;->a:Lkotlin/u; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object p1 .end method @@ -62,7 +62,7 @@ check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; - invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali similarity index 73% rename from patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali index b957874..09810bc 100644 --- a/patches/extension/radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/gestures/MiniPlayerGestures$FeedbackResetAnimator; +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator; .super Ljava/lang/Object; .implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -41,7 +41,7 @@ move-result v1 - invoke-static {v1}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V invoke-virtual {v0}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F @@ -53,7 +53,7 @@ if-gez v1, :done - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clearSwipeFeedbackAnimator(Landroid/animation/ValueAnimator;)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->clearSwipeFeedbackAnimator(Landroid/animation/ValueAnimator;)V :done return-void diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali new file mode 100644 index 0000000..908604e --- /dev/null +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali @@ -0,0 +1,521 @@ +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture; +.super Ljava/lang/Object; +.implements Lam0/l; # MARKER: R8 Lam0/l; + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/gestures/miniplayer/MiniPlayerGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "Gesture" +.end annotation + + +# instance fields +.field public final a:Lam0/l; # MARKER: R8 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 # MARKER: R8 Lam0/l; + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iput-boolean p3, p0, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + invoke-static {v0, p1, p2, p3}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v0, v1, p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; + + return-void +.end method + +.method private openPlayer()V + .locals 2 + + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$b; a + + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + return-void +.end method + +.method private reset()V + .locals 1 + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->d:Z + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->j:Z + + const/4 v0, 0x0 + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->i:F + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->g:F + + return-void +.end method + +.method private startSheet(FJ)V + .locals 2 + + # empty player guard + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->hasMiniPlayerMedia()Z + + move-result v0 + + if-nez v0, :start_guard + + return-void + + :start_guard + + # avoid starting twice + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :start + + return-void + + :start + const/4 v0, 0x1 + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->b:F + + invoke-static {v1, p1, v0, p2, p3}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->beginDrag(Landroidx/compose/material3/SheetState;FFJ)V + + invoke-direct {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->openPlayer()V + + :done + return-void +.end method + + +# virtual methods +# Listens for MotionEvents +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 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/miniplayer/MiniPlayerGestures;->resetGestureLock()V + + invoke-static {p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->beginMotion(Landroid/view/MotionEvent;)V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->b:F + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->c:F + + const/4 v0, 0x1 + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->d:Z + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + const/4 v0, 0x0 + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->g:F + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawX()F + + move-result v0 + + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->i:F + + const/4 v0, 0x0 + + iput-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->j:Z + + iget v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->b:F + + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->beginSwipeGesture(F)V + + :skip_feedback_down + + goto :done + + # ACTION_MOVE + :move + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->d:Z + + if-eqz v0, :done + + invoke-static {p1}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures$Gesture;->c:F + + sub-float v1, v0, v1 + + iput v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->g:F + + iget v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->b:F + + sub-float v2, v0, v2 + + iget-boolean v3, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v3, :maybe_start + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->suppressHorizontalGestures()V + + iget-boolean v3, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v3, :feedback_active + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->dragSheet(FJ)V + + :feedback_active + invoke-static {v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + + goto :store_last + + :maybe_start + iget-boolean v3, p0, Lradiant/gestures/miniplayer/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/miniplayer/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/miniplayer/MiniPlayerGestures$Gesture;->dp(F)F + + move-result v9 + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isHorizontalGestureLocked()Z + + move-result v10 + + if-eqz v10, :horizontal_check + + const/4 v10, 0x0 + + invoke-static {v10}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures;->lockHorizontalGesture()Z + + move-result v10 + + if-eqz v10, :store_last + + const/4 v10, 0x1 + + iput-boolean v10, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->j:Z + + const/4 v10, 0x0 + + invoke-static {v10}, Lradiant/gestures/miniplayer/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/miniplayer/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/miniplayer/MiniPlayerGestures;->lockVerticalGesture()Z + + move-result v10 + + if-eqz v10, :store_last + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->startSheet(FJ)V + + iget-boolean v10, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v10, :store_last + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->suppressHorizontalGestures()V + + iget-boolean v10, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v10, :feedback_begin + + invoke-direct {p0, v2, v5, v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->dragSheet(FJ)V + + :feedback_begin + invoke-static {v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + + + :store_last + iput v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->c:F + + goto :done + + # ACTION_UP + :up + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->d:Z + + if-eqz v0, :done + + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :up_no_drag + + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->k:Z + + if-eqz v0, :open_simple + + invoke-static {p1}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + invoke-static {v1, v0, v5, v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + invoke-static {v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F + + move-result v0 + + invoke-direct {p0, v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->finishSheet(F)V + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :finish + + :up_no_drag + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :finish + + :open_simple + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->suppressHorizontalGestures()V + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v0 + + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v1, v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + + :finish + invoke-direct {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->reset()V + + goto :done + + # ACTION_CANCEL + :cancel + iget-boolean v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->e:Z + + if-eqz v0, :cancel_no_active + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; + + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; + + goto :cancel_reset + + :cancel_no_active + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + :cancel_reset + invoke-direct {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->reset()V + + + :done + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 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/miniplayer/MiniPlayerGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali new file mode 100644 index 0000000..003fb44 --- /dev/null +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali @@ -0,0 +1,178 @@ +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture; +.super Ljava/lang/Object; +.implements Lam0/l; # MARKER: R8 Lam0/l; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/gestures/miniplayer/MiniPlayerGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "RootGesture" +.end annotation + + +# instance fields +.field public final a:Lam0/l; # MARKER: R8 Lam0/l; + +.field public final b:Landroidx/compose/material3/SheetState; + + +# direct methods +.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lam0/l; + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; + + return-void +.end method + + +# virtual methods +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; + .locals 6 + + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; + + invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I + + move-result v1 + + invoke-static {v0}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures;->resetGestureLock()V + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + :simple_move + invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F + + move-result v1 + + invoke-static {v1}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + + # ACTION_MOVE + :move + invoke-static {p1}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + goto :done + + # ACTION_UP + :up + invoke-static {p1}, Lradiant/gestures/miniplayer/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/miniplayer/MiniPlayerGestures;->updateDragToYTimed(Landroidx/compose/material3/SheetState;FJ)V + + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->releaseVelocity(Landroidx/compose/material3/SheetState;)F + + move-result v1 + + iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v0, v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + goto :done + + # ACTION_CANCEL + :cancel + iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {v0, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; + + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V + + :done + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 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/miniplayer/MiniPlayerGestures$RootGesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/gestures/MiniPlayerGestures.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali similarity index 59% rename from patches/extension/radiant/gestures/MiniPlayerGestures.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali index 2b95ac1..51ca860 100644 --- a/patches/extension/radiant/gestures/MiniPlayerGestures.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/gestures/MiniPlayerGestures; +.class public final Lradiant/gestures/miniplayer/MiniPlayerGestures; .super Ljava/lang/Object; @@ -23,7 +23,7 @@ .field private static g:Landroidx/compose/material3/SheetState; # Material3 settle lambda -.field private static h:Lam0/l; +.field private static h:Lam0/l; # MARKER: R8 Lam0/l; # Latest MotionEvent eventTime for drag updates .field private static i:J @@ -51,7 +51,7 @@ .field private static r:Z # AppScaffold context -.field private static s:Lam0/l; +.field private static s:Lam0/l; # MARKER: R8 Lam0/l; .field private static t:Landroidx/compose/material3/SheetState; @@ -82,7 +82,7 @@ move-result-object v0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sput-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :read_offset @@ -106,10 +106,10 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :read_offset - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures$FeedbackResetAnimator; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator; - invoke-direct {v0}, Lradiant/gestures/MiniPlayerGestures$FeedbackResetAnimator;->()V + invoke-direct {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator;->()V invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - sput-object v1, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; invoke-virtual {v1}, Landroid/animation/ValueAnimator;->start()V return-void :snap_zero - invoke-static {v3}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v3}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -176,7 +176,7 @@ .method public static beginSwipeFeedback()V .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :zero @@ -184,12 +184,12 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -197,13 +197,13 @@ .method public static beginSwipeGesture(F)V .locals 1 - sput p0, Lradiant/gestures/MiniPlayerGestures;->y:F + sput p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->y:F const/4 v0, 0x0 - sput v0, Lradiant/gestures/MiniPlayerGestures;->z:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->z:F - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->beginSwipeFeedback()V + invoke-static {}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-eqz v0, :done - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->e:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->e:F - sget v1, Lradiant/gestures/MiniPlayerGestures;->c:F + sget v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F add-float/2addr v0, v1 sub-float/2addr v0, v4 - sget v1, Lradiant/gestures/MiniPlayerGestures;->d:F + sget v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->d:F sub-float v2, v0, v1 @@ -260,11 +260,11 @@ move-result v2 - sget v0, Lradiant/gestures/MiniPlayerGestures;->d:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->d:F add-float/2addr v0, v2 - sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; const/4 v0, 0x1 - sput-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z - sput p1, Lradiant/gestures/MiniPlayerGestures;->c:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; - sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->d:F - sput p2, Lradiant/gestures/MiniPlayerGestures;->e:F + sput p2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->e:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->f:F - sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->j:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->l:F - sget v0, Lradiant/gestures/MiniPlayerGestures;->n:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->n:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->m:F - sput-wide p3, Lradiant/gestures/MiniPlayerGestures;->i:J + sput-wide p3, Lradiant/gestures/miniplayer/MiniPlayerGestures;->i:J - sput-wide p3, Lradiant/gestures/MiniPlayerGestures;->k:J + sput-wide p3, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J # Try immediately then retry because anchors can be created one frame later - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/16 v0, 0xa - invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-eqz v0, :obtain @@ -365,7 +365,7 @@ move-result-object v0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; const/4 v1, 0x0 @@ -373,15 +373,15 @@ move-result v1 - sput v1, Lradiant/gestures/MiniPlayerGestures;->p:I + sput v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->p:I - invoke-static {v0, p0}, Lradiant/gestures/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V + invoke-static {v0, p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V invoke-virtual {p0}, Landroid/view/MotionEvent;->getRawX()F move-result v1 - sput v1, Lradiant/gestures/MiniPlayerGestures;->n:F + sput v1, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :done const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z - sput v0, Lradiant/gestures/MiniPlayerGestures;->c:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->d:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->d:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->e:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->e:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->f:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->j:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->j:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->l:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->m:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->n:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->n:F - sget-object v2, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-eqz v2, :motion_recycled @@ -421,71 +421,71 @@ const/4 v2, 0x0 - sput-object v2, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; :motion_recycled const/4 v1, 0x0 - sput-object v1, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sput-object v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; const-wide/16 v0, 0x0 - sput-wide v0, Lradiant/gestures/MiniPlayerGestures;->k:J + sput-wide v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J :done return-void .end method -.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V +.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; .locals 1 - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result v0 if-eqz v0, :done - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/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; + sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$a; a - invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; :done return-void .end method -.method public static finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V +.method public static finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; .locals 6 - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result v0 if-eqz v0, :done - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; if-ne v0, p0, :fallback_snap - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; if-eqz v0, :fallback_snap - invoke-static {p0, p2}, Lradiant/gestures/MiniPlayerGestures;->prepareSettleVelocity(Landroidx/compose/material3/SheetState;F)F + invoke-static {p0, p2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->prepareSettleVelocity(Landroidx/compose/material3/SheetState;F)F move-result p2 :native_settle - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V invoke-static {p2}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p0 - invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; goto/16 :done @@ -578,18 +578,18 @@ invoke-static {v0, v3}, Landroidx/compose/material3/internal/AnchoredDraggableState;->access$setLastVelocity(Landroidx/compose/material3/internal/AnchoredDraggableState;F)V - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->endDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/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; + sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$a; a - invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; :done return-void @@ -598,11 +598,11 @@ .method public static isDragging(Landroidx/compose/material3/SheetState;)Z .locals 1 - sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-nez v0, :yes - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isHorizontalGestureSuppressed()Z + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isHorizontalGestureSuppressed()Z move-result v0 @@ -638,7 +638,7 @@ .method public static isHorizontalGestureSuppressed()Z .locals 2 - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x1 @@ -657,7 +657,7 @@ .method public static isHorizontalGestureLocked()Z .locals 2 - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -676,7 +676,7 @@ .method public static lockHorizontalGesture()Z .locals 2 - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x1 @@ -689,7 +689,7 @@ :lock const/4 v0, 0x2 - sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v0, 0x1 @@ -702,11 +702,11 @@ const/4 v0, 0x0 - sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I - sput v0, Lradiant/gestures/MiniPlayerGestures;->y:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->y:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->z:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->z:F return-void .end method @@ -714,7 +714,7 @@ .method public static lockVerticalGesture()Z .locals 2 - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -727,7 +727,7 @@ :lock const/4 v0, 0x1 - sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I return v0 .end method @@ -735,7 +735,7 @@ .method public static hasMiniPlayerMedia()Z .locals 1 - sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->r:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->r:Z return v0 .end method @@ -743,19 +743,19 @@ .method public static setHasMiniPlayerMedia(Z)V .locals 0 - sput-boolean p0, Lradiant/gestures/MiniPlayerGestures;->r:Z + sput-boolean p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->r:Z return-void .end method -.method public static configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V +.method public static configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lam0/l; .locals 0 - sput-object p0, Lradiant/gestures/MiniPlayerGestures;->s:Lam0/l; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lam0/l; # MARKER: R8 Lam0/l; - sput-object p1, Lradiant/gestures/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + sput-object p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; - sput-boolean p2, Lradiant/gestures/MiniPlayerGestures;->u:Z + sput-boolean p2, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-ne v0, p0, :done const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; :done return-void @@ -796,9 +796,9 @@ .method public static feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/MiniPlayerGestures$FeedbackLayer; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -812,7 +812,7 @@ move-result v0 - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->minFlingVelocity()F + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->minFlingVelocity()F move-result v1 @@ -848,14 +848,14 @@ return p0 .end method -.method public static modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; +.method public static modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; .locals 1 - new-instance v0, Lradiant/gestures/MiniPlayerGestures$Gesture; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture; - invoke-direct {v0, p1, p2, p3}, Lradiant/gestures/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V + invoke-direct {v0, p1, p2, p3}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lam0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -865,17 +865,17 @@ .method public static trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 3 - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->s:Lam0/l; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lam0/l; # MARKER: R8 Lam0/l; if-eqz v0, :done - sget-object v1, Lradiant/gestures/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; + sget-object v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; if-eqz v1, :done - sget-boolean v2, Lradiant/gestures/MiniPlayerGestures;->u:Z + sget-boolean v2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->u:Z - 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; + invoke-static {p0, v0, v1, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -892,7 +892,7 @@ if-gtz v0, :snap_zero - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; if-eqz v0, :rubber_band @@ -900,7 +900,7 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->w:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->dp(F)F + invoke-static {v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->dp(F)F move-result v1 @@ -936,12 +936,12 @@ neg-float p0, v0 :publish - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void :snap_zero - invoke-static {v4}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v4}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method @@ -949,7 +949,7 @@ .method public static setSwipeFeedbackFromDrag(F)V .locals 3 - sput p0, Lradiant/gestures/MiniPlayerGestures;->z:F + sput p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->z:F const/4 v0, 0x0 @@ -957,14 +957,14 @@ if-ltz v1, :maybe_up - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void :maybe_up const/high16 v0, 0x40c00000 # 6.0f feedback deadzone - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->dp(F)F + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->dp(F)F move-result v0 @@ -976,44 +976,44 @@ add-float/2addr p0, v0 - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedback(F)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedback(F)V return-void :snap_zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V return-void .end method -.method public static completeSimpleSwipe(Lam0/l;F)Z +.method public static completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; .locals 4 - sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->u:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->u:Z if-nez v0, :no - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x1 if-ne v0, v1, :no - sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->r:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->r:Z if-eqz v0, :consume_no - sget v0, Lradiant/gestures/MiniPlayerGestures;->y:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->y:F sub-float/2addr p1, v0 - sput p1, Lradiant/gestures/MiniPlayerGestures;->z:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->z:F const/high16 v0, 0x42400000 # 48.0f release threshold - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->dp(F)F + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->dp(F)F move-result v0 @@ -1024,18 +1024,18 @@ if-lez v2, :open :consume_no - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->resetGestureLock()V const/4 v0, 0x0 return v0 :open - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->resetGestureLock()V - sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; + sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$b; a - invoke-interface {p0, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p0, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; const/4 v0, 0x1 @@ -1050,21 +1050,21 @@ .method public static updateSimpleSwipe(F)Z .locals 3 - sget-boolean v0, Lradiant/gestures/MiniPlayerGestures;->u:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->u:Z if-nez v0, :no - sget v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x1 if-ne v0, v1, :no - sget v0, Lradiant/gestures/MiniPlayerGestures;->y:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->y:F sub-float/2addr p0, v0 - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V const/4 v0, 0x1 @@ -1079,7 +1079,7 @@ .method public static setSwipeFeedbackDirect(F)V .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->x:I + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->x:I const/4 v1, 0x2 @@ -1100,7 +1100,7 @@ :lock const/4 v0, 0x1 - sput v0, Lradiant/gestures/MiniPlayerGestures;->x:I + sput v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z move-result p0 if-eqz p0, :zero - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->p:I + sget v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->p:I invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->getYVelocity(I)F move-result p0 - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result p0 - sget v1, Lradiant/gestures/MiniPlayerGestures;->p:I + sget v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->p:I invoke-virtual {v0, v1}, Landroid/view/VelocityTracker;->getXVelocity(I)F move-result v0 - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result v0 goto :have_velocity :sampled_velocity - sget p0, Lradiant/gestures/MiniPlayerGestures;->f:F + sget p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->f:F - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result p0 - sget v0, Lradiant/gestures/MiniPlayerGestures;->l:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->l:F - invoke-static {v0}, Lradiant/gestures/MiniPlayerGestures;->clampReleaseVelocity(F)F + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->clampReleaseVelocity(F)F move-result v0 @@ -1307,26 +1307,26 @@ return p0 .end method -.method public static rootModifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; +.method public static rootModifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; .locals 1 - new-instance v0, Lradiant/gestures/MiniPlayerGestures$RootGesture; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture; - invoke-direct {v0, p1, p2}, Lradiant/gestures/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V + invoke-direct {v0, p1, p2}, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lam0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 return-object p0 .end method -.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V +.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; .locals 0 - sput-object p0, Lradiant/gestures/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object p1, Lradiant/gestures/MiniPlayerGestures;->h:Lam0/l; + sput-object p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; return-void .end method @@ -1334,7 +1334,7 @@ .method public static trackMotion(Landroid/view/MotionEvent;)V .locals 2 - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; if-nez v0, :have_tracker @@ -1342,16 +1342,16 @@ move-result-object v0 - sput-object v0, Lradiant/gestures/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->o:Landroid/view/VelocityTracker; :have_tracker - invoke-static {v0, p0}, Lradiant/gestures/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V + invoke-static {v0, p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->addRawMovement(Landroid/view/VelocityTracker;Landroid/view/MotionEvent;)V invoke-virtual {p0}, Landroid/view/MotionEvent;->getRawX()F move-result v1 - sput v1, Lradiant/gestures/MiniPlayerGestures;->n:F + sput v1, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :no - sget v0, Lradiant/gestures/MiniPlayerGestures;->c:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F - sget v1, Lradiant/gestures/MiniPlayerGestures;->d:F + sget v1, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures$ApplyPending; + new-instance v1, Lradiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending; - invoke-direct {v1, p0, p1}, Lradiant/gestures/MiniPlayerGestures$ApplyPending;->(Landroidx/compose/material3/SheetState;I)V + invoke-direct {v1, p0, p1}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-eqz v0, :done - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :done - sget v0, Lradiant/gestures/MiniPlayerGestures;->c:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F sub-float v0, p1, v0 @@ -1439,11 +1439,11 @@ if-eqz v1, :no_movement - sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->i:J + sput-wide p2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->i:J - sput p1, Lradiant/gestures/MiniPlayerGestures;->c:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->c:F - sget-wide v1, Lradiant/gestures/MiniPlayerGestures;->k:J + sget-wide v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J sub-long v1, p2, v1 @@ -1454,7 +1454,7 @@ if-gez v5, :apply :sample_velocity - sget v0, Lradiant/gestures/MiniPlayerGestures;->j:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->j:F sub-float v0, p1, v0 @@ -1462,9 +1462,9 @@ const/high16 v2, 0x447a0000 # 1000.0f - sget v6, Lradiant/gestures/MiniPlayerGestures;->n:F + sget v6, Lradiant/gestures/miniplayer/MiniPlayerGestures;->n:F - sget v7, Lradiant/gestures/MiniPlayerGestures;->m:F + sget v7, Lradiant/gestures/miniplayer/MiniPlayerGestures;->m:F sub-float v6, v6, v7 @@ -1497,7 +1497,7 @@ move v0, v1 :store_velocity - sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->f:F const v1, 0x469c4000 # 20000.0f @@ -1520,20 +1520,20 @@ move v6, v1 :store_x_velocity - sput v6, Lradiant/gestures/MiniPlayerGestures;->l:F + sput v6, Lradiant/gestures/miniplayer/MiniPlayerGestures;->l:F - sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->j:F - sget v6, Lradiant/gestures/MiniPlayerGestures;->n:F + sget v6, Lradiant/gestures/miniplayer/MiniPlayerGestures;->n:F - sput v6, Lradiant/gestures/MiniPlayerGestures;->m:F + sput v6, Lradiant/gestures/miniplayer/MiniPlayerGestures;->m:F - sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->k:J + sput-wide p2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J goto :apply :no_movement - sget-wide v1, Lradiant/gestures/MiniPlayerGestures;->k:J + sget-wide v1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J sub-long v1, p2, v1 @@ -1549,27 +1549,27 @@ const/4 v0, 0x0 - sput v0, Lradiant/gestures/MiniPlayerGestures;->f:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->f:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->l:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->l:F - sput p1, Lradiant/gestures/MiniPlayerGestures;->j:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->j:F - sget v0, Lradiant/gestures/MiniPlayerGestures;->n:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->n:F - sput v0, Lradiant/gestures/MiniPlayerGestures;->m:F + sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->m:F - sput-wide p2, Lradiant/gestures/MiniPlayerGestures;->k:J + sput-wide p2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->k:J :apply - invoke-static {p1}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V + invoke-static {p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackFromDrag(F)V - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/4 v0, 0x3 - invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->e:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->e:F sub-float/2addr p1, v0 - invoke-static {p0, p1, p2, p3}, Lradiant/gestures/MiniPlayerGestures;->updateDragTimed(Landroidx/compose/material3/SheetState;FJ)V + invoke-static {p0, p1, p2, p3}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerGestures;->b:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->b:Z if-eqz v0, :no - sget-object v0, Lradiant/gestures/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->a:Landroidx/compose/material3/SheetState; if-ne v0, p0, :no - invoke-static {p0}, Lradiant/gestures/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->applyPendingDrag(Landroidx/compose/material3/SheetState;)V const/4 v0, 0x5 - invoke-static {p0, v0}, Lradiant/gestures/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V + invoke-static {p0, v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->scheduleApply(Landroidx/compose/material3/SheetState;I)V const/4 v0, 0x1 diff --git a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali similarity index 54% rename from patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali index ca7ada0..2d6d8ef 100644 --- a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$Gesture.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/gestures/MiniPlayerTrackGestures$Gesture; +.class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerTrackGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,16 +15,16 @@ # instance fields -.field public final a:Lam0/l; +.field public final a:Lam0/l; # MARKER: R8 Lam0/l; # direct methods -.method public constructor (Lam0/l;)V +.method public constructor (Lam0/l;)V # MARKER: R8 Lam0/l; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; return-void .end method @@ -32,11 +32,11 @@ .method private nextTrack()V .locals 2 - iget-object v0, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 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 + 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 MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$a; a - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; return-void .end method @@ -44,18 +44,18 @@ .method private previousTrack()V .locals 2 - iget-object v0, p0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 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 + 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 MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; a - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; return-void .end method # virtual methods -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; .locals 3 invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I @@ -86,7 +86,7 @@ invoke-virtual {p1}, Landroid/view/MotionEvent;->getRawY()F move-result v1 - invoke-static {v0, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->beginDrag(FF)V + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->moveDrag(FF)V + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->finishDrag(FF)I + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->finishDrag(FF)I move-result v0 @@ -117,22 +117,22 @@ # Negative result = swipe left -> next. Positive result = swipe right -> previous if-gez v0, :previous - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-direct {p0}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->nextTrack()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-direct {p0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->nextTrack()V goto :done :previous - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-direct {p0}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->previousTrack()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-direct {p0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->previousTrack()V goto :done # ACTION_CANCEL :cancel - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->cancelDrag()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->cancelDrag()V :done - sget-object p1, Lkotlin/u;->a:Lkotlin/u; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object p1 .end method @@ -142,7 +142,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali new file mode 100644 index 0000000..2abd989 --- /dev/null +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali @@ -0,0 +1,70 @@ +.class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; +.super Ljava/lang/Object; +.implements Lam0/l; # MARKER: R8 Lam0/l; + + +# annotations +.annotation system Ldalvik/annotation/EnclosingClass; + value = Lradiant/gestures/miniplayer/MiniPlayerTrackGestures; +.end annotation + +.annotation system Ldalvik/annotation/InnerClass; + accessFlags = 0x19 + name = "OffsetLayer" +.end annotation + + +# static fields +.field public static final INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; + + +# direct methods +.method static constructor ()V + .locals 1 + + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; + + invoke-direct {v0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer;->()V + + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; + + return-void +.end method + +.method private constructor ()V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + return-void +.end method + + +# virtual methods +.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; + .locals 1 + + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F + + move-result v0 + + invoke-interface {p1, v0}, Landroidx/compose/ui/graphics/GraphicsLayerScope;->setTranslationX(F)V + + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object p1 +.end method + +.method public bridge synthetic invoke(Ljava/lang/Object;)Ljava/lang/Object; + .locals 0 + + check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; + + invoke-virtual {p0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; + + move-result-object p1 + + return-object p1 +.end method diff --git a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali similarity index 73% rename from patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali index 1acfde8..0383e71 100644 --- a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/gestures/MiniPlayerTrackGestures$ResetAnimator; +.class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator; .super Ljava/lang/Object; .implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerTrackGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -40,7 +40,7 @@ move-result v1 - invoke-static {v1}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V invoke-virtual {v0}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F @@ -52,7 +52,7 @@ if-gez v1, :done - invoke-static {v0}, Lradiant/gestures/MiniPlayerTrackGestures;->clearResetAnimator(Landroid/animation/ValueAnimator;)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->clearResetAnimator(Landroid/animation/ValueAnimator;)V :done diff --git a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali similarity index 76% rename from patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali index 5d153dc..f01832e 100644 --- a/patches/extension/radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; +.class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/gestures/MiniPlayerTrackGestures; + value = Lradiant/gestures/miniplayer/MiniPlayerTrackGestures; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,18 +15,18 @@ # static fields -.field public static final INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; +.field public static final INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; - invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->()V + invoke-direct {v0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw;->()V - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; return-void .end method @@ -41,10 +41,10 @@ # virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; +.method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; .locals 12 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -109,7 +109,7 @@ invoke-interface {v7, v8, v9}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->setSize-uvyYCjk(J)V - sget-object p1, Lkotlin/u;->a:Lkotlin/u; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object p1 @@ -132,7 +132,7 @@ check-cast p1, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope; - invoke-virtual {p0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali similarity index 56% rename from patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali rename to patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali index a89b059..85bafbc 100644 --- a/patches/extension/radiant/gestures/MiniPlayerTrackGestures.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/gestures/MiniPlayerTrackGestures; +.class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures; .super Ljava/lang/Object; @@ -32,7 +32,7 @@ move-result-object v0 - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sput-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :read_offset @@ -56,10 +56,10 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :read_offset - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures$ResetAnimator; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator; - invoke-direct {v0}, Lradiant/gestures/MiniPlayerTrackGestures$ResetAnimator;->()V + invoke-direct {v0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator;->()V invoke-virtual {v1, v0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - sput-object v1, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v1, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; invoke-virtual {v1}, Landroid/animation/ValueAnimator;->start()V return-void :snap_zero - invoke-static {v3}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v3}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -126,21 +126,21 @@ .method public static beginDrag(FF)V .locals 2 - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->resetGestureLock()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->resetGestureLock()V - sput p0, Lradiant/gestures/MiniPlayerTrackGestures;->e:F + sput p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->e:F - sput p1, Lradiant/gestures/MiniPlayerTrackGestures;->f:F + sput p1, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->f:F const/4 v0, 0x1 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :zero @@ -148,12 +148,12 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :zero const/4 v0, 0x0 - invoke-static {v0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {v0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -163,11 +163,11 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-ne v0, p0, :done const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; :done return-void @@ -190,7 +190,7 @@ .method public static finishDrag(FF)I .locals 5 - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isAnyDragging()Z + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isAnyDragging()Z move-result v0 @@ -198,17 +198,17 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->animateReset()V return v0 :check_active - sget-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z if-nez v0, :active @@ -219,26 +219,26 @@ :active const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z - sget-boolean v1, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sget-boolean v1, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - sget v2, Lradiant/gestures/MiniPlayerTrackGestures;->e:F + sget v2, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->e:F sub-float/2addr p0, v2 - sget v2, Lradiant/gestures/MiniPlayerTrackGestures;->f:F + sget v2, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->f:F sub-float/2addr p1, v2 if-eqz v1, :reset - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->suppressTapOpen()V :reset - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v2}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->dp(F)F move-result v2 @@ -291,11 +291,11 @@ .method public static moveDrag(FF)V .locals 6 - sget-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z if-eqz v0, :done - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->isAnyDragging()Z + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isAnyDragging()Z move-result v0 @@ -303,20 +303,20 @@ const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->animateReset()V goto :done :move_continue - sget v0, Lradiant/gestures/MiniPlayerTrackGestures;->e:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->e:F sub-float/2addr p0, v0 - sget v0, Lradiant/gestures/MiniPlayerTrackGestures;->f:F + sget v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->f:F sub-float/2addr p1, v0 @@ -328,13 +328,13 @@ move-result v1 - sget-boolean v2, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sget-boolean v2, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z if-nez v2, :publish const/high16 v2, 0x40c00000 # 6.0f dp dead zone - invoke-static {v2}, Lradiant/gestures/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v2}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->dp(F)F move-result v2 @@ -356,7 +356,7 @@ goto :done :accept - invoke-static {}, Lradiant/gestures/MiniPlayerGestures;->lockHorizontalGesture()Z + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->lockHorizontalGesture()Z move-result v2 @@ -364,16 +364,16 @@ const/4 v2, 0x1 - sput-boolean v2, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v2, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z :publish const/4 v2, 0x0 - invoke-static {v2}, Lradiant/gestures/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V + invoke-static {v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSwipeFeedbackDirect(F)V - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->suppressTapOpen()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->suppressTapOpen()V - invoke-static {p0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffset(F)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->setDragOffset(F)V :done return-void @@ -381,11 +381,11 @@ :cancel_locked const/4 v0, 0x0 - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->g:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->g:Z - sput-boolean v0, Lradiant/gestures/MiniPlayerTrackGestures;->h:Z + sput-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->h:Z - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->animateReset()V goto :done .end method @@ -417,9 +417,9 @@ move-result-object p0 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$OffsetLayer; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -429,9 +429,9 @@ .method public static textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/MiniPlayerTrackGestures$TextDraw; # text clip on right only + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/miniplayer/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; + invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -441,7 +441,7 @@ .method public static onRenderedItem(Ljava/lang/Object;)V .locals 2 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->d:Ljava/lang/Object; if-eqz v0, :store_initial @@ -451,14 +451,14 @@ if-nez v1, :done - sput-object p0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->d:Ljava/lang/Object; - invoke-static {}, Lradiant/gestures/MiniPlayerTrackGestures;->animateReset()V + invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->animateReset()V return-void :store_initial - sput-object p0, Lradiant/gestures/MiniPlayerTrackGestures;->d:Ljava/lang/Object; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->d:Ljava/lang/Object; :done return-void @@ -467,7 +467,7 @@ .method public static consumeTapOpenSuppression()Z .locals 5 - sget-wide v0, Lradiant/gestures/MiniPlayerTrackGestures;->a:J + sget-wide v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->a:J const-wide/16 v2, 0x0 @@ -480,7 +480,7 @@ return v0 :check_time - sput-wide v2, Lradiant/gestures/MiniPlayerTrackGestures;->a:J + sput-wide v2, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->a:J invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J @@ -511,7 +511,7 @@ add-long/2addr v0, v2 - sput-wide v0, Lradiant/gestures/MiniPlayerTrackGestures;->a:J + sput-wide v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->a:J return-void .end method @@ -519,7 +519,7 @@ .method public static setDragOffset(F)V .locals 5 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; if-eqz v0, :rubber_band @@ -527,7 +527,7 @@ const/4 v0, 0x0 - sput-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->c:Landroid/animation/ValueAnimator; + sput-object v0, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->dp(F)F + invoke-static {v1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->dp(F)F move-result v1 @@ -575,7 +575,7 @@ :publish - invoke-static {p0}, Lradiant/gestures/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V + invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->setDragOffsetDirect(F)V return-void .end method @@ -583,21 +583,21 @@ .method public static setDragOffsetDirect(F)V .locals 1 - sget-object v0, Lradiant/gestures/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0, p0}, Landroidx/compose/runtime/MutableFloatState;->setFloatValue(F)V return-void .end method -.method public static trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; +.method public static trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; .locals 1 - new-instance v0, Lradiant/gestures/MiniPlayerTrackGestures$Gesture; + new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture; - invoke-direct {v0, p1}, Lradiant/gestures/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V + invoke-direct {v0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V # MARKER: R8 Lam0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 diff --git a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali b/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali similarity index 60% rename from patches/extension/radiant/swipe/AlbumItemQueueAction.smali rename to patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali index 9988ddd..72f0fb6 100644 --- a/patches/extension/radiant/swipe/AlbumItemQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali @@ -1,13 +1,13 @@ -.class public final Lradiant/swipe/AlbumItemQueueAction; +.class public final Lradiant/gestures/queue/AlbumItemQueueAction; .super Ljava/lang/Object; .source "AlbumItemQueueAction.smali" # interfaces -.implements Lradiant/swipe/ComposeSwipeAction; +.implements Lradiant/gestures/queue/ComposeSwipeAction; # instance fields -.field private final callback:Lu5/b$a$a; +.field private final callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; .field private context:Landroid/content/Context; @@ -17,24 +17,24 @@ # direct methods -.method public constructor (Lu5/b$a;)V +.method public constructor (Lu5/b$a;)V # MARKER: R8 Lu5/b$a; .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V - iget-object v0, p1, Lu5/b$a;->a:Lu5/b$a$a; + iget-object v0, p1, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a - iput-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a; + iput-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; - iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; + iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c - iget v1, v0, Lu5/b$a$b;->r:I + iget v1, v0, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r - iput v1, p0, Lradiant/swipe/AlbumItemQueueAction;->mediaItemId:I + iput v1, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->mediaItemId:I - iget-object v0, v0, Lu5/b$a$b;->s:Ljava/lang/String; + iget-object v0, v0, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s - iput-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->moduleId:Ljava/lang/String; + iput-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->moduleId:Ljava/lang/String; return-void .end method @@ -44,38 +44,38 @@ .method public invoke(I)Ljava/lang/Object; .locals 10 - iget-object v0, p0, Lradiant/swipe/AlbumItemQueueAction;->callback:Lu5/b$a$a; + iget-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; - iget v1, p0, Lradiant/swipe/AlbumItemQueueAction;->mediaItemId:I + iget v1, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->mediaItemId:I - iget-object v2, p0, Lradiant/swipe/AlbumItemQueueAction;->moduleId:Ljava/lang/String; + iget-object v2, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->moduleId:Ljava/lang/String; const/4 v3, 0x3 if-eq p1, v3, :active_queue - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v3 if-nez v3, :active_queue - invoke-interface {v0, v1, v2}, Lu5/b$a$a;->g(ILjava/lang/String;)V + invoke-interface {v0, v1, v2}, Lu5/b$a$a;->g(ILjava/lang/String;)V # MARKER: R8 Lu5/b$a$a; g goto :done :active_queue - iget-object v3, p0, Lradiant/swipe/AlbumItemQueueAction;->context:Landroid/content/Context; + iget-object v3, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->context:Landroid/content/Context; if-eqz v3, :done - instance-of v4, v0, Lu5/g; + instance-of v4, v0, Lu5/g; # MARKER: R8 Lu5/g; if-eqz v4, :done - check-cast v0, Lu5/g; + check-cast v0, Lu5/g; # MARKER: R8 Lu5/g; - invoke-virtual {v0, v2}, Lk5/f;->l(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module; + invoke-virtual {v0, v2}, Lk5/f;->l(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module; # MARKER: R8 Lk5/f; l move-result-object v4 @@ -124,7 +124,7 @@ check-cast v7, Lcom/aspiro/wamp/model/Track; - iget-object v8, v0, Lu5/g;->h:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v8, v0, Lu5/g;->h:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lu5/g; h invoke-interface {v8, v7}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; @@ -162,9 +162,9 @@ if-eqz v6, :done - iget-object v8, v0, Lu5/g;->j:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v8, v0, Lu5/g;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lu5/g; j - invoke-static {v6, v8}, Lcom/aspiro/wamp/playqueue/source/model/b;->c(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource; + invoke-static {v6, v8}, Lcom/aspiro/wamp/playqueue/source/model/b;->c(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; c move-result-object v6 @@ -174,7 +174,7 @@ if-ne p1, v8, :check_add_to_playlist - invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v3, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done @@ -183,15 +183,15 @@ if-ne p1, v8, :append_track - invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {v3, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :append_track - invoke-static {v3, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v3, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object v0 .end method @@ -201,7 +201,7 @@ const/4 v0, 0x2 - invoke-virtual {p0, v0}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; + invoke-virtual {p0, v0}, Lradiant/gestures/queue/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; move-result-object v0 @@ -211,7 +211,7 @@ .method public setContext(Landroid/content/Context;)V .locals 0 - iput-object p1, p0, Lradiant/swipe/AlbumItemQueueAction;->context:Landroid/content/Context; + iput-object p1, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->context:Landroid/content/Context; return-void .end method diff --git a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali new file mode 100644 index 0000000..a6c969f --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali @@ -0,0 +1,181 @@ +.class public final Lradiant/gestures/queue/ArtistTrackCreditsQueue; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; + + if-eqz v0, :done + + invoke-virtual {v0}, Ljava/lang/String;->length()I + + move-result v1 + + if-lez v1, :done + + iget-object v1, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/lang/String;->length()I + + move-result v2 + + if-lez v2, :done + + iget-wide v2, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->trackId:J + + const-wide/16 v4, 0x0 + + cmp-long v4, v2, v4 + + if-lez v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + + move-result-object v4 + + instance-of v5, v4, Lc60/d; # MARKER: R8 Lc60/d; + + if-eqz v5, :done + + check-cast v4, Lc60/d; # MARKER: R8 Lc60/d; + + iget-object v5, v4, Lc60/d;->b:Ljava/lang/String; # MARKER: R8 Lc60/d; b + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/d;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/d; f + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_track + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v5 + + instance-of v6, v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + if-eqz v6, :find_track + + check-cast v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + iget-object v5, v5, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + + instance-of v6, v5, Lh40/p; # MARKER: R8 Lh40/p; + + if-eqz v6, :find_track + + check-cast v5, Lh40/p; # MARKER: R8 Lh40/p; + + iget-wide v6, v5, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + + cmp-long v6, v6, v2 + + if-nez v6, :find_track + + iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/b; b + + instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v2, :done + + check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; b + + if-eqz v6, :done + + iget-object v1, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; + + if-eqz v1, :done + + invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + + move-result-object v7 + + if-eqz v7, :done + + iget-object v2, v4, Lc60/d;->a:Ljava/lang/String; # MARKER: R8 Lc60/d; a + + if-eqz v2, :done + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget v3, v4, Lc60/d;->e:I # MARKER: R8 Lc60/d; e + + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v3 + + invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + iget-wide v2, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->trackId:J + + invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v2 + + iget-object v3, v4, Lc60/d;->c:Ljava/lang/String; # MARKER: R8 Lc60/d; c + + iget-object v10, v4, Lc60/d;->g:Ljava/lang/String; # MARKER: R8 Lc60/d; g + + invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; # MARKER: R8 a + + move-result-object v4 + + invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; j + + move-result-object v9 + + if-eqz v9, :done + + invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget v0, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->action:I + + const/4 v2, 0x1 + + if-ne v0, v2, :check_add_to_playlist + + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :check_add_to_playlist + const/4 v2, 0x3 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + + :append + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali new file mode 100644 index 0000000..292e7b6 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali @@ -0,0 +1,113 @@ +.class public final Lradiant/gestures/queue/ArtistTrackCreditsQueueAction; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + + iput-wide v0, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 8 + + iget-wide v1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->trackId:J + + const/4 v0, 0x3 + + if-eq p1, v0, :active_queue + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-nez v0, :active_queue + + new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; + + iget-object v3, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iget-object v4, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;->(JLjava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; + + goto :emit + + :active_queue + new-instance v0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent; + + iget-object v1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v4, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->trackId:J + + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V + + :emit + iget-object v7, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali new file mode 100644 index 0000000..10240ee --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali @@ -0,0 +1,38 @@ +.class public final Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent; +.super Ljava/lang/Object; +.source "ArtistTrackCreditsQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b; + + +# instance fields +.field public final action:I + +.field public final context:Landroid/content/Context; + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + +.field public final trackId:J + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-wide p4, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->trackId:J + + iput p6, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->action:I + + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali b/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali new file mode 100644 index 0000000..830f9ec --- /dev/null +++ b/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali @@ -0,0 +1,281 @@ +.class public final Lradiant/gestures/queue/CompactGridMediaQueueAction; +.super Ljava/lang/Object; +.source "CompactGridMediaQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final mediaType:I + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V # MARKER: R8 Lam0/l; Lm40/e; + .locals 3 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + instance-of v0, p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + if-eqz v0, :mix + + check-cast p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + iget-wide v0, p4, Lm40/e$a;->a:J # MARKER: R8 Lm40/e$a; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x1 + + goto :store + + :mix + instance-of v0, p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$c; a + + const/4 v1, 0x2 + + goto :store + + :playlist + instance-of v0, p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + if-eqz v0, :track + + check-cast p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + + const/4 v1, 0x3 + + goto :store + + :track + instance-of v0, p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + if-eqz v0, :unsupported + + check-cast p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x4 + + goto :store + + :unsupported + const/4 v0, 0x0 + + const/4 v1, 0x0 + + :store + iput-object v0, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + iput v1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->mediaType:I + + return-void +.end method + +.method public static isEligible(Lm40/e;)Z # MARKER: R8 Lm40/e; + .locals 1 + + instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + if-eqz v0, :mix + + check-cast p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + iget-boolean p0, p0, Lm40/e$a;->e:Z # MARKER: R8 Lm40/e$a; e + + return p0 + + :mix + instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + iget-boolean p0, p0, Lm40/e$c;->h:Z # MARKER: R8 Lm40/e$c; h + + return p0 + + :playlist + instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + if-eqz v0, :track + + check-cast p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + iget-boolean p0, p0, Lm40/e$d;->g:Z # MARKER: R8 Lm40/e$d; g + + return p0 + + :track + instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + if-eqz v0, :invalid + + check-cast p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + iget-boolean p0, p0, Lm40/e$e;->j:Z # MARKER: R8 Lm40/e$e; j + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 8 + + iget-object v7, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + if-eqz v7, :done + + iget-object v4, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + iget v5, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->mediaType:I + + if-eqz v5, :done + + const/4 v1, 0x3 + + if-eq p1, v1, :queue_event + + const/4 v1, 0x4 + + if-ne v5, v1, :queue_event + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-nez v1, :queue_event + + move-object v1, v4 + + goto :emit + + :queue_event + iget-object v1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + new-instance v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V + + move-object v1, v0 + + :emit + invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v0, :invalid + + new-instance v1, Ljava/lang/StringBuilder; + + const-string v2, "cgc:" + + invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v2, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget v2, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->mediaType:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali b/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali new file mode 100644 index 0000000..c39b17d --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali @@ -0,0 +1,367 @@ +.class public final Lradiant/gestures/queue/ComposeSearchQueue; +.super Ljava/lang/Object; +.source "ComposeSearchQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/gestures/queue/ComposeSearchQueueEvent;)V + .locals 10 + + if-eqz p0, :done + + if-eqz p1, :done + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-lt v0, v1, :done + + const/4 v1, 0x3 + + if-gt v0, v1, :done + + iget-object v8, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->context:Landroid/content/Context; + + if-eqz v8, :done + + iget-object v2, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->id:Ljava/lang/String; + + if-eqz v2, :done + + iget v4, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->type:I + + const/4 v0, 0x1 + + if-lt v4, v0, :done + + const/4 v0, 0x4 + + if-gt v4, v0, :done + + iget-object v0, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->n:Ljava/util/List; # MARKER: R8 n + + invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :find_row + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :done + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lmb0/e; # MARKER: R8 Lmb0/e; + + invoke-static {v1}, Lmb0/f;->a(Lmb0/e;)Ljava/lang/String; # MARKER: R8 Lmb0/f; Lmb0/e; a + + move-result-object v9 + + invoke-virtual {v2, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v9 + + if-eqz v9, :find_row + + instance-of v9, v1, Lmb0/a; # MARKER: R8 Lmb0/a; + + if-eqz v9, :find_row + + check-cast v1, Lmb0/a; # MARKER: R8 Lmb0/a; + + iget-object v3, v1, Lmb0/a;->a:Lh40/n; # MARKER: R8 Lmb0/a; Lh40/n; a + + const/4 v9, 0x1 + + if-ne v4, v9, :check_album + + instance-of v9, v3, Lh40/p; # MARKER: R8 Lh40/p; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_album + const/4 v9, 0x2 + + if-ne v4, v9, :check_playlist + + instance-of v9, v3, Lh40/a; # MARKER: R8 Lh40/a; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_playlist + const/4 v9, 0x3 + + if-ne v4, v9, :check_mix + + instance-of v9, v3, Lh40/j; # MARKER: R8 Lh40/j; + + if-eqz v9, :find_row + + goto :recover_dependencies + + :check_mix + instance-of v9, v3, Lh40/i; # MARKER: R8 Lh40/i; + + if-eqz v9, :find_row + + :recover_dependencies + iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->d:Lcom/tidal/android/feature/search/ui/e; # MARKER: R8 Lcom/tidal/android/feature/search/ui/e; d + + instance-of v0, v9, Lv9/e; # MARKER: R8 Lv9/e; + + if-eqz v0, :done + + check-cast v9, Lv9/e; # MARKER: R8 Lv9/e; + + iget-object v5, v9, Lv9/e;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lv9/e; b + + iget-object v9, v9, Lv9/e;->a:Lcom/aspiro/wamp/core/k; # MARKER: R8 Lv9/e; Lcom/aspiro/wamp/core/k; a + + const/4 v6, 0x0 + + const/4 v0, 0x2 + + if-eq v4, v0, :recover_menu + + const/4 v0, 0x4 + + if-ne v4, v0, :dependencies_ready + + :recover_menu + + instance-of v0, v9, Lh9/p1; # MARKER: R8 Lh9/p1; + + if-eqz v0, :done + + check-cast v9, Lh9/p1; # MARKER: R8 Lh9/p1; + + iget-object v9, v9, Lh9/p1;->b:Lx40/a; # MARKER: R8 Lh9/p1; Lx40/a; b + + instance-of v0, v9, Lh4/a; # MARKER: R8 Lh4/a; + + if-eqz v0, :done + + move-object v6, v9 + + check-cast v6, Lh4/a; # MARKER: R8 Lh4/a; + + :dependencies_ready + + new-instance v7, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + const-string v0, "search" + + invoke-direct {v7, v0, v2}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v4, v0, :album + + check-cast v3, Lh40/p; # MARKER: R8 Lh40/p; + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x3 + + if-eq v0, v1, :queue_track + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-eqz v0, :play_track + + :queue_track + invoke-static {v3}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + + move-result-object v9 + + iget-object v4, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 m + + invoke-interface {v4}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; + + move-result-object v4 + + check-cast v4, Lcom/tidal/android/feature/search/ui/SearchQuery; + + iget-object v4, v4, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; # MARKER: R8 a + + if-nez v4, :track_query_ready + + const-string v4, "" + + :track_query_ready + const/4 v1, 0x0 + + if-eqz v5, :track_navigation_ready + + invoke-static {v5}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b + + move-result-object v1 + + :track_navigation_ready + invoke-static {v2, v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + + move-result-object v4 + + invoke-virtual {v4, v9}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_track_to_playlist + + invoke-static {v8, v9, v7, v4}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v8, v9, v7, v4}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + + :append_track + invoke-static {v8, v9, v7, v4}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :play_track + iget-object v5, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 m + + invoke-interface {v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; + + move-result-object v5 + + check-cast v5, Lcom/tidal/android/feature/search/ui/SearchQuery; + + iget-object v5, v5, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; # MARKER: R8 a + + if-nez v5, :play_query_ready + + const-string v5, "" + + :play_query_ready + iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->f:Lcom/tidal/android/feature/search/ui/f; # MARKER: R8 Lcom/tidal/android/feature/search/ui/f; f + + iget-wide v0, v3, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + + invoke-interface {v9, v0, v1, v3, v5}, Lcom/tidal/android/feature/search/ui/f;->a(JLh40/p;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/feature/search/ui/f; Lh40/p; a + + goto :done + + :album + const/4 v0, 0x2 + + if-ne v4, v0, :playlist + + check-cast v3, Lh40/a; # MARKER: R8 Lh40/a; + + invoke-static {v3}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + + move-result-object v9 + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_album_to_playlist + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_album + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v4, v0, :mix + + check-cast v3, Lh40/j; # MARKER: R8 Lh40/j; + + invoke-static {v3}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + + move-result-object v9 + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_playlist_to_playlist + + invoke-static {v8, v9, v7, v5}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v8, v9, v7, v5}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist + invoke-static {v8, v9, v7, v5}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :mix + check-cast v3, Lh40/i; # MARKER: R8 Lh40/i; + + invoke-static {v3}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + + move-result-object v9 + + iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_mix_to_playlist + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_mix + invoke-static {v8, v9, v7, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + :done + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali b/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali new file mode 100644 index 0000000..28ab7f7 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali @@ -0,0 +1,232 @@ +.class public final Lradiant/gestures/queue/ComposeSearchQueueAction; +.super Ljava/lang/Object; +.source "ComposeSearchQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final id:Ljava/lang/String; + +.field private final type:I + + +# direct methods +.method public constructor (Lam0/l;Lpb0/b;)V # MARKER: R8 Lam0/l; Lpb0/b; + .locals 1 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->key(Lpb0/b;)Ljava/lang/String; # MARKER: R8 Lpb0/b; + + move-result-object v0 + + iput-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->id:Ljava/lang/String; + + invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->type(Lpb0/b;)I # MARKER: R8 Lpb0/b; + + move-result p1 + + iput p1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->type:I + + return-void +.end method + +.method public static key(Lpb0/b;)Ljava/lang/String; # MARKER: R8 Lpb0/b; + .locals 2 + + instance-of v0, p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + + if-eqz v0, :album + + check-cast p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + + iget-wide v0, p0, Lpb0/b$i;->a:J # MARKER: R8 Lpb0/b$i; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object p0 + + return-object p0 + + :album + instance-of v0, p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + + if-eqz v0, :playlist + + check-cast p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + + iget-wide v0, p0, Lpb0/b$a;->a:J # MARKER: R8 Lpb0/b$a; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object p0 + + return-object p0 + + :playlist + instance-of v0, p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + + if-eqz v0, :mix + + check-cast p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + + iget-object p0, p0, Lpb0/b$f;->a:Ljava/lang/String; # MARKER: R8 Lpb0/b$f; a + + return-object p0 + + :mix + instance-of v0, p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + + if-eqz v0, :invalid + + check-cast p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + + iget-object p0, p0, Lpb0/b$e;->a:Ljava/lang/String; # MARKER: R8 Lpb0/b$e; a + + return-object p0 + + :invalid + const/4 p0, 0x0 + + return-object p0 +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->id:Ljava/lang/String; + + if-eqz v0, :invalid + + iget v1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->type:I + + if-eqz v1, :invalid + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v1, 0x3a + + invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method + +.method private static type(Lpb0/b;)I # MARKER: R8 Lpb0/b; + .locals 1 + + instance-of v0, p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + + if-eqz v0, :album + + const/4 p0, 0x1 + + return p0 + + :album + instance-of v0, p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + + if-eqz v0, :playlist + + const/4 p0, 0x2 + + return p0 + + :playlist + instance-of v0, p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + + if-eqz v0, :mix + + const/4 p0, 0x3 + + return p0 + + :mix + instance-of p0, p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + + if-eqz p0, :invalid + + const/4 p0, 0x4 + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 4 + + iget-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->id:Ljava/lang/String; + + if-eqz v2, :done + + iget v3, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->type:I + + if-eqz v3, :done + + new-instance p0, Lradiant/gestures/queue/ComposeSearchQueueEvent; + + invoke-direct {p0, v1, v2, v3, p1}, Lradiant/gestures/queue/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;II)V + + invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali b/patches/extension/radiant/gestures/queue/ComposeSearchQueueEvent.smali similarity index 55% rename from patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali rename to patches/extension/radiant/gestures/queue/ComposeSearchQueueEvent.smali index 4ef90be..d5f1c8b 100644 --- a/patches/extension/radiant/swipe/ComposeSearchQueueEvent.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSearchQueueEvent.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/ComposeSearchQueueEvent; +.class public final Lradiant/gestures/queue/ComposeSearchQueueEvent; .super Ljava/lang/Object; .source "ComposeSearchQueueEvent.smali" # interfaces -.implements Lcom/tidal/android/feature/search/ui/b; +.implements Lcom/tidal/android/feature/search/ui/b; # MARKER: R8 Lcom/tidal/android/feature/search/ui/b; # static fields @@ -32,13 +32,13 @@ invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSearchQueueEvent;->context:Landroid/content/Context; - iput-object p2, p0, Lradiant/swipe/ComposeSearchQueueEvent;->id:Ljava/lang/String; + iput-object p2, p0, Lradiant/gestures/queue/ComposeSearchQueueEvent;->id:Ljava/lang/String; - iput p3, p0, Lradiant/swipe/ComposeSearchQueueEvent;->type:I + iput p3, p0, Lradiant/gestures/queue/ComposeSearchQueueEvent;->type:I - iput p4, p0, Lradiant/swipe/ComposeSearchQueueEvent;->action:I + iput p4, p0, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I return-void .end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeAction.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali similarity index 71% rename from patches/extension/radiant/swipe/ComposeSwipeAction.smali rename to patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali index 36ff8fd..f452d52 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeAction.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali @@ -1,9 +1,9 @@ -.class public interface abstract Lradiant/swipe/ComposeSwipeAction; +.class public interface abstract Lradiant/gestures/queue/ComposeSwipeAction; .super Ljava/lang/Object; .source "ComposeSwipeAction.smali" # interfaces -.implements Lam0/a; +.implements Lam0/a; # MARKER: R8 Lam0/a; # virtual methods diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali similarity index 75% rename from patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali rename to patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali index f0a4975..4b208d6 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$Draw.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/swipe/ComposeSwipeState$Draw; +.class public final Lradiant/gestures/queue/ComposeSwipeState$Draw; .super Ljava/lang/Object; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/swipe/ComposeSwipeState; + value = Lradiant/gestures/queue/ComposeSwipeState; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,23 +15,23 @@ # instance fields -.field private final state:Lradiant/swipe/ComposeSwipeState; +.field private final state:Lradiant/gestures/queue/ComposeSwipeState; # direct methods -.method public constructor (Lradiant/swipe/ComposeSwipeState;)V +.method public constructor (Lradiant/gestures/queue/ComposeSwipeState;)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$Draw;->state:Lradiant/swipe/ComposeSwipeState; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSwipeState$Draw;->state:Lradiant/gestures/queue/ComposeSwipeState; return-void .end method # virtual methods -.method public invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; +.method public invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; .locals 16 move-object/from16 v0, p1 @@ -50,11 +50,11 @@ move-result v4 - iget-object v5, v5, Lradiant/swipe/ComposeSwipeState$Draw;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v5, v5, Lradiant/gestures/queue/ComposeSwipeState$Draw;->state:Lradiant/gestures/queue/ComposeSwipeState; - iput v3, v5, Lradiant/swipe/ComposeSwipeState;->rowWidth:F + iput v3, v5, Lradiant/gestures/queue/ComposeSwipeState;->rowWidth:F - iget-object v1, v5, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + iget-object v1, v5, Lradiant/gestures/queue/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v1}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -106,7 +106,7 @@ :exposure_ready invoke-virtual {v7, v9, v1, v10, v4}, Landroid/graphics/Canvas;->clipRect(FFFF)Z - invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + invoke-virtual {v5, v6}, Lradiant/gestures/queue/ComposeSwipeState;->actionForOffset(F)I move-result v11 @@ -134,7 +134,7 @@ invoke-virtual {v7, v11}, Landroid/graphics/Canvas;->drawColor(I)V - invoke-virtual {v5, v6}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + invoke-virtual {v5, v6}, Lradiant/gestures/queue/ComposeSwipeState;->actionForOffset(F)I move-result v11 @@ -142,7 +142,7 @@ if-ne v11, v12, :add_icon - iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; + iget-object v11, v5, Lradiant/gestures/queue/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; goto :icon_ready @@ -151,12 +151,12 @@ if-ne v11, v12, :add_to_queue_icon - iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + iget-object v11, v5, Lradiant/gestures/queue/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; goto :icon_ready :add_to_queue_icon - iget-object v11, v5, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; + iget-object v11, v5, Lradiant/gestures/queue/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; :icon_ready @@ -176,7 +176,7 @@ const/high16 v14, 0x41800000 # 16.0f - invoke-virtual {v5, v14}, Lradiant/swipe/ComposeSwipeState;->dp(F)F + invoke-virtual {v5, v14}, Lradiant/gestures/queue/ComposeSwipeState;->dp(F)F move-result v14 @@ -257,7 +257,7 @@ invoke-interface {v0}, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;->drawContent()V :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object v0 .end method @@ -267,7 +267,7 @@ check-cast p1, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope; - invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState$Draw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/queue/ComposeSwipeState$Draw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; # MARKER: R8 Lkotlin/u; move-result-object v0 diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali similarity index 54% rename from patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali rename to patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali index 7968b03..c7cfd6e 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$Gesture.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali @@ -1,12 +1,12 @@ -.class public final Lradiant/swipe/ComposeSwipeState$Gesture; +.class public final Lradiant/gestures/queue/ComposeSwipeState$Gesture; .super Landroidx/compose/ui/input/pointer/PointerInputFilter; -.implements Lam0/l; +.implements Lam0/l; # MARKER: R8 Lam0/l; .implements Landroidx/compose/ui/input/pointer/PointerInputModifier; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/swipe/ComposeSwipeState; + value = Lradiant/gestures/queue/ComposeSwipeState; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -18,16 +18,16 @@ # instance fields .field private consumeAfterDispatch:Z -.field private final state:Lradiant/swipe/ComposeSwipeState; +.field private final state:Lradiant/gestures/queue/ComposeSwipeState; # direct methods -.method public constructor (Lradiant/swipe/ComposeSwipeState;)V +.method public constructor (Lradiant/gestures/queue/ComposeSwipeState;)V .locals 0 invoke-direct {p0}, Landroidx/compose/ui/input/pointer/PointerInputFilter;->()V - iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; return-void .end method @@ -48,7 +48,7 @@ return-object p0 .end method -.method public invoke(Landroid/view/MotionEvent;)Lkotlin/u; +.method public invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; .locals 3 invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I @@ -57,7 +57,7 @@ const/4 v1, 0x0 - iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + iput-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z if-eqz v0, :down @@ -92,9 +92,9 @@ move-result v1 - iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v2, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->begin(FF)V + invoke-virtual {v2, v0, v1}, Lradiant/gestures/queue/ComposeSwipeState;->begin(FF)V goto :done @@ -107,9 +107,9 @@ move-result v1 - iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v2, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->move(FF)V + invoke-virtual {v2, v0, v1}, Lradiant/gestures/queue/ComposeSwipeState;->move(FF)V goto :done @@ -122,25 +122,25 @@ move-result v1 - iget-object v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v2, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v2, v0, v1}, Lradiant/swipe/ComposeSwipeState;->move(FF)V + invoke-virtual {v2, v0, v1}, Lradiant/gestures/queue/ComposeSwipeState;->move(FF)V - iget-boolean v0, v2, Lradiant/swipe/ComposeSwipeState;->locked:Z + iget-boolean v0, v2, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z - invoke-virtual {v2}, Lradiant/swipe/ComposeSwipeState;->finish()V + invoke-virtual {v2}, Lradiant/gestures/queue/ComposeSwipeState;->finish()V goto :done :cancel - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + invoke-virtual {v0}, Lradiant/gestures/queue/ComposeSwipeState;->cancelGesture()V :done - sget-object p1, Lkotlin/u;->a:Lkotlin/u; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; return-object p1 .end method @@ -150,7 +150,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + invoke-virtual {p0, p1}, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; move-result-object v0 @@ -160,9 +160,9 @@ .method public onCancel()V .locals 1 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + invoke-virtual {v0}, Lradiant/gestures/queue/ComposeSwipeState;->cancelGesture()V return-void .end method @@ -174,13 +174,13 @@ if-ne p2, v0, :done - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->state:Lradiant/gestures/queue/ComposeSwipeState; - iget-boolean v1, v0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iget-boolean v1, v0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z const/4 v2, 0x0 - iput-boolean v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + iput-boolean v2, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z invoke-virtual {p1}, Landroidx/compose/ui/input/pointer/PointerEvent;->getMotionEvent()Landroid/view/MotionEvent; @@ -188,14 +188,14 @@ if-eqz v2, :after_dispatch - invoke-virtual {p0, v2}, Lradiant/swipe/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; + invoke-virtual {p0, v2}, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; # MARKER: R8 Lkotlin/u; :after_dispatch - iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z + iget-boolean v2, p0, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->consumeAfterDispatch:Z or-int/2addr v1, v2 - iget-boolean v2, v0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iget-boolean v2, v0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z or-int/2addr v1, v2 diff --git a/patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali similarity index 58% rename from patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali rename to patches/extension/radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali index 34a747b..f30990d 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState$ResetAnimator.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/swipe/ComposeSwipeState$ResetAnimator; +.class public final Lradiant/gestures/queue/ComposeSwipeState$ResetAnimator; .super Ljava/lang/Object; .implements Landroid/animation/ValueAnimator$AnimatorUpdateListener; # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lradiant/swipe/ComposeSwipeState; + value = Lradiant/gestures/queue/ComposeSwipeState; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -15,16 +15,16 @@ # instance fields -.field private final state:Lradiant/swipe/ComposeSwipeState; +.field private final state:Lradiant/gestures/queue/ComposeSwipeState; # direct methods -.method public constructor (Lradiant/swipe/ComposeSwipeState;)V +.method public constructor (Lradiant/gestures/queue/ComposeSwipeState;)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->state:Lradiant/swipe/ComposeSwipeState; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSwipeState$ResetAnimator;->state:Lradiant/gestures/queue/ComposeSwipeState; return-void .end method @@ -44,9 +44,9 @@ move-result v0 - iget-object v1, p0, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->state:Lradiant/swipe/ComposeSwipeState; + iget-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState$ResetAnimator;->state:Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v1, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + invoke-virtual {v1, v0}, Lradiant/gestures/queue/ComposeSwipeState;->setOffset(F)V invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedFraction()F @@ -61,7 +61,7 @@ return-void :finished - invoke-virtual {v1, p1}, Lradiant/swipe/ComposeSwipeState;->clearAnimator(Landroid/animation/ValueAnimator;)V + invoke-virtual {v1, p1}, Lradiant/gestures/queue/ComposeSwipeState;->clearAnimator(Landroid/animation/ValueAnimator;)V return-void .end method diff --git a/patches/extension/radiant/swipe/ComposeSwipeState.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali similarity index 54% rename from patches/extension/radiant/swipe/ComposeSwipeState.smali rename to patches/extension/radiant/gestures/queue/ComposeSwipeState.smali index 1f10a10..b771996 100644 --- a/patches/extension/radiant/swipe/ComposeSwipeState.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali @@ -1,11 +1,11 @@ -.class public final Lradiant/swipe/ComposeSwipeState; +.class public final Lradiant/gestures/queue/ComposeSwipeState; .super Ljava/lang/Object; # instance fields .field translation:Landroidx/compose/runtime/MutableFloatState; -.field action:Lradiant/swipe/ComposeSwipeAction; +.field action:Lradiant/gestures/queue/ComposeSwipeAction; .field context:Landroid/content/Context; @@ -27,9 +27,9 @@ .field animator:Landroid/animation/ValueAnimator; -.field final gesture:Lradiant/swipe/ComposeSwipeState$Gesture; +.field final gesture:Lradiant/gestures/queue/ComposeSwipeState$Gesture; -.field final draw:Lradiant/swipe/ComposeSwipeState$Draw; +.field final draw:Lradiant/gestures/queue/ComposeSwipeState$Draw; .field addIcon:Landroid/graphics/drawable/Drawable; @@ -50,24 +50,24 @@ move-result-object v0 - iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + iput-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; - new-instance v0, Lradiant/swipe/ComposeSwipeState$Gesture; + new-instance v0, Lradiant/gestures/queue/ComposeSwipeState$Gesture; - invoke-direct {v0, p0}, Lradiant/swipe/ComposeSwipeState$Gesture;->(Lradiant/swipe/ComposeSwipeState;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/ComposeSwipeState$Gesture;->(Lradiant/gestures/queue/ComposeSwipeState;)V - iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->gesture:Lradiant/swipe/ComposeSwipeState$Gesture; + iput-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->gesture:Lradiant/gestures/queue/ComposeSwipeState$Gesture; - new-instance v1, Lradiant/swipe/ComposeSwipeState$Draw; + new-instance v1, Lradiant/gestures/queue/ComposeSwipeState$Draw; - invoke-direct {v1, p0}, Lradiant/swipe/ComposeSwipeState$Draw;->(Lradiant/swipe/ComposeSwipeState;)V + invoke-direct {v1, p0}, Lradiant/gestures/queue/ComposeSwipeState$Draw;->(Lradiant/gestures/queue/ComposeSwipeState;)V - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->draw:Lradiant/swipe/ComposeSwipeState$Draw; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->draw:Lradiant/gestures/queue/ComposeSwipeState$Draw; return-void .end method -.method public static attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; +.method public static attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; .locals 5 .annotation build Landroidx/compose/runtime/Composable; .end annotation @@ -105,18 +105,18 @@ if-ne v2, v3, :state_ready :new_state - new-instance v2, Lradiant/swipe/ComposeSwipeState; + new-instance v2, Lradiant/gestures/queue/ComposeSwipeState; - invoke-direct {v2}, Lradiant/swipe/ComposeSwipeState;->()V + invoke-direct {v2}, Lradiant/gestures/queue/ComposeSwipeState;->()V invoke-interface {p4, v2}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V :state_ready - check-cast v2, Lradiant/swipe/ComposeSwipeState; + check-cast v2, Lradiant/gestures/queue/ComposeSwipeState; - invoke-virtual {v2, p2, p3, v0}, Lradiant/swipe/ComposeSwipeState;->update(Lradiant/swipe/ComposeSwipeAction;ZLandroid/view/View;)V + invoke-virtual {v2, p2, p3, v0}, Lradiant/gestures/queue/ComposeSwipeState;->update(Lradiant/gestures/queue/ComposeSwipeAction;ZLandroid/view/View;)V - iget-object v1, v2, Lradiant/swipe/ComposeSwipeState;->gesture:Lradiant/swipe/ComposeSwipeState$Gesture; + iget-object v1, v2, Lradiant/gestures/queue/ComposeSwipeState;->gesture:Lradiant/gestures/queue/ComposeSwipeState$Gesture; check-cast v1, Landroidx/compose/ui/Modifier; @@ -124,9 +124,9 @@ move-result-object p0 - iget-object v1, v2, Lradiant/swipe/ComposeSwipeState;->draw:Lradiant/swipe/ComposeSwipeState$Draw; + iget-object v1, v2, Lradiant/gestures/queue/ComposeSwipeState;->draw:Lradiant/gestures/queue/ComposeSwipeState$Draw; - invoke-static {p0, v1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; move-result-object p0 @@ -170,7 +170,7 @@ .method animateReset()V .locals 7 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; const/4 v1, 0x0 @@ -178,10 +178,10 @@ invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; :read_offset - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F @@ -227,13 +227,13 @@ invoke-virtual {v0, v2}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V - new-instance v2, Lradiant/swipe/ComposeSwipeState$ResetAnimator; + new-instance v2, Lradiant/gestures/queue/ComposeSwipeState$ResetAnimator; - invoke-direct {v2, p0}, Lradiant/swipe/ComposeSwipeState$ResetAnimator;->(Lradiant/swipe/ComposeSwipeState;)V + invoke-direct {v2, p0}, Lradiant/gestures/queue/ComposeSwipeState$ResetAnimator;->(Lradiant/gestures/queue/ComposeSwipeState;)V invoke-virtual {v0, v2}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V - iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iput-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; invoke-virtual {v0}, Landroid/animation/ValueAnimator;->start()V @@ -242,7 +242,7 @@ :snap const/4 v3, 0x0 - invoke-virtual {p0, v3}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + invoke-virtual {p0, v3}, Lradiant/gestures/queue/ComposeSwipeState;->setOffset(F)V return-void .end method @@ -250,9 +250,9 @@ .method begin(FF)V .locals 3 - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->releaseParent()V - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; const/4 v1, 0x0 @@ -260,33 +260,33 @@ invoke-virtual {v0}, Landroid/animation/ValueAnimator;->cancel()V - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; :initialize - iput p1, p0, Lradiant/swipe/ComposeSwipeState;->downX:F + iput p1, p0, Lradiant/gestures/queue/ComposeSwipeState;->downX:F - iput p2, p0, Lradiant/swipe/ComposeSwipeState;->downY:F + iput p2, p0, Lradiant/gestures/queue/ComposeSwipeState;->downY:F const/4 v0, 0x0 - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSwipeState;->setOffset(F)V - iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + iget-boolean v2, p0, Lradiant/gestures/queue/ComposeSwipeState;->enabled:Z if-eqz v2, :inactive - iget-object v2, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + iget-object v2, p0, Lradiant/gestures/queue/ComposeSwipeState;->action:Lradiant/gestures/queue/ComposeSwipeAction; if-eqz v2, :inactive const/4 v0, 0x1 :inactive - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->tracking:Z return-void .end method @@ -296,15 +296,15 @@ const/4 v0, 0x0 - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->tracking:Z - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->releaseParent()V - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->animateReset()V return-void .end method @@ -312,13 +312,13 @@ .method clearAnimator(Landroid/animation/ValueAnimator;)V .locals 1 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; if-ne v0, p1, :done const/4 v0, 0x0 - iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; + iput-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->animator:Landroid/animation/ValueAnimator; :done return-void @@ -327,7 +327,7 @@ .method dp(F)F .locals 1 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->context:Landroid/content/Context; if-eqz v0, :done @@ -350,25 +350,25 @@ .method finish()V .locals 3 - iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + iget-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->tracking:Z if-eqz v0, :reset_only - iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iget-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z if-eqz v0, :not_complete - iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iget-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z if-eqz v0, :not_complete - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F move-result v0 - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSwipeState;->actionForOffset(F)I move-result v2 @@ -380,32 +380,32 @@ :complete_ready const/4 v1, 0x0 - iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + iput-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->tracking:Z - iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iput-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z - iput-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iput-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->releaseParent()V - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->animateReset()V if-eqz v2, :done - invoke-static {}, Lradiant/swipe/ComposeTapGuard;->suppressAfterSwipe()V + invoke-static {}, Lradiant/gestures/queue/ComposeTapGuard;->suppressAfterSwipe()V - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->action:Lradiant/gestures/queue/ComposeSwipeAction; if-eqz v0, :done - invoke-interface {v0, v2}, Lradiant/swipe/ComposeSwipeAction;->invoke(I)Ljava/lang/Object; + invoke-interface {v0, v2}, Lradiant/gestures/queue/ComposeSwipeAction;->invoke(I)Ljava/lang/Object; goto :done :reset_only - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->releaseParent()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->releaseParent()V - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->animateReset()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->animateReset()V :done return-void @@ -414,7 +414,7 @@ .method isCorrectDirection(F)Z .locals 1 - invoke-virtual {p0, p1}, Lradiant/swipe/ComposeSwipeState;->actionForOffset(F)I + invoke-virtual {p0, p1}, Lradiant/gestures/queue/ComposeSwipeState;->actionForOffset(F)I move-result v0 @@ -433,19 +433,19 @@ .method move(FF)V .locals 8 - iget-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->tracking:Z + iget-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->tracking:Z if-eqz v0, :done - iget v0, p0, Lradiant/swipe/ComposeSwipeState;->downX:F + iget v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->downX:F sub-float v0, p1, v0 - iget v1, p0, Lradiant/swipe/ComposeSwipeState;->downY:F + iget v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->downY:F sub-float v1, p2, v1 - iget-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iget-boolean v2, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z if-nez v2, :publish @@ -459,7 +459,7 @@ const/high16 v4, 0x41000000 # 8.0f - invoke-virtual {p0, v4}, Lradiant/swipe/ComposeSwipeState;->dp(F)F + invoke-virtual {p0, v4}, Lradiant/gestures/queue/ComposeSwipeState;->dp(F)F move-result v4 @@ -476,27 +476,27 @@ if-gtz v5, :horizontal_candidate - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->cancelGesture()V return-void :horizontal_candidate - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSwipeState;->isCorrectDirection(F)Z move-result v5 if-nez v5, :lock - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->cancelGesture()V return-void :lock const/4 v5, 0x1 - iput-boolean v5, p0, Lradiant/swipe/ComposeSwipeState;->locked:Z + iput-boolean v5, p0, Lradiant/gestures/queue/ComposeSwipeState;->locked:Z - iget-object v6, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + iget-object v6, p0, Lradiant/gestures/queue/ComposeSwipeState;->view:Landroid/view/View; if-eqz v6, :publish @@ -509,7 +509,7 @@ invoke-interface {v6, v5}, Landroid/view/ViewParent;->requestDisallowInterceptTouchEvent(Z)V :publish - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->isCorrectDirection(F)Z + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSwipeState;->isCorrectDirection(F)Z move-result v2 @@ -517,16 +517,16 @@ const/4 v2, 0x0 - invoke-virtual {p0, v2}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + invoke-virtual {p0, v2}, Lradiant/gestures/queue/ComposeSwipeState;->setOffset(F)V - iput-boolean v2, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iput-boolean v2, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z return-void :set_offset - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSwipeState;->setOffset(F)V + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ComposeSwipeState;->setOffset(F)V - iget v2, p0, Lradiant/swipe/ComposeSwipeState;->rowWidth:F + iget v2, p0, Lradiant/gestures/queue/ComposeSwipeState;->rowWidth:F const/4 v3, 0x0 @@ -554,13 +554,13 @@ const/4 v0, 0x0 :arm_ready - iget-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iget-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z if-eq v0, v1, :done - iput-boolean v0, p0, Lradiant/swipe/ComposeSwipeState;->armed:Z + iput-boolean v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->armed:Z - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->view:Landroid/view/View; if-eqz v0, :done @@ -575,7 +575,7 @@ .method releaseParent()V .locals 2 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->view:Landroid/view/View; if-eqz v0, :done @@ -596,32 +596,32 @@ .method setOffset(F)V .locals 1 - iget-object v0, p0, Lradiant/swipe/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->translation:Landroidx/compose/runtime/MutableFloatState; invoke-interface {v0, p1}, Landroidx/compose/runtime/MutableFloatState;->setFloatValue(F)V return-void .end method -.method update(Lradiant/swipe/ComposeSwipeAction;ZLandroid/view/View;)V +.method update(Lradiant/gestures/queue/ComposeSwipeAction;ZLandroid/view/View;)V .locals 4 - iput-object p1, p0, Lradiant/swipe/ComposeSwipeState;->action:Lradiant/swipe/ComposeSwipeAction; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSwipeState;->action:Lradiant/gestures/queue/ComposeSwipeAction; - iput-object p3, p0, Lradiant/swipe/ComposeSwipeState;->view:Landroid/view/View; + iput-object p3, p0, Lradiant/gestures/queue/ComposeSwipeState;->view:Landroid/view/View; invoke-virtual {p3}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object v0 - iget-object v1, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + iget-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->context:Landroid/content/Context; if-ne v0, v1, :load_resources goto :context_ready :load_resources - iput-object v0, p0, Lradiant/swipe/ComposeSwipeState;->context:Landroid/content/Context; + iput-object v0, p0, Lradiant/gestures/queue/ComposeSwipeState;->context:Landroid/content/Context; sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I @@ -640,7 +640,7 @@ invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_icon - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->addIcon:Landroid/graphics/drawable/Drawable; sget v1, Lcom/aspiro/wamp/R$drawable;->ic_play_next:I @@ -659,7 +659,7 @@ invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_play_next_icon - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->playNextIcon:Landroid/graphics/drawable/Drawable; sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_playlist:I @@ -678,17 +678,17 @@ invoke-virtual {v1, v2}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_add_to_playlist_icon - iput-object v1, p0, Lradiant/swipe/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + iput-object v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; :context_ready if-eqz p1, :enabled_ready - invoke-interface {p1, v0}, Lradiant/swipe/ComposeSwipeAction;->setContext(Landroid/content/Context;)V + invoke-interface {p1, v0}, Lradiant/gestures/queue/ComposeSwipeAction;->setContext(Landroid/content/Context;)V :enabled_ready - iget-boolean v1, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + iget-boolean v1, p0, Lradiant/gestures/queue/ComposeSwipeState;->enabled:Z - iput-boolean p2, p0, Lradiant/swipe/ComposeSwipeState;->enabled:Z + iput-boolean p2, p0, Lradiant/gestures/queue/ComposeSwipeState;->enabled:Z if-nez v1, :was_enabled @@ -697,7 +697,7 @@ :was_enabled if-nez p2, :done - invoke-virtual {p0}, Lradiant/swipe/ComposeSwipeState;->cancelGesture()V + invoke-virtual {p0}, Lradiant/gestures/queue/ComposeSwipeState;->cancelGesture()V :done return-void diff --git a/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali b/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali new file mode 100644 index 0000000..e275a6f --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali @@ -0,0 +1,97 @@ +.class public final Lradiant/gestures/queue/ComposeTapGuard; +.super Ljava/lang/Object; +.implements Lam0/a; # MARKER: R8 Lam0/a; + + +# static fields +.field private static volatile deadline:J + + +# instance fields +.field private final delegate:Lam0/a; # MARKER: R8 Lam0/a; + + +# direct methods +.method public constructor (Lam0/a;)V # MARKER: R8 Lam0/a; + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lam0/a; # MARKER: R8 Lam0/a; + + return-void +.end method + +.method public static isSuppressed()Z + .locals 5 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + sget-wide v2, Lradiant/gestures/queue/ComposeTapGuard;->deadline:J + + cmp-long v4, v0, v2 + + if-ltz v4, :suppressed + + const/4 v0, 0x0 + + return v0 + + :suppressed + const/4 v0, 0x1 + + return v0 +.end method + +.method public static suppressAfterSwipe()V + .locals 4 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + const-wide/16 v2, 0x96 + + add-long/2addr v0, v2 + + sput-wide v0, Lradiant/gestures/queue/ComposeTapGuard;->deadline:J + + return-void +.end method + +.method public static wrap(Lam0/a;)Lam0/a; # MARKER: R8 Lam0/a; + .locals 1 + + new-instance v0, Lradiant/gestures/queue/ComposeTapGuard; + + invoke-direct {v0, p0}, Lradiant/gestures/queue/ComposeTapGuard;->(Lam0/a;)V # MARKER: R8 Lam0/a; + + return-object v0 +.end method + + +# virtual methods +.method public invoke()Ljava/lang/Object; + .locals 1 + + invoke-static {}, Lradiant/gestures/queue/ComposeTapGuard;->isSuppressed()Z + + move-result v0 + + if-eqz v0, :dispatch + + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 + + :dispatch + iget-object v0, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lam0/a; # MARKER: R8 Lam0/a; + + invoke-interface {v0}, Lam0/a;->invoke()Ljava/lang/Object; # MARKER: R8 Lam0/a; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali b/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali new file mode 100644 index 0000000..f6f540d --- /dev/null +++ b/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali @@ -0,0 +1,844 @@ +.class public final Lradiant/gestures/queue/DynamicMediaQueue; +.super Ljava/lang/Object; +.source "DynamicMediaQueue.smali" + + +# direct methods +.method public static handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a; + .locals 13 + + if-eqz p0, :done + + if-eqz p1, :done + + iget v4, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v5, 0x1 + + if-lt v4, v5, :done + + const/4 v5, 0x3 + + if-gt v4, v5, :done + + iget-object v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iget v3, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->mediaType:I + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + const/4 v4, 0x1 + + if-lt v3, v4, :done + + const/4 v4, 0x4 + + if-gt v3, v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + + move-result-object v4 + + instance-of v5, v4, Lc60/f; # MARKER: R8 Lc60/f; + + if-eqz v5, :done + + check-cast v4, Lc60/f; # MARKER: R8 Lc60/f; + + iget-object v5, v4, Lc60/f;->b:Ljava/lang/String; # MARKER: R8 Lc60/f; b + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/f;->g:Ljava/util/ArrayList; # MARKER: R8 Lc60/f; g + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_media + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v6 + + instance-of v5, v6, Lc60/r; # MARKER: R8 Lc60/r; + + if-eqz v5, :find_media + + check-cast v6, Lc60/r; # MARKER: R8 Lc60/r; + + invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_media + + instance-of v5, v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + if-eqz v5, :done + + check-cast v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + iget-object v7, v6, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + + const/4 v5, 0x1 + + if-ne v3, v5, :check_mix + + instance-of v5, v7, Lh40/a; # MARKER: R8 Lh40/a; + + if-eqz v5, :done + + goto :dependencies + + :check_mix + const/4 v5, 0x2 + + if-ne v3, v5, :check_playlist + + instance-of v5, v7, Lh40/i; # MARKER: R8 Lh40/i; + + if-eqz v5, :done + + goto :dependencies + + :check_playlist + const/4 v5, 0x3 + + if-ne v3, v5, :check_track + + instance-of v5, v7, Lh40/j; # MARKER: R8 Lh40/j; + + if-eqz v5, :done + + goto :dependencies + + :check_track + instance-of v5, v7, Lh40/p; # MARKER: R8 Lh40/p; + + if-eqz v5, :done + + :dependencies + iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;->b:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a; Lcom/tidal/android/dynamicpages/ui/b; b + + instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v5, :done + + check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v5, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v5, :done + + iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; b + + new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v11, v4, Lc60/f;->a:Ljava/lang/String; # MARKER: R8 Lc60/f; a + + iget v12, v4, Lc60/f;->d:I # MARKER: R8 Lc60/f; d + + invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v12 + + invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v3, v0, :mix + + check-cast v7, Lh40/a; # MARKER: R8 Lh40/a; + + invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + + move-result-object v12 + + invoke-static {v8}, Lradiant/gestures/queue/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_album_to_playlist + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_album + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :mix + const/4 v0, 0x2 + + if-ne v3, v0, :playlist + + check-cast v7, Lh40/i; # MARKER: R8 Lh40/i; + + invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + + move-result-object v12 + + invoke-static {v8}, Lradiant/gestures/queue/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_mix_to_playlist + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_mix + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v3, v0, :track + + check-cast v7, Lh40/j; # MARKER: R8 Lh40/j; + + invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + + move-result-object v12 + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_playlist_to_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :track + check-cast v7, Lh40/p; # MARKER: R8 Lh40/p; + + invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + + move-result-object v12 + + const/4 v6, 0x0 + + if-eqz v9, :navigation_ready + + invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b + + move-result-object v6 + + :navigation_ready + iget-object v0, v4, Lc60/f;->e:Ljava/lang/String; # MARKER: R8 Lc60/f; e + + invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + + move-result-object v11 + + invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_track_to_playlist + + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + + :append_track + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method public static handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-lt v0, v1, :done + + const/4 v1, 0x3 + + if-gt v0, v1, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->mediaType:I + + const/4 v1, 0x3 + + if-ne v0, v1, :done + + iget-object v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + + move-result-object v3 + + instance-of v4, v3, Lc60/v; # MARKER: R8 Lc60/v; + + if-eqz v4, :done + + check-cast v3, Lc60/v; # MARKER: R8 Lc60/v; + + iget-object v4, v3, Lc60/v;->b:Ljava/lang/String; # MARKER: R8 Lc60/v; b + + invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v3, Lc60/v;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/v; f + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_playlist + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v4 + + if-eqz v4, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v4 + + instance-of v5, v4, Lc60/r; # MARKER: R8 Lc60/r; + + if-eqz v5, :find_playlist + + check-cast v4, Lc60/r; # MARKER: R8 Lc60/r; + + invoke-static {v4}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_playlist + + instance-of v5, v4, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + if-eqz v5, :done + + check-cast v4, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + iget-object v4, v4, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + + instance-of v5, v4, Lh40/j; # MARKER: R8 Lh40/j; + + if-eqz v5, :done + + check-cast v4, Lh40/j; # MARKER: R8 Lh40/j; + + iget-object v5, p0, Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;->f:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/b; f + + instance-of v6, v5, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v6, :done + + check-cast v5, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v6, :done + + iget-object v7, v5, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; b + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v9, v3, Lc60/v;->a:Ljava/lang/String; # MARKER: R8 Lc60/v; a + + iget v10, v3, Lc60/v;->e:I # MARKER: R8 Lc60/v; e + + invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v10 + + invoke-direct {v8, v0, v9, v10}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + invoke-static {v4}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + + move-result-object v4 + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_playlist_to_playlist + + invoke-static {v6, v4, v8, v7}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v6, v4, v8, v7}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist + invoke-static {v6, v4, v8, v7}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + :done + return-void +.end method + +.method public static handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V + .locals 13 + + if-eqz p0, :done + + if-eqz p1, :done + + iget v4, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v5, 0x1 + + if-lt v4, v5, :done + + const/4 v5, 0x3 + + if-gt v4, v5, :done + + iget-object v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iget-object v1, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iget-object v2, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iget v3, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->mediaType:I + + if-eqz v0, :done + + if-eqz v1, :done + + if-eqz v2, :done + + const/4 v4, 0x1 + + if-lt v3, v4, :done + + const/4 v4, 0x4 + + if-gt v3, v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + + move-result-object v4 + + instance-of v5, v4, Lc60/c0; # MARKER: R8 Lc60/c0; + + if-eqz v5, :done + + check-cast v4, Lc60/c0; # MARKER: R8 Lc60/c0; + + iget-object v5, v4, Lc60/c0;->b:Ljava/lang/String; # MARKER: R8 Lc60/c0; b + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/c0;->g:Ljava/util/ArrayList; # MARKER: R8 Lc60/c0; g + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_media + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v6 + + instance-of v5, v6, Lc60/r; # MARKER: R8 Lc60/r; + + if-eqz v5, :find_media + + check-cast v6, Lc60/r; # MARKER: R8 Lc60/r; + + invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + + move-result-object v5 + + invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v5 + + if-eqz v5, :find_media + + instance-of v5, v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + if-eqz v5, :done + + check-cast v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + iget-object v7, v6, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + + const/4 v5, 0x1 + + if-ne v3, v5, :check_mix + + instance-of v5, v7, Lh40/a; # MARKER: R8 Lh40/a; + + if-eqz v5, :done + + goto :dependencies + + :check_mix + const/4 v5, 0x2 + + if-ne v3, v5, :check_playlist + + instance-of v5, v7, Lh40/i; # MARKER: R8 Lh40/i; + + if-eqz v5, :done + + goto :dependencies + + :check_playlist + const/4 v5, 0x3 + + if-ne v3, v5, :check_track + + instance-of v5, v7, Lh40/j; # MARKER: R8 Lh40/j; + + if-eqz v5, :done + + goto :dependencies + + :check_track + instance-of v5, v7, Lh40/p; # MARKER: R8 Lh40/p; + + if-eqz v5, :done + + :dependencies + iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;->e:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/b; e + + instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v5, :done + + check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v5, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + if-eqz v5, :done + + iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; b + + new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget-object v11, v4, Lc60/c0;->a:Ljava/lang/String; # MARKER: R8 Lc60/c0; a + + iget v12, v4, Lc60/c0;->f:I # MARKER: R8 Lc60/c0; f + + invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v12 + + invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + const/4 v0, 0x1 + + if-ne v3, v0, :mix + + check-cast v7, Lh40/a; # MARKER: R8 Lh40/a; + + invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + + move-result-object v12 + + invoke-static {v8}, Lradiant/gestures/queue/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_album_to_playlist + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_album_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_album + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_album + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :mix + const/4 v0, 0x2 + + if-ne v3, v0, :playlist + + check-cast v7, Lh40/i; # MARKER: R8 Lh40/i; + + invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + + move-result-object v12 + + invoke-static {v8}, Lradiant/gestures/queue/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; + + move-result-object v6 + + if-eqz v6, :done + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_mix_to_playlist + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :check_add_mix_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_mix + + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; + + goto :done + + :append_mix + invoke-static {v5, v12, v10, v9, v6}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; + + goto :done + + :playlist + const/4 v0, 0x3 + + if-ne v3, v0, :track + + check-cast v7, Lh40/j; # MARKER: R8 Lh40/j; + + invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + + move-result-object v12 + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_playlist_to_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :check_add_playlist_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_playlist + + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :append_playlist + invoke-static {v5, v12, v10, v9}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + + goto :done + + :track + check-cast v7, Lh40/p; # MARKER: R8 Lh40/p; + + invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + + move-result-object v12 + + const/4 v6, 0x0 + + if-eqz v9, :navigation_ready + + invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b + + move-result-object v6 + + :navigation_ready + iget-object v0, v4, Lc60/c0;->c:Ljava/lang/String; # MARKER: R8 Lc60/c0; c + + invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + + move-result-object v11 + + invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + const/4 v1, 0x1 + + if-ne v0, v1, :check_add_track_to_playlist + + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :check_add_track_to_playlist + const/4 v1, 0x3 + + if-ne v0, v1, :append_track + + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + + :append_track + invoke-static {v5, v12, v10, v11}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method + +.method private static menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; + .locals 2 + + iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/c;->a:Lcom/aspiro/wamp/core/k; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lcom/aspiro/wamp/core/k; a + + instance-of v1, v0, Lh9/p1; # MARKER: R8 Lh9/p1; + + if-eqz v1, :invalid + + check-cast v0, Lh9/p1; # MARKER: R8 Lh9/p1; + + iget-object v0, v0, Lh9/p1;->b:Lx40/a; # MARKER: R8 Lh9/p1; Lx40/a; b + + instance-of v1, v0, Lh4/a; # MARKER: R8 Lh4/a; + + if-eqz v1, :invalid + + check-cast v0, Lh4/a; # MARKER: R8 Lh4/a; + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali b/patches/extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali new file mode 100644 index 0000000..aa5c240 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali @@ -0,0 +1,43 @@ +.class public final Lradiant/gestures/queue/DynamicMediaQueueEvent; +.super Ljava/lang/Object; +.source "DynamicMediaQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b; +.implements Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b; + + +# instance fields +.field public final action:I + +.field public final context:Landroid/content/Context; + +.field public final itemId:Ljava/lang/String; + +.field public final mediaType:I + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-object p4, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; + + iput p5, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->mediaType:I + + iput p6, p0, Lradiant/gestures/queue/DynamicMediaQueueEvent;->action:I + + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali b/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali new file mode 100644 index 0000000..486135e --- /dev/null +++ b/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali @@ -0,0 +1,189 @@ +.class public final Lradiant/gestures/queue/DynamicTrackQueue; +.super Ljava/lang/Object; +.source "DynamicTrackQueue.smali" + + +# direct methods +.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/gestures/queue/DynamicTrackQueueEvent;)V + .locals 11 + + if-eqz p0, :done + + if-eqz p1, :done + + iget-object v0, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; + + if-eqz v0, :done + + invoke-virtual {v0}, Ljava/lang/String;->length()I + + move-result v1 + + if-lez v1, :done + + iget-object v1, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/lang/String;->length()I + + move-result v2 + + if-lez v2, :done + + iget-wide v2, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->trackId:J + + const-wide/16 v4, 0x0 + + cmp-long v4, v2, v4 + + if-lez v4, :done + + invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + + move-result-object v4 + + instance-of v5, v4, Lc60/b0; # MARKER: R8 Lc60/b0; + + if-eqz v5, :done + + check-cast v4, Lc60/b0; # MARKER: R8 Lc60/b0; + + iget-object v5, v4, Lc60/b0;->b:Ljava/lang/String; # MARKER: R8 Lc60/b0; b + + invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :done + + iget-object v1, v4, Lc60/b0;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/b0; f + + if-eqz v1, :done + + invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v1 + + :find_track + invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z + + move-result v5 + + if-eqz v5, :done + + invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v5 + + instance-of v6, v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + if-eqz v6, :find_track + + check-cast v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + + iget-object v5, v5, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + + instance-of v6, v5, Lh40/p; # MARKER: R8 Lh40/p; + + if-eqz v6, :find_track + + check-cast v5, Lh40/p; # MARKER: R8 Lh40/p; + + iget-wide v6, v5, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + + cmp-long v6, v6, v2 + + if-nez v6, :find_track + + iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/b; b + + instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + if-eqz v2, :done + + check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; + + iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; b + + if-eqz v6, :done + + iget-object v1, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->context:Landroid/content/Context; + + if-eqz v1, :done + + invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + + move-result-object v7 + + if-eqz v7, :done + + iget-object v2, v4, Lc60/b0;->a:Ljava/lang/String; # MARKER: R8 Lc60/b0; a + + if-eqz v2, :done + + invoke-virtual {v2}, Ljava/lang/String;->length()I + + move-result v3 + + if-lez v3, :done + + new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + + iget v3, v4, Lc60/b0;->e:I # MARKER: R8 Lc60/b0; e + + invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; + + move-result-object v3 + + invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + + iget-wide v2, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->trackId:J + + invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v2 + + iget-object v3, v4, Lc60/b0;->c:Ljava/lang/String; # MARKER: R8 Lc60/b0; c + + if-eqz v3, :done + + iget-object v10, v4, Lc60/b0;->g:Ljava/lang/String; # MARKER: R8 Lc60/b0; g + + invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; # MARKER: R8 a + + move-result-object v4 + + invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; j + + move-result-object v9 + + if-eqz v9, :done + + invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V + + iget v0, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent;->action:I + + const/4 v2, 0x1 + + if-ne v0, v2, :check_add_to_playlist + + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + goto :done + + :check_add_to_playlist + const/4 v2, 0x3 + + if-ne v0, v2, :append + + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + + :append + invoke-static {v1, v7, v8, v9}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + :done + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali b/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali new file mode 100644 index 0000000..b8c7838 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali @@ -0,0 +1,113 @@ +.class public final Lradiant/gestures/queue/DynamicTrackQueueAction; +.super Ljava/lang/Object; +.source "DynamicTrackQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + + iput-wide v0, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 8 + + iget-wide v1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->trackId:J + + const/4 v0, 0x3 + + if-eq p1, v0, :active_queue + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v0 + + if-nez v0, :active_queue + + new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; + + iget-object v3, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iget-object v4, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;->(JLjava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; + + goto :emit + + :active_queue + new-instance v0, Lradiant/gestures/queue/DynamicTrackQueueEvent; + + iget-object v1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v2, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; + + iget-wide v4, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->trackId:J + + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V + + :emit + iget-object v7, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/DynamicTrackQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali b/patches/extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali new file mode 100644 index 0000000..44b9321 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali @@ -0,0 +1,38 @@ +.class public final Lradiant/gestures/queue/DynamicTrackQueueEvent; +.super Ljava/lang/Object; +.source "DynamicTrackQueueEvent.smali" + +# interfaces +.implements Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b; + + +# instance fields +.field public final action:I + +.field public final context:Landroid/content/Context; + +.field public final moduleUuid:Ljava/lang/String; + +.field public final pageId:Ljava/lang/String; + +.field public final trackId:J + + +# direct methods +.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/DynamicTrackQueueEvent;->context:Landroid/content/Context; + + iput-object p2, p0, Lradiant/gestures/queue/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; + + iput-wide p4, p0, Lradiant/gestures/queue/DynamicTrackQueueEvent;->trackId:J + + iput p6, p0, Lradiant/gestures/queue/DynamicTrackQueueEvent;->action:I + + return-void +.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackResolver.smali b/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali similarity index 54% rename from patches/extension/radiant/swipe/DynamicTrackResolver.smali rename to patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali index 512c0b2..ef801ae 100644 --- a/patches/extension/radiant/swipe/DynamicTrackResolver.smali +++ b/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/DynamicTrackResolver; +.class public final Lradiant/gestures/queue/DynamicTrackResolver; .super Ljava/lang/Object; .source "DynamicTrackResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -11,20 +11,20 @@ # direct methods -.method private currentAlbumRow(Lradiant/swipe/QueueRequest;)Lu5/b$a; +.method private currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lu5/b$a; # MARKER: R8 Lu5/b$a; .locals 9 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lu5/b$a; + instance-of v1, v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; if-eqz v1, :invalid - check-cast v0, Lu5/b$a; + check-cast v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; - iget-object v1, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -38,17 +38,17 @@ move-result-object v2 - instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; + instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; if-eqz v1, :invalid - check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; + check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; invoke-virtual {v2}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object v2 - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :check_size @@ -68,47 +68,47 @@ move-result-object v2 - instance-of v3, v2, Lu5/b$a; + instance-of v3, v2, Lu5/b$a; # MARKER: R8 Lu5/b$a; if-eqz v3, :invalid - check-cast v2, Lu5/b$a; + check-cast v2, Lu5/b$a; # MARKER: R8 Lu5/b$a; - iget-object v3, v0, Lu5/b$a;->a:Lu5/b$a$a; + iget-object v3, v0, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a - iget-object v4, v2, Lu5/b$a;->a:Lu5/b$a$a; + iget-object v4, v2, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a if-ne v3, v4, :invalid - iget-wide v3, v0, Lu5/b$a;->b:J + iget-wide v3, v0, Lu5/b$a;->b:J # MARKER: R8 Lu5/b$a; b - iget-wide v5, v2, Lu5/b$a;->b:J + iget-wide v5, v2, Lu5/b$a;->b:J # MARKER: R8 Lu5/b$a; b cmp-long v7, v3, v5 if-nez v7, :invalid - iget-object v3, v0, Lu5/b$a;->c:Lu5/b$a$b; + iget-object v3, v0, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c - iget-object v4, v2, Lu5/b$a;->c:Lu5/b$a$b; + iget-object v4, v2, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c if-eqz v3, :invalid if-eqz v4, :invalid - iget v5, v3, Lu5/b$a$b;->r:I + iget v5, v3, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r - iget v6, v4, Lu5/b$a$b;->r:I + iget v6, v4, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r - iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + iget v7, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v5, v7, :invalid if-ne v6, v7, :invalid - iget-object v5, v3, Lu5/b$a$b;->s:Ljava/lang/String; + iget-object v5, v3, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s - iget-object v6, v4, Lu5/b$a$b;->s:Ljava/lang/String; + iget-object v6, v4, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s if-eq v5, v6, :module_valid @@ -121,7 +121,7 @@ if-eqz v5, :invalid :module_valid - iget-object v5, v4, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; + iget-object v5, v4, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lu5/b$a$b; g invoke-interface {v5}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z @@ -129,7 +129,7 @@ if-eqz v5, :invalid - iget-boolean v5, v4, Lu5/b$a$b;->p:Z + iget-boolean v5, v4, Lu5/b$a$b;->p:Z # MARKER: R8 Lu5/b$a$b; p if-nez v5, :invalid @@ -150,25 +150,25 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; return-void .end method -.method private currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; +.method private currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; .locals 8 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lo6/b; + instance-of v1, v0, Lo6/b; # MARKER: R8 Lo6/b; if-eqz v1, :invalid - check-cast v0, Lo6/b; + check-cast v0, Lo6/b; # MARKER: R8 Lo6/b; - iget-object v1, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -182,17 +182,17 @@ move-result-object v2 - instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; + instance-of v1, v2, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; if-eqz v1, :invalid - check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; + check-cast v2, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; invoke-virtual {v2}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object v2 - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :check_size @@ -212,53 +212,53 @@ move-result-object v2 - instance-of v3, v2, Lo6/b; + instance-of v3, v2, Lo6/b; # MARKER: R8 Lo6/b; if-eqz v3, :invalid - check-cast v2, Lo6/b; + check-cast v2, Lo6/b; # MARKER: R8 Lo6/b; - iget-object v3, v0, Lo6/b;->a:Lo6/i; + iget-object v3, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a - iget-object v4, v2, Lo6/b;->a:Lo6/i; + iget-object v4, v2, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a if-ne v3, v4, :invalid - iget-wide v3, v0, Lo6/b;->b:J + iget-wide v3, v0, Lo6/b;->b:J # MARKER: R8 Lo6/b; b - iget-wide v5, v2, Lo6/b;->b:J + iget-wide v5, v2, Lo6/b;->b:J # MARKER: R8 Lo6/b; b cmp-long v7, v3, v5 if-nez v7, :invalid - iget-object v3, v0, Lo6/b;->c:Lo6/b$a; + iget-object v3, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c - iget-object v4, v2, Lo6/b;->c:Lo6/b$a; + iget-object v4, v2, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c if-eqz v3, :invalid if-eqz v4, :invalid - iget v5, v3, Lo6/b$a;->d:I + iget v5, v3, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d - iget v6, v4, Lo6/b$a;->d:I + iget v6, v4, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d - iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + iget v7, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v5, v7, :invalid if-ne v6, v7, :invalid - iget v5, v3, Lo6/b$a;->o:I + iget v5, v3, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o - iget v6, v4, Lo6/b$a;->o:I + iget v6, v4, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o if-ne v5, v6, :invalid - iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; + iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q - iget-object v6, v4, Lo6/b$a;->q:Ljava/lang/String; + iget-object v6, v4, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q if-eq v5, v6, :valid @@ -279,22 +279,22 @@ return-object v0 .end method -.method private currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; +.method private currentTrack(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/Track; .locals 7 - invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; move-result-object v0 if-eqz v0, :invalid - iget-object v1, v0, Lo6/b;->a:Lo6/i; + iget-object v1, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a - iget-object v2, v0, Lo6/b;->c:Lo6/b$a; + iget-object v2, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c - iget-object v3, v1, Lo6/i;->p:Ljava/util/LinkedHashMap; + iget-object v3, v1, Lo6/i;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Lo6/i; p - iget-object v4, v2, Lo6/b$a;->q:Ljava/lang/String; + iget-object v4, v2, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; @@ -310,7 +310,7 @@ move-result-object v3 - iget v4, v2, Lo6/b$a;->o:I + iget v4, v2, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o if-gez v4, :check_size @@ -340,11 +340,11 @@ move-result v4 - iget v5, p1, Lradiant/swipe/QueueRequest;->id:I + iget v5, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v4, v5, :invalid - iget-object v1, v1, Lo6/i;->g:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v1, v1, Lo6/i;->g:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lo6/i; g invoke-interface {v1, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; @@ -364,10 +364,10 @@ return-object v0 .end method -.method private resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method private resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - iget-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -390,11 +390,11 @@ move-result-object p1 - instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; + instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; if-eqz v0, :invalid - check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; + check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -418,17 +418,17 @@ move-result-object p1 - instance-of v0, p1, Lu5/b$a; + instance-of v0, p1, Lu5/b$a; # MARKER: R8 Lu5/b$a; if-eqz v0, :invalid - check-cast p1, Lu5/b$a; + check-cast p1, Lu5/b$a; # MARKER: R8 Lu5/b$a; - iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; + iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c if-eqz v0, :invalid - iget-object v1, v0, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; + iget-object v1, v0, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lu5/b$a$b; g invoke-interface {v1}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z @@ -436,15 +436,15 @@ if-eqz v1, :invalid - iget-boolean v1, v0, Lu5/b$a$b;->p:Z + iget-boolean v1, v0, Lu5/b$a$b;->p:Z # MARKER: R8 Lu5/b$a$b; p if-nez v1, :invalid - iget v0, v0, Lu5/b$a$b;->r:I + iget v0, v0, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r - new-instance v1, Lradiant/swipe/QueueRequest; + new-instance v1, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v1, p2, p1, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v1, p2, p1, v0}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v1 @@ -459,11 +459,11 @@ if-eqz p0, :done - new-instance v0, Lradiant/swipe/DynamicTrackResolver; + new-instance v0, Lradiant/gestures/queue/DynamicTrackResolver; - invoke-direct {v0, p0}, Lradiant/swipe/DynamicTrackResolver;->(Landroidx/recyclerview/widget/RecyclerView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/DynamicTrackResolver;->(Landroidx/recyclerview/widget/RecyclerView;)V - invoke-static {p0, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p0, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -471,28 +471,28 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 9 - iget v8, p1, Lradiant/swipe/QueueRequest;->action:I + iget v8, p1, Lradiant/gestures/queue/QueueRequest;->action:I - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lu5/b$a; + instance-of v1, v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; if-eqz v1, :dynamic_track - invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentAlbumRow(Lradiant/swipe/QueueRequest;)Lu5/b$a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lu5/b$a; # MARKER: R8 Lu5/b$a; move-result-object v0 if-eqz v0, :done - new-instance v1, Lradiant/swipe/AlbumItemQueueAction; + new-instance v1, Lradiant/gestures/queue/AlbumItemQueueAction; - invoke-direct {v1, v0}, Lradiant/swipe/AlbumItemQueueAction;->(Lu5/b$a;)V + invoke-direct {v1, v0}, Lradiant/gestures/queue/AlbumItemQueueAction;->(Lu5/b$a;)V # MARKER: R8 Lu5/b$a; - iget-object v2, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -506,18 +506,18 @@ move-result-object v2 - invoke-virtual {v1, v2}, Lradiant/swipe/AlbumItemQueueAction;->setContext(Landroid/content/Context;)V + invoke-virtual {v1, v2}, Lradiant/gestures/queue/AlbumItemQueueAction;->setContext(Landroid/content/Context;)V - invoke-virtual {v1, v8}, Lradiant/swipe/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; + invoke-virtual {v1, v8}, Lradiant/gestures/queue/AlbumItemQueueAction;->invoke(I)Ljava/lang/Object; return-void :dynamic_track - invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentRow(Lradiant/swipe/QueueRequest;)Lo6/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; move-result-object v0 - invoke-direct {p0, p1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentTrack(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/Track; move-result-object v1 @@ -529,36 +529,36 @@ if-eq v8, v2, :append - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v2 if-nez v2, :append - iget-object v2, v0, Lo6/b;->a:Lo6/i; + iget-object v2, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a - iget-object v3, v0, Lo6/b;->c:Lo6/b$a; + iget-object v3, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c - iget v4, v3, Lo6/b$a;->o:I + iget v4, v3, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o - iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; + iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q - invoke-virtual {v2, v4, v5}, Lo6/i;->e(ILjava/lang/String;)V + invoke-virtual {v2, v4, v5}, Lo6/i;->e(ILjava/lang/String;)V # MARKER: R8 Lo6/i; e goto :done :append - iget-object v0, v0, Lo6/b;->a:Lo6/i; + iget-object v0, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a - iget-object v2, v0, Lo6/i;->p:Ljava/util/LinkedHashMap; + iget-object v2, v0, Lo6/i;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Lo6/i; p - iget-object v3, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v3, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - check-cast v3, Lo6/b; + check-cast v3, Lo6/b; # MARKER: R8 Lo6/b; - iget-object v3, v3, Lo6/b;->c:Lo6/b$a; + iget-object v3, v3, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c - iget-object v3, v3, Lo6/b$a;->q:Ljava/lang/String; + iget-object v3, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; @@ -598,23 +598,23 @@ move-result-object v5 - iget-object v6, v0, Lo6/i;->m:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v6, v0, Lo6/i;->m:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lo6/i; m invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getSelfLink()Ljava/lang/String; move-result-object v7 - invoke-static {v7}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; + invoke-static {v7}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; # MARKER: R8 a move-result-object v7 - invoke-static {v4, v5, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + invoke-static {v4, v5, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; j move-result-object v4 invoke-virtual {v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - iget-object v5, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v5, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v5}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -632,7 +632,7 @@ if-ne v8, v0, :check_add_to_playlist - invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v5, v1, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done @@ -641,36 +641,36 @@ if-ne v8, v0, :append_track - invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {v5, v1, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :append_track - invoke-static {v5, v1, v3, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v5, v1, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lv6/e$a; + instance-of v0, p2, Lv6/e$a; # MARKER: R8 Lv6/e$a; if-eqz v0, :dynamic_holder - invoke-direct {p0, p1, p2}, Lradiant/swipe/DynamicTrackResolver;->resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + invoke-direct {p0, p1, p2}, Lradiant/gestures/queue/DynamicTrackResolver;->resolveAlbum(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; move-result-object p1 return-object p1 :dynamic_holder - instance-of v0, p2, Lp7/a$a; + instance-of v0, p2, Lp7/a$a; # MARKER: R8 Lp7/a$a; if-eqz v0, :invalid - iget-object v0, p0, Lradiant/swipe/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -693,11 +693,11 @@ move-result-object p1 - instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; + instance-of v0, p1, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; if-eqz v0, :invalid - check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; + check-cast p1, Lcom/tidal/android/core/adapterdelegate/c; # MARKER: R8 Lcom/tidal/android/core/adapterdelegate/c; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -721,23 +721,23 @@ move-result-object p1 - instance-of v0, p1, Lo6/b; + instance-of v0, p1, Lo6/b; # MARKER: R8 Lo6/b; if-eqz v0, :invalid - check-cast p1, Lo6/b; + check-cast p1, Lo6/b; # MARKER: R8 Lo6/b; - iget-object v0, p1, Lo6/b;->c:Lo6/b$a; + iget-object v0, p1, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c if-eqz v0, :invalid - iget v0, v0, Lo6/b$a;->d:I + iget v0, v0, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d - new-instance v1, Lradiant/swipe/QueueRequest; + new-instance v1, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v1, p2, p1, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v1, p2, p1, v0}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V - invoke-direct {p0, v1}, Lradiant/swipe/DynamicTrackResolver;->currentTrack(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/Track; + invoke-direct {p0, v1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentTrack(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/Track; move-result-object p1 diff --git a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali b/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali similarity index 61% rename from patches/extension/radiant/swipe/FavoriteTracksResolver.smali rename to patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali index b1ea2bc..3ed03c6 100644 --- a/patches/extension/radiant/swipe/FavoriteTracksResolver.smali +++ b/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/FavoriteTracksResolver; +.class public final Lradiant/gestures/queue/FavoriteTracksResolver; .super Ljava/lang/Object; .source "FavoriteTracksResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,7 +20,7 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method @@ -32,11 +32,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/FavoriteTracksResolver; + new-instance v0, Lradiant/gestures/queue/FavoriteTracksResolver; - invoke-direct {v0, p0}, Lradiant/swipe/FavoriteTracksResolver;->(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/FavoriteTracksResolver;->(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -44,10 +44,10 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 3 - iget-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -57,24 +57,24 @@ if-eqz v0, :done - iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + iget v1, p1, Lradiant/gestures/queue/QueueRequest;->position:I - iget-object v2, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v2, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; check-cast v2, Lcom/aspiro/wamp/model/FavoriteTrack; - iget p1, p1, Lradiant/swipe/QueueRequest;->action:I + iget p1, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-virtual {v0, v1, v2, p1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V + invoke-virtual {v0, v1, v2, p1}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Z(ILcom/aspiro/wamp/model/FavoriteTrack;I)V # MARKER: R8 Z :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of p1, p2, Ln8/d; + instance-of p1, p2, Ln8/d; # MARKER: R8 Ln8/d; if-eqz p1, :invalid @@ -89,9 +89,9 @@ goto :invalid :has_position - check-cast p2, Ln8/d; + check-cast p2, Ln8/d; # MARKER: R8 Ln8/d; - iget-object p2, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; + iget-object p2, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Ln8/d; f instance-of v0, p2, Lcom/aspiro/wamp/model/FavoriteTrack; @@ -99,7 +99,7 @@ check-cast p2, Lcom/aspiro/wamp/model/FavoriteTrack; - iget-object v0, p0, Lradiant/swipe/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/FavoriteTracksResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -109,7 +109,7 @@ if-eqz v0, :invalid - invoke-virtual {v0, p1, p2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z + invoke-virtual {v0, p1, p2}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->Y(ILcom/aspiro/wamp/model/FavoriteTrack;)Z # MARKER: R8 Y move-result v0 @@ -119,9 +119,9 @@ move-result v0 - new-instance v1, Lradiant/swipe/QueueRequest; + new-instance v1, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v1, p1, p2, v0}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v1, p1, p2, v0}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v1 diff --git a/patches/extension/radiant/swipe/FeedResolver.smali b/patches/extension/radiant/gestures/queue/FeedResolver.smali similarity index 58% rename from patches/extension/radiant/swipe/FeedResolver.smali rename to patches/extension/radiant/gestures/queue/FeedResolver.smali index 54d7b36..7b349eb 100644 --- a/patches/extension/radiant/swipe/FeedResolver.smali +++ b/patches/extension/radiant/gestures/queue/FeedResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/FeedResolver; +.class public final Lradiant/gestures/queue/FeedResolver; .super Ljava/lang/Object; .source "FeedResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -22,13 +22,13 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; return-void .end method @@ -36,7 +36,7 @@ .method private availabilityInteractor()Lcom/aspiro/wamp/model/AvailabilityInteractor; .locals 2 - iget-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -46,19 +46,19 @@ if-eqz v0, :invalid - iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/FeedView;->d:Lv70/b; + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/FeedView;->d:Lv70/b; # MARKER: R8 Lv70/b; d - instance-of v1, v0, Lcom/tidal/android/feature/feed/ui/c; + instance-of v1, v0, Lcom/tidal/android/feature/feed/ui/c; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; if-eqz v1, :invalid - check-cast v0, Lcom/tidal/android/feature/feed/ui/c; + check-cast v0, Lcom/tidal/android/feature/feed/ui/c; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; - iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/c;->c:Lz70/a; + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/c;->c:Lz70/a; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; Lz70/a; c if-eqz v0, :invalid - iget-object v0, v0, Lz70/a;->c:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v0, v0, Lz70/a;->c:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lz70/a; c return-object v0 @@ -68,14 +68,14 @@ return-object v0 .end method -.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; +.method private current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; .locals 10 if-eqz p1, :invalid - iget-object v8, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v8, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - iget-object v0, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -85,7 +85,7 @@ if-eqz v0, :invalid - iget-object v1, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -99,15 +99,15 @@ move-result-object v2 - instance-of v3, v2, La50/b; + instance-of v3, v2, La50/b; # MARKER: R8 La50/b; if-eqz v3, :invalid - check-cast v2, La50/b; + check-cast v2, La50/b; # MARKER: R8 La50/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :check_size @@ -127,13 +127,13 @@ move-result-object v2 - invoke-direct {p0}, Lradiant/swipe/FeedResolver;->availabilityInteractor()Lcom/aspiro/wamp/model/AvailabilityInteractor; + invoke-direct {p0}, Lradiant/gestures/queue/FeedResolver;->availabilityInteractor()Lcom/aspiro/wamp/model/AvailabilityInteractor; move-result-object v4 if-eqz v4, :invalid - instance-of v3, v2, Lb80/a; + instance-of v3, v2, Lb80/a; # MARKER: R8 Lb80/a; if-eqz v3, :mix @@ -141,15 +141,15 @@ if-eqz v3, :invalid - check-cast v2, Lb80/a; + check-cast v2, Lb80/a; # MARKER: R8 Lb80/a; - iget-boolean v3, v2, Lb80/a;->c:Z + iget-boolean v3, v2, Lb80/a;->c:Z # MARKER: R8 Lb80/a; c if-eqz v3, :invalid check-cast v8, Lcom/aspiro/wamp/model/Album; - iget-object v5, v2, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + iget-object v5, v2, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a invoke-virtual {v8}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -161,7 +161,7 @@ if-ne v6, v7, :invalid - iget v6, p1, Lradiant/swipe/QueueRequest;->id:I + iget v6, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v7, v6, :invalid @@ -178,7 +178,7 @@ return-object v2 :mix - instance-of v3, v2, Lb80/c; + instance-of v3, v2, Lb80/c; # MARKER: R8 Lb80/c; if-eqz v3, :playlist @@ -186,11 +186,11 @@ if-eqz v3, :invalid - check-cast v2, Lb80/c; + check-cast v2, Lb80/c; # MARKER: R8 Lb80/c; check-cast v8, Lcom/aspiro/wamp/mix/model/Mix; - iget-object v5, v2, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v5, v2, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a invoke-virtual {v8}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -210,7 +210,7 @@ move-result v6 - iget v8, p1, Lradiant/swipe/QueueRequest;->id:I + iget v8, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v6, v8, :invalid @@ -227,7 +227,7 @@ return-object v2 :playlist - instance-of v3, v2, Lb80/d; + instance-of v3, v2, Lb80/d; # MARKER: R8 Lb80/d; if-eqz v3, :invalid @@ -235,11 +235,11 @@ if-eqz v3, :invalid - check-cast v2, Lb80/d; + check-cast v2, Lb80/d; # MARKER: R8 Lb80/d; check-cast v8, Lcom/aspiro/wamp/model/Playlist; - iget-object v5, v2, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v5, v2, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a invoke-virtual {v8}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; @@ -259,7 +259,7 @@ move-result v6 - iget v8, p1, Lradiant/swipe/QueueRequest;->id:I + iget v8, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v6, v8, :invalid @@ -310,11 +310,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/FeedResolver; + new-instance v0, Lradiant/gestures/queue/FeedResolver; - invoke-direct {v0, p0, p1}, Lradiant/swipe/FeedResolver;->(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V + invoke-direct {v0, p0, p1}, Lradiant/gestures/queue/FeedResolver;->(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -322,18 +322,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 9 - invoke-direct {p0, p1}, Lradiant/swipe/FeedResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + invoke-direct {p0, p1}, Lradiant/gestures/queue/FeedResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :done - iget-object v1, p0, Lradiant/swipe/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/FeedResolver;->fragment:Ljava/lang/ref/WeakReference; - iget p0, p1, Lradiant/swipe/QueueRequest;->action:I + iget p0, p1, Lradiant/gestures/queue/QueueRequest;->action:I invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -349,60 +349,60 @@ if-eqz v3, :done - iget-object v2, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->c:La80/c; + iget-object v2, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->c:La80/c; # MARKER: R8 La80/c; c if-eqz v2, :done - instance-of v4, v0, Lb80/a; + instance-of v4, v0, Lb80/a; # MARKER: R8 Lb80/a; if-eqz v4, :mix - check-cast v0, Lb80/a; + check-cast v0, Lb80/a; # MARKER: R8 Lb80/a; - iget-object v7, v0, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + iget-object v7, v0, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a - iget v8, v0, Lb80/a;->g:I + iget v8, v0, Lb80/a;->g:I # MARKER: R8 Lb80/a; g const/4 v4, 0x1 goto :metadata :mix - instance-of v4, v0, Lb80/c; + instance-of v4, v0, Lb80/c; # MARKER: R8 Lb80/c; if-eqz v4, :playlist - check-cast v0, Lb80/c; + check-cast v0, Lb80/c; # MARKER: R8 Lb80/c; - iget-object v7, v0, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v7, v0, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a - iget v8, v0, Lb80/c;->c:I + iget v8, v0, Lb80/c;->c:I # MARKER: R8 Lb80/c; c const/4 v4, 0x2 goto :metadata :playlist - check-cast v0, Lb80/d; + check-cast v0, Lb80/d; # MARKER: R8 Lb80/d; - iget-object v7, v0, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v7, v0, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a - iget v8, v0, Lb80/d;->c:I + iget v8, v0, Lb80/d;->c:I # MARKER: R8 Lb80/d; c const/4 v4, 0x3 :metadata - invoke-static {v8}, Lcom/tidal/android/feature/feed/ui/viewstates/UpdatedIntervals$a;->a(I)Ljava/lang/String; + invoke-static {v8}, Lcom/tidal/android/feature/feed/ui/viewstates/UpdatedIntervals$a;->a(I)Ljava/lang/String; # MARKER: R8 a move-result-object v8 - iget-object v0, v2, La80/c;->a:Ljava/lang/String; + iget-object v0, v2, La80/c;->a:Ljava/lang/String; # MARKER: R8 La80/c; a new-instance p1, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; invoke-direct {p1, v0, v8}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V - iget-object v5, v2, La80/c;->e:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v5, v2, La80/c;->e:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 La80/c; e const/4 v0, 0x3 @@ -418,28 +418,28 @@ if-ne p0, v0, :append_playlist - invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v3, v7, p1, v5}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :append_playlist - invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v3, v7, p1, v5}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :add_to_playlist_playlist - invoke-static {v3, v7, p1, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v3, v7, p1, v5}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :collection - iget-object v6, v2, La80/c;->b:Lx40/a; + iget-object v6, v2, La80/c;->b:Lx40/a; # MARKER: R8 La80/c; Lx40/a; b - instance-of v0, v6, Lh4/a; + instance-of v0, v6, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v0, :done - check-cast v6, Lh4/a; + check-cast v6, Lh4/a; # MARKER: R8 Lh4/a; const/4 v0, 0x1 @@ -455,21 +455,21 @@ if-ne p0, v0, :append_album - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v7 goto :retain :append_album - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v7 goto :retain :add_to_playlist_album - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done @@ -484,28 +484,28 @@ if-ne p0, v0, :append_mix - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v7 goto :retain :append_mix - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v7 goto :retain :add_to_playlist_mix - invoke-static {v3, v7, p1, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v3, v7, p1, v5, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done :retain if-eqz v7, :done - iget-object v0, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->f:Lio/reactivex/disposables/CompositeDisposable; + iget-object v0, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->f:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 f invoke-virtual {v0, v7}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z @@ -513,10 +513,10 @@ return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 7 - iget-object v0, p0, Lradiant/swipe/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/FeedResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -524,7 +524,7 @@ if-ne v0, p1, :invalid - instance-of v0, p2, Lw70/c$a; + instance-of v0, p2, Lw70/c$a; # MARKER: R8 Lw70/c$a; if-eqz v0, :mix_holder @@ -534,7 +534,7 @@ :mix_holder - instance-of v0, p2, Lw70/h$a; + instance-of v0, p2, Lw70/h$a; # MARKER: R8 Lw70/h$a; if-eqz v0, :playlist_holder @@ -544,7 +544,7 @@ :playlist_holder - instance-of v0, p2, Lw70/k$a; + instance-of v0, p2, Lw70/k$a; # MARKER: R8 Lw70/k$a; if-eqz v0, :invalid @@ -564,13 +564,13 @@ move-result-object p1 - instance-of v0, p1, La50/b; + instance-of v0, p1, La50/b; # MARKER: R8 La50/b; if-eqz v0, :invalid - check-cast p1, La50/b; + check-cast p1, La50/b; # MARKER: R8 La50/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I @@ -585,7 +585,7 @@ move-result-object p1 - instance-of v0, p1, Lb80/a; + instance-of v0, p1, Lb80/a; # MARKER: R8 Lb80/a; if-eqz v0, :mix @@ -593,9 +593,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/a; + check-cast p1, Lb80/a; # MARKER: R8 Lb80/a; - iget-object v1, p1, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; + iget-object v1, p1, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -604,7 +604,7 @@ goto :request :mix - instance-of v0, p1, Lb80/c; + instance-of v0, p1, Lb80/c; # MARKER: R8 Lb80/c; if-eqz v0, :playlist @@ -612,9 +612,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/c; + check-cast p1, Lb80/c; # MARKER: R8 Lb80/c; - iget-object v1, p1, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v1, p1, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a invoke-virtual {v1}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -627,7 +627,7 @@ goto :request :playlist - instance-of v0, p1, Lb80/d; + instance-of v0, p1, Lb80/d; # MARKER: R8 Lb80/d; if-eqz v0, :invalid @@ -635,9 +635,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/d; + check-cast p1, Lb80/d; # MARKER: R8 Lb80/d; - iget-object v1, p1, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v1, p1, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; @@ -648,11 +648,11 @@ move-result v2 :request - new-instance v3, Lradiant/swipe/QueueRequest; + new-instance v3, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v3, p2, v1, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v3, p2, v1, v2}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V - invoke-direct {p0, v3}, Lradiant/swipe/FeedResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + invoke-direct {p0, v3}, Lradiant/gestures/queue/FeedResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object v4 diff --git a/patches/extension/radiant/swipe/MyAlbumsResolver.smali b/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali similarity index 54% rename from patches/extension/radiant/swipe/MyAlbumsResolver.smali rename to patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali index 70292bf..1aa7857 100644 --- a/patches/extension/radiant/swipe/MyAlbumsResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/MyAlbumsResolver; +.class public final Lradiant/gestures/queue/MyAlbumsResolver; .super Ljava/lang/Object; .source "MyAlbumsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,17 +20,17 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lzc/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; .locals 7 if-eqz p1, :invalid - iget-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -40,11 +40,11 @@ if-eqz v0, :invalid - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->h:Lad/f; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->h:Lad/f; # MARKER: R8 Lad/f; h if-eqz v1, :invalid - invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->N()La50/d; + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->N()La50/d; # MARKER: R8 La50/d; N move-result-object v0 @@ -52,7 +52,7 @@ move-result-object v0 - iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + iget v1, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v1, :check_size @@ -72,23 +72,23 @@ move-result-object v0 - instance-of v1, v0, Lzc/a; + instance-of v1, v0, Lzc/a; # MARKER: R8 Lzc/a; if-eqz v1, :invalid - check-cast v0, Lzc/a; + check-cast v0, Lzc/a; # MARKER: R8 Lzc/a; - iget-boolean v1, v0, Lzc/a;->k:Z + iget-boolean v1, v0, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k if-eqz v1, :invalid - iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->id:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v1, v2, :invalid @@ -107,11 +107,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/MyAlbumsResolver; + new-instance v0, Lradiant/gestures/queue/MyAlbumsResolver; - invoke-direct {v0, p0}, Lradiant/swipe/MyAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/MyAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -119,18 +119,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 7 - iget v6, p1, Lradiant/swipe/QueueRequest;->action:I + iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/MyAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; move-result-object p1 if-eqz p1, :done - iget-object v0, p0, Lradiant/swipe/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/MyAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -140,27 +140,27 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->c:Lfd/c; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->c:Lfd/c; # MARKER: R8 Lfd/c; c if-eqz v1, :done - iget-object v2, v1, Lfd/c;->a:Lx40/a; + iget-object v2, v1, Lfd/c;->a:Lx40/a; # MARKER: R8 Lfd/c; Lx40/a; a - instance-of v3, v2, Lh4/a; + instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v3, :done - check-cast v2, Lh4/a; + check-cast v2, Lh4/a; # MARKER: R8 Lh4/a; invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v3 - iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b - iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lfd/c; d - iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lfd/c; c const/4 v1, 0x3 @@ -170,28 +170,28 @@ if-ne v6, v1, :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :add_to_playlist - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done :retain if-eqz p1, :done - iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->j:Lio/reactivex/disposables/CompositeDisposable; + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->j:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 j invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z @@ -199,10 +199,10 @@ return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 6 - instance-of v0, p2, Lbd/d$a; + instance-of v0, p2, Lbd/d$a; # MARKER: R8 Lbd/d$a; if-eqz v0, :invalid @@ -221,11 +221,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; + instance-of v0, p1, La50/d; # MARKER: R8 La50/d; if-eqz v0, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -244,25 +244,25 @@ move-result-object p1 - instance-of v0, p1, Lzc/a; + instance-of v0, p1, Lzc/a; # MARKER: R8 Lzc/a; if-eqz v0, :invalid - check-cast p1, Lzc/a; + check-cast p1, Lzc/a; # MARKER: R8 Lzc/a; - iget-boolean v0, p1, Lzc/a;->k:Z + iget-boolean v0, p1, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k if-eqz v0, :invalid - iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v1 - new-instance v2, Lradiant/swipe/QueueRequest; + new-instance v2, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v2, p2, v0, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v2, p2, v0, v1}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v2 diff --git a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali b/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali similarity index 60% rename from patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali rename to patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali index 58751f3..595d58e 100644 --- a/patches/extension/radiant/swipe/MyMixesAndRadioResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/MyMixesAndRadioResolver; +.class public final Lradiant/gestures/queue/MyMixesAndRadioResolver; .super Ljava/lang/Object; .source "MyMixesAndRadioResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,17 +20,17 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lve/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lve/a; # MARKER: R8 Lve/a; .locals 6 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; instance-of v1, v0, Lcom/aspiro/wamp/mix/model/Mix; @@ -38,7 +38,7 @@ check-cast v0, Lcom/aspiro/wamp/mix/model/Mix; - iget-object v1, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -48,11 +48,11 @@ if-eqz v1, :invalid - iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; # MARKER: R8 Lpe/f; c if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->N()La50/d; + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->N()La50/d; # MARKER: R8 La50/d; N move-result-object v1 @@ -60,7 +60,7 @@ move-result-object v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v2, :check_size @@ -80,17 +80,17 @@ move-result-object v1 - instance-of v2, v1, Lve/a; + instance-of v2, v1, Lve/a; # MARKER: R8 Lve/a; if-eqz v2, :invalid - check-cast v1, Lve/a; + check-cast v1, Lve/a; # MARKER: R8 Lve/a; - iget-boolean v2, v1, Lve/a;->f:Z + iget-boolean v2, v1, Lve/a;->f:Z # MARKER: R8 Lve/a; f if-eqz v2, :invalid - iget-object v2, v1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v2, v1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c if-eqz v2, :invalid @@ -98,7 +98,7 @@ move-result-object v0 - iget-object v3, v1, Lve/a;->a:Ljava/lang/String; + iget-object v3, v1, Lve/a;->a:Ljava/lang/String; # MARKER: R8 Lve/a; a invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -120,7 +120,7 @@ move-result v2 - iget v3, p1, Lradiant/swipe/QueueRequest;->id:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v2, v3, :invalid @@ -139,11 +139,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/MyMixesAndRadioResolver; + new-instance v0, Lradiant/gestures/queue/MyMixesAndRadioResolver; - invoke-direct {v0, p0}, Lradiant/swipe/MyMixesAndRadioResolver;->(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/MyMixesAndRadioResolver;->(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -151,18 +151,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 8 - iget v7, p1, Lradiant/swipe/QueueRequest;->action:I + iget v7, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/MyMixesAndRadioResolver;->current(Lradiant/swipe/QueueRequest;)Lve/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyMixesAndRadioResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lve/a; # MARKER: R8 Lve/a; move-result-object p1 if-eqz p1, :done - iget-object v0, p0, Lradiant/swipe/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/MyMixesAndRadioResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -172,23 +172,23 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; # MARKER: R8 Lpe/f; c if-eqz v1, :done - iget-object v2, v1, Lpe/f;->a:Lx40/a; + iget-object v2, v1, Lpe/f;->a:Lx40/a; # MARKER: R8 Lpe/f; Lx40/a; a - instance-of v3, v2, Lh4/a; + instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v3, :done - check-cast v2, Lh4/a; + check-cast v2, Lh4/a; # MARKER: R8 Lh4/a; invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v3 - iget-object v4, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v4, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c new-instance v5, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; @@ -196,7 +196,7 @@ invoke-direct {v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lpe/f; b const/4 v1, 0x3 @@ -206,28 +206,28 @@ if-ne v7, v1, :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :add_to_playlist - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done :retain if-eqz p1, :done - iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->h:Lio/reactivex/disposables/CompositeDisposable; + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->h:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 h invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z @@ -235,10 +235,10 @@ return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lqe/c$a; + instance-of v0, p2, Lqe/c$a; # MARKER: R8 Lqe/c$a; if-eqz v0, :invalid @@ -257,11 +257,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; + instance-of v0, p1, La50/d; # MARKER: R8 La50/d; if-eqz v0, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -285,21 +285,21 @@ move-result-object p1 - instance-of v0, p1, Lve/a; + instance-of v0, p1, Lve/a; # MARKER: R8 Lve/a; if-eqz v0, :invalid - check-cast p1, Lve/a; + check-cast p1, Lve/a; # MARKER: R8 Lve/a; - iget-boolean v0, p1, Lve/a;->f:Z + iget-boolean v0, p1, Lve/a;->f:Z # MARKER: R8 Lve/a; f if-eqz v0, :invalid - iget-object v0, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; + iget-object v0, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c if-eqz v0, :invalid - iget-object v1, p1, Lve/a;->a:Ljava/lang/String; + iget-object v1, p1, Lve/a;->a:Ljava/lang/String; # MARKER: R8 Lve/a; a invoke-virtual {v0}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -315,9 +315,9 @@ move-result v2 - new-instance v3, Lradiant/swipe/QueueRequest; + new-instance v3, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v3, p2, v0, v2}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v3 diff --git a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali b/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali similarity index 60% rename from patches/extension/radiant/swipe/MyPlaylistsResolver.smali rename to patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali index ce6b0a6..87ebde8 100644 --- a/patches/extension/radiant/swipe/MyPlaylistsResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/MyPlaylistsResolver; +.class public final Lradiant/gestures/queue/MyPlaylistsResolver; .super Ljava/lang/Object; .source "MyPlaylistsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,17 +20,17 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lcf/b; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; .locals 6 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; instance-of v1, v0, Lcom/aspiro/wamp/model/Playlist; @@ -38,7 +38,7 @@ check-cast v0, Lcom/aspiro/wamp/model/Playlist; - iget-object v1, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -48,11 +48,11 @@ if-eqz v1, :invalid - iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->j:Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h; + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->j:Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h; # MARKER: R8 Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h; j if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->N()La50/d; + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->N()La50/d; # MARKER: R8 La50/d; N move-result-object v1 @@ -60,7 +60,7 @@ move-result-object v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v2, :check_size @@ -80,23 +80,23 @@ move-result-object v1 - instance-of v2, v1, Lcf/b; + instance-of v2, v1, Lcf/b; # MARKER: R8 Lcf/b; if-eqz v2, :invalid - check-cast v1, Lcf/b; + check-cast v1, Lcf/b; # MARKER: R8 Lcf/b; - iget-boolean v2, v1, Lcf/b;->h:Z + iget-boolean v2, v1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h if-eqz v2, :invalid - iget-boolean v2, v1, Lcf/b;->f:Z + iget-boolean v2, v1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f if-eqz v2, :check_playlist const-string v2, "NOT_READY" - iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; + iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -105,7 +105,7 @@ if-nez v2, :invalid :check_playlist - iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -142,11 +142,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/MyPlaylistsResolver; + new-instance v0, Lradiant/gestures/queue/MyPlaylistsResolver; - invoke-direct {v0, p0}, Lradiant/swipe/MyPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/MyPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -154,18 +154,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 6 - iget v5, p1, Lradiant/swipe/QueueRequest;->action:I + iget v5, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/MyPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; move-result-object p1 if-eqz p1, :done - iget-object v0, p0, Lradiant/swipe/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/MyPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -175,7 +175,7 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->d:Lhf/c; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->d:Lhf/c; # MARKER: R8 Lhf/c; d if-eqz v1, :done @@ -183,11 +183,11 @@ move-result-object v2 - iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a - iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lhf/c; e - iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lhf/c; d const/4 v0, 0x3 @@ -197,26 +197,26 @@ if-ne v5, v0, :append - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :append - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :add_to_playlist - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Ldf/d$a; + instance-of v0, p2, Ldf/d$a; # MARKER: R8 Ldf/d$a; if-eqz v0, :invalid @@ -235,11 +235,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; + instance-of v0, p1, La50/d; # MARKER: R8 La50/d; if-eqz v0, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -258,23 +258,23 @@ move-result-object p1 - instance-of v0, p1, Lcf/b; + instance-of v0, p1, Lcf/b; # MARKER: R8 Lcf/b; if-eqz v0, :invalid - check-cast p1, Lcf/b; + check-cast p1, Lcf/b; # MARKER: R8 Lcf/b; - iget-boolean v0, p1, Lcf/b;->h:Z + iget-boolean v0, p1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h if-eqz v0, :invalid - iget-boolean v0, p1, Lcf/b;->f:Z + iget-boolean v0, p1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f if-eqz v0, :check_playlist const-string v0, "NOT_READY" - iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; + iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -283,7 +283,7 @@ if-nez v0, :invalid :check_playlist - iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -299,9 +299,9 @@ move-result v2 - new-instance v3, Lradiant/swipe/QueueRequest; + new-instance v3, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v3, p2, v0, v2}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v3 diff --git a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali b/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali similarity index 70% rename from patches/extension/radiant/swipe/PlaylistItemsResolver.smali rename to patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali index 9e52236..b683b25 100644 --- a/patches/extension/radiant/swipe/PlaylistItemsResolver.smali +++ b/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/PlaylistItemsResolver; +.class public final Lradiant/gestures/queue/PlaylistItemsResolver; .super Ljava/lang/Object; .source "PlaylistItemsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields .field private final recycler:Ljava/lang/ref/WeakReference; @@ -16,19 +16,19 @@ new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; +.method private current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; .locals 7 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - iget-object v1, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; @@ -36,12 +36,12 @@ invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v2 - instance-of v3, v2, La50/b; + instance-of v3, v2, La50/b; # MARKER: R8 La50/b; if-eqz v3, :invalid - check-cast v2, La50/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + check-cast v2, La50/b; # MARKER: R8 La50/b; + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :check_size goto :invalid @@ -94,9 +94,9 @@ if-eqz v5, :invalid :member_identity - invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {v0}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object v0 - invoke-static {v2}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {v2}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object v3 if-eqz v0, :invalid if-eqz v3, :invalid @@ -122,9 +122,9 @@ move-result v3 if-eqz v3, :invalid - invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {v0}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object v0 - invoke-static {v2}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {v2}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object v3 if-eqz v0, :invalid if-eqz v3, :invalid @@ -135,10 +135,10 @@ invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result v5 if-ne v4, v5, :invalid - iget v6, p1, Lradiant/swipe/QueueRequest;->id:I + iget v6, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v5, v6, :invalid - iget-object v4, v1, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v4, v1, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 d if-eqz v4, :invalid invoke-interface {v4, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; move-result-object v4 @@ -157,18 +157,18 @@ .locals 1 if-eqz p0, :done - new-instance v0, Lradiant/swipe/PlaylistItemsResolver; - invoke-direct {v0, p0}, Lradiant/swipe/PlaylistItemsResolver;->(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V - invoke-static {p0, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + new-instance v0, Lradiant/gestures/queue/PlaylistItemsResolver; + invoke-direct {v0, p0}, Lradiant/gestures/queue/PlaylistItemsResolver;->(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + invoke-static {p0, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void .end method -.method private playlistIndex(Lradiant/swipe/QueueRequest;)I +.method private playlistIndex(Lradiant/gestures/queue/QueueRequest;)I .locals 6 - iget-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; @@ -176,12 +176,12 @@ invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v0 - instance-of v1, v0, La50/b; + instance-of v1, v0, La50/b; # MARKER: R8 La50/b; if-eqz v1, :invalid - check-cast v0, La50/b; - iget-object v0, v0, La50/b;->b:Ljava/util/ArrayList; + check-cast v0, La50/b; # MARKER: R8 La50/b; + iget-object v0, v0, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b - iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + iget v1, p1, Lradiant/gestures/queue/QueueRequest;->position:I const/4 v2, 0x0 const/4 v3, 0x0 @@ -242,19 +242,19 @@ .end method # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 9 - iget v8, p1, Lradiant/swipe/QueueRequest;->action:I + iget v8, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + invoke-direct {p0, p1}, Lradiant/gestures/queue/PlaylistItemsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :done - invoke-static {v0}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {v0}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object v1 if-eqz v1, :done - iget-object v2, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/gestures/queue/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView; @@ -264,7 +264,7 @@ if-eq v8, v3, :build_source - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v3 if-eqz v3, :play @@ -277,30 +277,30 @@ invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object v3 sget v4, Lcom/aspiro/wamp/R$string;->recommended_tracks:I - invoke-static {v4}, Lcom/aspiro/wamp/util/h0;->c(I)Ljava/lang/String; + invoke-static {v4}, Lcom/aspiro/wamp/util/h0;->c(I)Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/util/h0; c move-result-object v4 - iget-object v5, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v5, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 h sget-object v6, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None;->INSTANCE:Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None; - invoke-static {v3, v4, v5, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + invoke-static {v3, v4, v5, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; j move-result-object v7 invoke-virtual {v7, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V sget-object v6, Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Suggestions;->INSTANCE:Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Suggestions; goto :append :append_member - iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; + iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; c if-eqz v3, :done - invoke-interface {v3}, Lcom/aspiro/wamp/playlist/ui/items/a;->k()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel; + invoke-interface {v3}, Lcom/aspiro/wamp/playlist/ui/items/a;->k()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; k move-result-object v3 invoke-virtual {v3}, Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;->getPlaylist()Lcom/aspiro/wamp/model/Playlist; move-result-object v3 if-eqz v3, :done - iget-object v4, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v4, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 h if-eqz v4, :member_nav_ready - invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b move-result-object v4 :member_nav_ready - invoke-static {v3, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->f(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/PlaylistSource; + invoke-static {v3, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->f(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/PlaylistSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; f move-result-object v7 invoke-virtual {v7, v1}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V sget-object v6, Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Items;->INSTANCE:Lcom/aspiro/wamp/playlist/ui/items/ModuleMetadata$Items; @@ -316,42 +316,42 @@ if-ne v8, v0, :append_track - invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v3, v1, v6, v7}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done :append_track - invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v3, v1, v6, v7}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done :add_to_playlist - invoke-static {v3, v1, v6, v7}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {v3, v1, v6, v7}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :play - iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; + iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; c if-eqz v3, :done instance-of v0, v0, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; if-eqz v0, :play_member - invoke-interface {v3, v1}, Lcom/aspiro/wamp/playlist/ui/items/a;->c(Lcom/aspiro/wamp/model/Track;)V + invoke-interface {v3, v1}, Lcom/aspiro/wamp/playlist/ui/items/a;->c(Lcom/aspiro/wamp/model/Track;)V # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; c goto :done :play_member - invoke-direct {p0, p1}, Lradiant/swipe/PlaylistItemsResolver;->playlistIndex(Lradiant/swipe/QueueRequest;)I + invoke-direct {p0, p1}, Lradiant/gestures/queue/PlaylistItemsResolver;->playlistIndex(Lradiant/gestures/queue/QueueRequest;)I move-result v0 if-gez v0, :start_member goto :done :start_member - invoke-interface {v3, v0}, Lcom/aspiro/wamp/playlist/ui/items/a;->i(I)V + invoke-interface {v3, v0}, Lcom/aspiro/wamp/playlist/ui/items/a;->i(I)V # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; i :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - iget-object v0, p0, Lradiant/swipe/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/PlaylistItemsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v0 if-ne v0, p1, :invalid @@ -365,10 +365,10 @@ :has_position invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object p1 - instance-of v1, p1, La50/b; + instance-of v1, p1, La50/b; # MARKER: R8 La50/b; if-eqz v1, :invalid - check-cast p1, La50/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + check-cast p1, La50/b; # MARKER: R8 La50/b; + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I move-result v1 if-lt v0, v1, :read_item @@ -378,34 +378,34 @@ invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object p1 - instance-of v1, p2, Lij/q$a; + instance-of v1, p2, Lij/q$a; # MARKER: R8 Lij/q$a; if-eqz v1, :podcast_holder instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; if-eqz v1, :invalid goto :create :podcast_holder - instance-of v1, p2, Lij/a0$a; + instance-of v1, p2, Lij/a0$a; # MARKER: R8 Lij/a0$a; if-eqz v1, :suggestion_holder instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; if-eqz v1, :invalid goto :create :suggestion_holder - instance-of p2, p2, Lij/j0$a; + instance-of p2, p2, Lij/j0$a; # MARKER: R8 Lij/j0$a; if-eqz p2, :invalid instance-of p2, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; if-eqz p2, :invalid :create - invoke-static {p1}, Lradiant/swipe/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; + invoke-static {p1}, Lradiant/gestures/queue/PlaylistItemsResolver;->track(Ljava/lang/Object;)Lcom/aspiro/wamp/model/Track; move-result-object p2 if-eqz p2, :invalid invoke-virtual {p2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result v1 - new-instance v2, Lradiant/swipe/QueueRequest; - invoke-direct {v2, v0, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V - invoke-direct {p0, v2}, Lradiant/swipe/PlaylistItemsResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + new-instance v2, Lradiant/gestures/queue/QueueRequest; + invoke-direct {v2, v0, p1, v1}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {p0, v2}, Lradiant/gestures/queue/PlaylistItemsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :invalid return-object v2 diff --git a/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali b/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali new file mode 100644 index 0000000..9c46fc4 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali @@ -0,0 +1,125 @@ +.class public final Lradiant/gestures/queue/PublicPlaylistQueueAction; +.super Ljava/lang/Object; +.source "PublicPlaylistQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V # MARKER: R8 Lam0/l; Lm40/e$d; + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + iget-object p1, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + + iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + return-void +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 7 + + iget-object v0, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + if-eqz v0, :done + + iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + iget-object v4, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + new-instance v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + const/4 v5, 0x3 + + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V + + iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + invoke-interface {v1, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + new-instance v0, Ljava/lang/StringBuilder; + + const-string v1, "ppl:" + + invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v1, 0x3a + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/QueueExecutor.smali b/patches/extension/radiant/gestures/queue/QueueExecutor.smali similarity index 60% rename from patches/extension/radiant/swipe/QueueExecutor.smali rename to patches/extension/radiant/gestures/queue/QueueExecutor.smali index d5ce7f9..d345c94 100644 --- a/patches/extension/radiant/swipe/QueueExecutor.smali +++ b/patches/extension/radiant/gestures/queue/QueueExecutor.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/swipe/QueueExecutor; +.class public final Lradiant/gestures/queue/QueueExecutor; .super Ljava/lang/Object; .source "QueueExecutor.smali" @@ -39,7 +39,7 @@ return-object p0 .end method -.method public static addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V +.method public static addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; .locals 2 if-eqz p1, :done @@ -48,37 +48,37 @@ if-eqz p4, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - iget-object v0, p4, Lh4/a;->b:Lo3/a$a; + iget-object v0, p4, Lh4/a;->b:Lo3/a$a; # MARKER: R8 Lh4/a; Lo3/a$a; b if-eqz v0, :done - invoke-interface {v0, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + invoke-interface {v0, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; # MARKER: R8 Lo3/a$a; Lo3/a; a move-result-object v0 if-eqz v0, :done - iget-object v0, v0, Lo3/a;->l:Lcom/aspiro/wamp/module/album/AlbumProvider; + iget-object v0, v0, Lo3/a;->l:Lcom/aspiro/wamp/module/album/AlbumProvider; # MARKER: R8 Lo3/a; l if-eqz v0, :done - new-instance v1, Lc3/h; + new-instance v1, Lc3/h; # MARKER: R8 Lc3/h; - invoke-direct {v1, p1, v0, p2, p3}, Lc3/h;->(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/module/album/AlbumProvider;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-direct {v1, p1, v0, p2, p3}, Lc3/h;->(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/module/album/AlbumProvider;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V # MARKER: R8 Lc3/h; - invoke-virtual {v1, p0}, Lc3/h;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {v1, p0}, Lc3/h;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/h; b :done return-void .end method -.method public static addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V +.method public static addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; .locals 1 if-eqz p1, :done @@ -87,33 +87,33 @@ if-eqz p4, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - iget-object v0, p4, Lh4/a;->h:Lu3/a$a; + iget-object v0, p4, Lh4/a;->h:Lu3/a$a; # MARKER: R8 Lh4/a; Lu3/a$a; h if-eqz v0, :done - invoke-interface {v0, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + invoke-interface {v0, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; # MARKER: R8 Lu3/a$a; Lu3/a; a move-result-object v0 if-eqz v0, :done - iget-object v0, v0, Lu3/a;->j:Lj3/k$a; + iget-object v0, v0, Lu3/a;->j:Lj3/k$a; # MARKER: R8 Lu3/a; Lj3/k$a; j if-eqz v0, :done - invoke-interface {v0, p1, p2, p3}, Lj3/k$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k; + invoke-interface {v0, p1, p2, p3}, Lj3/k$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k; # MARKER: R8 Lj3/k$a; Lj3/k; a move-result-object v0 if-eqz v0, :done - invoke-virtual {v0, p0}, Lj3/k;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {v0, p0}, Lj3/k;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/k; b :done return-void @@ -126,17 +126,17 @@ if-eqz p2, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - new-instance v0, Lcom/aspiro/wamp/contextmenu/item/playlist/f; + new-instance v0, Lcom/aspiro/wamp/contextmenu/item/playlist/f; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/f; - invoke-direct {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-direct {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/f; - invoke-virtual {v0, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {v0, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/f;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/f; b :done return-void @@ -149,48 +149,48 @@ if-eqz p2, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - new-instance v0, Lm3/d; + new-instance v0, Lm3/d; # MARKER: R8 Lm3/d; - invoke-direct {v0, p1, p2, p3}, Lm3/d;->(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-direct {v0, p1, p2, p3}, Lm3/d;->(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V # MARKER: R8 Lm3/d; - invoke-virtual {v0, p0}, Lm3/d;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {v0, p0}, Lm3/d;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lm3/d; b :done return-void .end method -.method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; +.method public static album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; .locals 8 const/4 v0, 0x0 if-eqz p1, :done - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v1 - invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v1 - check-cast v1, Le5/z$n2; + check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; - invoke-virtual {v1}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; + invoke-virtual {v1}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playqueue/g1; r2 move-result-object v2 - invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; + invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; # MARKER: R8 Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a move-result-object v2 - invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; + invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/d; b move-result-object v2 @@ -223,26 +223,26 @@ :has_activity - iget-object v2, p4, Lh4/a;->b:Lo3/a$a; + iget-object v2, p4, Lh4/a;->b:Lo3/a$a; # MARKER: R8 Lh4/a; Lo3/a$a; b - invoke-interface {v2, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + invoke-interface {v2, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; # MARKER: R8 Lo3/a$a; Lo3/a; a move-result-object v2 - iget-object v2, v2, Lo3/a;->e:Lc3/i$a; + iget-object v2, v2, Lo3/a;->e:Lc3/i$a; # MARKER: R8 Lo3/a; Lc3/i$a; e - invoke-interface {v2, p1, p2, p3}, Lc3/i$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i; + invoke-interface {v2, p1, p2, p3}, Lc3/i$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i; # MARKER: R8 Lc3/i$a; Lc3/i; a move-result-object p1 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p1, p0}, Lc3/i;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lc3/i;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/i; b goto :done :play - invoke-virtual {v1}, Le5/z$n2;->u3()Lcom/aspiro/wamp/playback/f; + invoke-virtual {v1}, Le5/z$n2;->u3()Lcom/aspiro/wamp/playback/f; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/f; u3 move-result-object p0 @@ -252,7 +252,7 @@ const/4 p2, 0x1 - invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/f;->a(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f; + invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/f;->a(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f; # MARKER: R8 Lcom/aspiro/wamp/playback/f; Lhu/akarnokd/rxjava/interop/f; a move-result-object v0 @@ -263,25 +263,25 @@ .method public static hasActiveQueue()Z .locals 2 - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v0 - check-cast v0, Le5/z$n2; + check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; - invoke-virtual {v0}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; + invoke-virtual {v0}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playqueue/g1; r2 move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; + invoke-virtual {v0}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; # MARKER: R8 Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; + invoke-virtual {v0}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/d; b move-result-object v0 @@ -297,14 +297,14 @@ return v0 .end method -.method public static mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; +.method public static mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; .locals 4 const/4 v0, 0x0 if-eqz p1, :done - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v1 @@ -337,36 +337,36 @@ :has_activity - iget-object v1, p4, Lh4/a;->h:Lu3/a$a; + iget-object v1, p4, Lh4/a;->h:Lu3/a$a; # MARKER: R8 Lh4/a; Lu3/a$a; h - invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; # MARKER: R8 Lu3/a$a; Lu3/a; a move-result-object v1 - iget-object v1, v1, Lu3/a;->e:Lj3/n$a; + iget-object v1, v1, Lu3/a;->e:Lj3/n$a; # MARKER: R8 Lu3/a; Lj3/n$a; e - invoke-interface {v1, p1, p2, p3}, Lj3/n$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n; + invoke-interface {v1, p1, p2, p3}, Lj3/n$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n; # MARKER: R8 Lj3/n$a; Lj3/n; a move-result-object p1 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p1, p0}, Lj3/n;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lj3/n;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/n; b goto :done :play - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object p0 - invoke-virtual {p0}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {p0}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object p0 - check-cast p0, Le5/z$n2; + check-cast p0, Le5/z$n2; # MARKER: R8 Le5/z$n2; - invoke-virtual {p0}, Le5/z$n2;->x3()Lcom/aspiro/wamp/playback/e0; + invoke-virtual {p0}, Le5/z$n2;->x3()Lcom/aspiro/wamp/playback/e0; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/e0; x3 move-result-object p0 @@ -376,7 +376,7 @@ const/4 p2, 0x1 - invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/e0;->a(Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lio/reactivex/disposables/Disposable; + invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/e0;->a(Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lcom/aspiro/wamp/playback/e0; a move-result-object v0 @@ -395,17 +395,17 @@ if-lez v0, :done - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v0 - check-cast v0, Le5/z$n2; + check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v1 @@ -436,43 +436,43 @@ :has_activity - iget-object v1, v0, Le5/z$n2;->w8:Ldagger/internal/f; + iget-object v1, v0, Le5/z$n2;->w8:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; w8 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; move-result-object v1 - check-cast v1, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a; + check-cast v1, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/h$a; - invoke-interface {v1, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/h; + invoke-interface {v1, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/h; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/h$a; Lcom/aspiro/wamp/contextmenu/item/playlist/h; a move-result-object p2 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p2, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/h;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p2, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/h;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/h; b goto :done :play - invoke-virtual {v0}, Le5/z$n2;->y3()Lcom/aspiro/wamp/playback/k0; + invoke-virtual {v0}, Le5/z$n2;->y3()Lcom/aspiro/wamp/playback/k0; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/k0; y3 move-result-object p0 - invoke-virtual {p0, p1, p3}, Lcom/aspiro/wamp/playback/k0;->c(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-virtual {p0, p1, p3}, Lcom/aspiro/wamp/playback/k0;->c(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)V # MARKER: R8 Lcom/aspiro/wamp/playback/k0; c :done return-void .end method -.method public static playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; +.method public static playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; .locals 3 const/4 v0, 0x0 if-eqz p1, :done - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v1 @@ -480,30 +480,30 @@ if-eqz p4, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - iget-object v1, p4, Lh4/a;->b:Lo3/a$a; + iget-object v1, p4, Lh4/a;->b:Lo3/a$a; # MARKER: R8 Lh4/a; Lo3/a$a; b - invoke-interface {v1, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; + invoke-interface {v1, p1, p2, p3}, Lo3/a$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a; # MARKER: R8 Lo3/a$a; Lo3/a; a move-result-object v1 - iget-object v1, v1, Lo3/a;->d:Lc3/l$a; + iget-object v1, v1, Lo3/a;->d:Lc3/l$a; # MARKER: R8 Lo3/a; Lc3/l$a; d - invoke-interface {v1, p1, p2, p3}, Lc3/l$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l; + invoke-interface {v1, p1, p2, p3}, Lc3/l$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l; # MARKER: R8 Lc3/l$a; Lc3/l; a move-result-object p1 - invoke-virtual {p1, p0}, Lc3/l;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lc3/l;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/l; b goto :done :play - invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {p0, p1, p2, p3, p4}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v0 @@ -511,14 +511,14 @@ return-object v0 .end method -.method public static playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; +.method public static playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; .locals 2 const/4 v0, 0x0 if-eqz p1, :done - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v1 @@ -526,30 +526,30 @@ if-eqz p4, :done - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - iget-object v1, p4, Lh4/a;->h:Lu3/a$a; + iget-object v1, p4, Lh4/a;->h:Lu3/a$a; # MARKER: R8 Lh4/a; Lu3/a$a; h - invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; + invoke-interface {v1, p1, p2, p3}, Lu3/a$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a; # MARKER: R8 Lu3/a$a; Lu3/a; a move-result-object v1 - iget-object v1, v1, Lu3/a;->d:Lj3/q$a; + iget-object v1, v1, Lu3/a;->d:Lj3/q$a; # MARKER: R8 Lu3/a; Lj3/q$a; d - invoke-interface {v1, p1, p2, p3}, Lj3/q$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q; + invoke-interface {v1, p1, p2, p3}, Lj3/q$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q; # MARKER: R8 Lj3/q$a; Lj3/q; a move-result-object p1 - invoke-virtual {p1, p0}, Lj3/q;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lj3/q;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/q; b goto :done :play - invoke-static {p0, p1, p2, p3, p4}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {p0, p1, p2, p3, p4}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v0 @@ -568,46 +568,46 @@ if-lez v0, :done - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v0 if-eqz v0, :play - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v0 - check-cast v0, Le5/z$n2; + check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; - iget-object v0, v0, Le5/z$n2;->v8:Ldagger/internal/f; + iget-object v0, v0, Le5/z$n2;->v8:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; v8 - invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; + invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; move-result-object v0 - check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; + check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; - invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u; + invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; Lcom/aspiro/wamp/contextmenu/item/playlist/u; a move-result-object p1 - invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/u;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/u;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u; b goto :done :play - invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {p0, p1, p2, p3}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done return-void @@ -620,48 +620,48 @@ if-eqz p1, :done - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v1 if-eqz v1, :play - invoke-static {p0}, Lradiant/swipe/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; + invoke-static {p0}, Lradiant/gestures/queue/QueueExecutor;->activity(Landroid/content/Context;)Landroidx/fragment/app/FragmentActivity; move-result-object p0 if-eqz p0, :done - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v1 - invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v1 - check-cast v1, Le5/z$n2; + check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; - iget-object v1, v1, Le5/z$n2;->K9:Ldagger/internal/f; + iget-object v1, v1, Le5/z$n2;->K9:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; K9 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; move-result-object v1 - check-cast v1, Lm3/i$a; + check-cast v1, Lm3/i$a; # MARKER: R8 Lm3/i$a; - invoke-interface {v1, p1, p2, p3}, Lm3/i$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i; + invoke-interface {v1, p1, p2, p3}, Lm3/i$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i; # MARKER: R8 Lm3/i$a; Lm3/i; a move-result-object p1 - invoke-virtual {p1, p0}, Lm3/i;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lm3/i;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lm3/i; b const/4 v0, 0x1 goto :done :play - invoke-static {p0, p1, p2, p3}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {p0, p1, p2, p3}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z move-result v0 @@ -699,31 +699,31 @@ :has_activity - invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; + invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # MARKER: R8 a move-result-object v1 - invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; + invoke-virtual {v1}, Lcom/aspiro/wamp/App;->e()Le5/c; # MARKER: R8 Le5/c; e move-result-object v1 - check-cast v1, Le5/z$n2; + check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; - iget-object v1, v1, Le5/z$n2;->k9:Ldagger/internal/f; + iget-object v1, v1, Le5/z$n2;->k9:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; k9 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; + invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; move-result-object v1 - check-cast v1, Lm3/f$a; + check-cast v1, Lm3/f$a; # MARKER: R8 Lm3/f$a; - invoke-interface {v1, p1, p2, p3}, Lm3/f$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f; + invoke-interface {v1, p1, p2, p3}, Lm3/f$a;->a(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f; # MARKER: R8 Lm3/f$a; Lm3/f; a move-result-object p1 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p1, p0}, Lm3/f;->b(Landroidx/fragment/app/FragmentActivity;)V + invoke-virtual {p1, p0}, Lm3/f;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lm3/f; b const/4 v0, 0x1 diff --git a/patches/extension/radiant/swipe/QueueRequest.smali b/patches/extension/radiant/gestures/queue/QueueRequest.smali similarity index 69% rename from patches/extension/radiant/swipe/QueueRequest.smali rename to patches/extension/radiant/gestures/queue/QueueRequest.smali index dfeb02a..533027f 100644 --- a/patches/extension/radiant/swipe/QueueRequest.smali +++ b/patches/extension/radiant/gestures/queue/QueueRequest.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/swipe/QueueRequest; +.class public final Lradiant/gestures/queue/QueueRequest; .super Ljava/lang/Object; .source "QueueRequest.smali" @@ -28,11 +28,11 @@ invoke-direct {p0}, Ljava/lang/Object;->()V - iput p1, p0, Lradiant/swipe/QueueRequest;->position:I + iput p1, p0, Lradiant/gestures/queue/QueueRequest;->position:I - iput-object p2, p0, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iput-object p2, p0, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - iput p3, p0, Lradiant/swipe/QueueRequest;->id:I + iput p3, p0, Lradiant/gestures/queue/QueueRequest;->id:I return-void .end method diff --git a/patches/extension/radiant/swipe/QueueRowResolver.smali b/patches/extension/radiant/gestures/queue/QueueRowResolver.smali similarity index 55% rename from patches/extension/radiant/swipe/QueueRowResolver.smali rename to patches/extension/radiant/gestures/queue/QueueRowResolver.smali index 865b89b..8d9febd 100644 --- a/patches/extension/radiant/swipe/QueueRowResolver.smali +++ b/patches/extension/radiant/gestures/queue/QueueRowResolver.smali @@ -1,11 +1,11 @@ -.class public interface abstract Lradiant/swipe/QueueRowResolver; +.class public interface abstract Lradiant/gestures/queue/QueueRowResolver; .super Ljava/lang/Object; .source "QueueRowResolver.smali" # virtual methods -.method public abstract execute(Lradiant/swipe/QueueRequest;)V +.method public abstract execute(Lradiant/gestures/queue/QueueRequest;)V .end method -.method public abstract resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public abstract resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .end method diff --git a/patches/extension/radiant/QueueSwipeRemove.smali b/patches/extension/radiant/gestures/queue/QueueSwipeRemove.smali similarity index 94% rename from patches/extension/radiant/QueueSwipeRemove.smali rename to patches/extension/radiant/gestures/queue/QueueSwipeRemove.smali index 8b5a4bb..521593a 100644 --- a/patches/extension/radiant/QueueSwipeRemove.smali +++ b/patches/extension/radiant/gestures/queue/QueueSwipeRemove.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/QueueSwipeRemove; +.class public final Lradiant/gestures/queue/QueueSwipeRemove; .super Ljava/lang/Object; .source "QueueSwipeRemove.smali" @@ -59,7 +59,7 @@ if-lez v5, :done - iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->c:Landroid/graphics/drawable/ColorDrawable; + iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->c:Landroid/graphics/drawable/ColorDrawable; # MARKER: R8 c invoke-virtual {v6, v2, v3, v1, v4}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V @@ -88,11 +88,11 @@ const/4 v9, 0x0 :update_haptic - iget-boolean p2, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z + iget-boolean p2, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z # MARKER: R8 i if-eq v9, p2, :draw_alpha - iput-boolean v9, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z + iput-boolean v9, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->i:Z # MARKER: R8 i # CLOCK_TICK const/4 p2, 0x4 @@ -119,7 +119,7 @@ :draw_background invoke-virtual {v6, p1}, Landroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V - iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->h:Landroid/graphics/drawable/Drawable; + iget-object v6, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->h:Landroid/graphics/drawable/Drawable; # MARKER: R8 h if-eqz v6, :done diff --git a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali b/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali similarity index 53% rename from patches/extension/radiant/swipe/SearchAlbumsResolver.smali rename to patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali index eba723b..742cf12 100644 --- a/patches/extension/radiant/swipe/SearchAlbumsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/SearchAlbumsResolver; +.class public final Lradiant/gestures/queue/SearchAlbumsResolver; .super Ljava/lang/Object; .source "SearchAlbumsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,17 +20,17 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lzc/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; .locals 5 if-eqz p1, :invalid - iget-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -40,11 +40,11 @@ if-eqz v0, :invalid - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->f:Lid/e; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->f:Lid/e; # MARKER: R8 Lid/e; f if-eqz v1, :invalid - invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->N()La50/d; + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->N()La50/d; # MARKER: R8 La50/d; N move-result-object v0 @@ -52,7 +52,7 @@ move-result-object v0 - iget v1, p1, Lradiant/swipe/QueueRequest;->position:I + iget v1, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v1, :check_size @@ -72,23 +72,23 @@ move-result-object v0 - instance-of v1, v0, Lzc/a; + instance-of v1, v0, Lzc/a; # MARKER: R8 Lzc/a; if-eqz v1, :invalid - check-cast v0, Lzc/a; + check-cast v0, Lzc/a; # MARKER: R8 Lzc/a; - iget-boolean v1, v0, Lzc/a;->k:Z + iget-boolean v1, v0, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k if-eqz v1, :invalid - iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->id:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v1, v2, :invalid @@ -107,11 +107,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/SearchAlbumsResolver; + new-instance v0, Lradiant/gestures/queue/SearchAlbumsResolver; - invoke-direct {v0, p0}, Lradiant/swipe/SearchAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/SearchAlbumsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -119,18 +119,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 7 - iget v6, p1, Lradiant/swipe/QueueRequest;->action:I + iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/SearchAlbumsResolver;->current(Lradiant/swipe/QueueRequest;)Lzc/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; move-result-object p1 if-eqz p1, :done - iget-object v0, p0, Lradiant/swipe/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SearchAlbumsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -140,27 +140,27 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->c:Lld/c; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->c:Lld/c; # MARKER: R8 Lld/c; c if-eqz v1, :done - iget-object v2, v1, Lld/c;->a:Lx40/a; + iget-object v2, v1, Lld/c;->a:Lx40/a; # MARKER: R8 Lld/c; Lx40/a; a - instance-of v3, v2, Lh4/a; + instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v3, :done - check-cast v2, Lh4/a; + check-cast v2, Lh4/a; # MARKER: R8 Lh4/a; invoke-virtual {v0}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v3 - iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b - iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lld/c; d - iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lld/c; c const/4 v1, 0x3 @@ -170,28 +170,28 @@ if-ne v6, v1, :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :append - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object p1 goto :retain :add_to_playlist - invoke-static {v3, v4, v5, p0, v2}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v3, v4, v5, p0, v2}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done :retain if-eqz p1, :done - iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->g:Lio/reactivex/disposables/CompositeDisposable; + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->g:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 g invoke-virtual {v0, p1}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z @@ -199,10 +199,10 @@ return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Ljd/d$a; + instance-of v0, p2, Ljd/d$a; # MARKER: R8 Ljd/d$a; if-eqz v0, :invalid @@ -221,11 +221,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; + instance-of v0, p1, La50/d; # MARKER: R8 La50/d; if-eqz v0, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -244,25 +244,25 @@ move-result-object p1 - instance-of v0, p1, Lzc/a; + instance-of v0, p1, Lzc/a; # MARKER: R8 Lzc/a; if-eqz v0, :invalid - check-cast p1, Lzc/a; + check-cast p1, Lzc/a; # MARKER: R8 Lzc/a; - iget-boolean v0, p1, Lzc/a;->k:Z + iget-boolean v0, p1, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k if-eqz v0, :invalid - iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; + iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v1 - new-instance v2, Lradiant/swipe/QueueRequest; + new-instance v2, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v2, p2, v0, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v2, p2, v0, v1}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v2 diff --git a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali b/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali similarity index 61% rename from patches/extension/radiant/swipe/SearchPlaylistsResolver.smali rename to patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali index 1099ed2..4b1e9dd 100644 --- a/patches/extension/radiant/swipe/SearchPlaylistsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/SearchPlaylistsResolver; +.class public final Lradiant/gestures/queue/SearchPlaylistsResolver; .super Ljava/lang/Object; .source "SearchPlaylistsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -20,17 +20,17 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lcf/b; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; .locals 6 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; instance-of v1, v0, Lcom/aspiro/wamp/model/Playlist; @@ -38,7 +38,7 @@ check-cast v0, Lcom/aspiro/wamp/model/Playlist; - iget-object v1, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -48,11 +48,11 @@ if-eqz v1, :invalid - iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->g:Lwf/d; + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->g:Lwf/d; # MARKER: R8 Lwf/d; g if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->N()La50/d; + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->N()La50/d; # MARKER: R8 La50/d; N move-result-object v1 @@ -60,7 +60,7 @@ move-result-object v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v2, :check_size @@ -80,23 +80,23 @@ move-result-object v1 - instance-of v2, v1, Lcf/b; + instance-of v2, v1, Lcf/b; # MARKER: R8 Lcf/b; if-eqz v2, :invalid - check-cast v1, Lcf/b; + check-cast v1, Lcf/b; # MARKER: R8 Lcf/b; - iget-boolean v2, v1, Lcf/b;->h:Z + iget-boolean v2, v1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h if-eqz v2, :invalid - iget-boolean v2, v1, Lcf/b;->f:Z + iget-boolean v2, v1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f if-eqz v2, :check_playlist const-string v2, "NOT_READY" - iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; + iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -105,7 +105,7 @@ if-nez v2, :invalid :check_playlist - iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -142,11 +142,11 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/SearchPlaylistsResolver; + new-instance v0, Lradiant/gestures/queue/SearchPlaylistsResolver; - invoke-direct {v0, p0}, Lradiant/swipe/SearchPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;)V + invoke-direct {v0, p0}, Lradiant/gestures/queue/SearchPlaylistsResolver;->(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void @@ -154,18 +154,18 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 7 - iget v6, p1, Lradiant/swipe/QueueRequest;->action:I + iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/SearchPlaylistsResolver;->current(Lradiant/swipe/QueueRequest;)Lcf/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; move-result-object p1 if-eqz p1, :done - iget-object v0, p0, Lradiant/swipe/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SearchPlaylistsResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -175,7 +175,7 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->c:Lzf/c; + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->c:Lzf/c; # MARKER: R8 Lzf/c; c if-eqz v1, :done @@ -183,7 +183,7 @@ move-result-object v2 - iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; @@ -191,7 +191,7 @@ invoke-direct {v4, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lzf/c; c const/4 v0, 0x3 @@ -201,26 +201,26 @@ if-ne v6, v0, :append - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :append - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :add_to_playlist - invoke-static {v2, v3, v4, p0}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v2, v3, v4, p0}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lxf/d$a; + instance-of v0, p2, Lxf/d$a; # MARKER: R8 Lxf/d$a; if-eqz v0, :invalid @@ -239,11 +239,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; + instance-of v0, p1, La50/d; # MARKER: R8 La50/d; if-eqz v0, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -262,23 +262,23 @@ move-result-object p1 - instance-of v0, p1, Lcf/b; + instance-of v0, p1, Lcf/b; # MARKER: R8 Lcf/b; if-eqz v0, :invalid - check-cast p1, Lcf/b; + check-cast p1, Lcf/b; # MARKER: R8 Lcf/b; - iget-boolean v0, p1, Lcf/b;->h:Z + iget-boolean v0, p1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h if-eqz v0, :invalid - iget-boolean v0, p1, Lcf/b;->f:Z + iget-boolean v0, p1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f if-eqz v0, :check_playlist const-string v0, "NOT_READY" - iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; + iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -287,7 +287,7 @@ if-nez v0, :invalid :check_playlist - iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; + iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -303,9 +303,9 @@ move-result v2 - new-instance v3, Lradiant/swipe/QueueRequest; + new-instance v3, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v3, p2, v0, v2}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v3, p2, v0, v2}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V return-object v3 diff --git a/patches/extension/radiant/swipe/SuggestionsResolver.smali b/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali similarity index 61% rename from patches/extension/radiant/swipe/SuggestionsResolver.smali rename to patches/extension/radiant/gestures/queue/SuggestionsResolver.smali index e10af9b..6210e4e 100644 --- a/patches/extension/radiant/swipe/SuggestionsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/SuggestionsResolver; +.class public final Lradiant/gestures/queue/SuggestionsResolver; .super Ljava/lang/Object; .source "SuggestionsResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields @@ -22,23 +22,23 @@ invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; .locals 8 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; instance-of v1, v0, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; @@ -46,7 +46,7 @@ check-cast v0, Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; - iget-object v1, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -64,7 +64,7 @@ if-eqz v2, :invalid - iget-object v2, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/gestures/queue/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -78,15 +78,15 @@ move-result-object v2 - instance-of v3, v2, La50/b; + instance-of v3, v2, La50/b; # MARKER: R8 La50/b; if-eqz v3, :invalid - check-cast v2, La50/b; + check-cast v2, La50/b; # MARKER: R8 La50/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; + iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :adapter_bounds @@ -130,7 +130,7 @@ if-ne v4, v6, :invalid - iget v7, p1, Lradiant/swipe/QueueRequest;->id:I + iget v7, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v6, v7, :invalid @@ -144,7 +144,7 @@ if-eqz v4, :invalid - invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->availability()Lcom/aspiro/wamp/model/AvailabilityInteractor; + invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->availability()Lcom/aspiro/wamp/model/AvailabilityInteractor; move-result-object v4 @@ -160,17 +160,17 @@ if-eqz v4, :invalid - invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; move-result-object v1 - instance-of v4, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + instance-of v4, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; if-eqz v4, :invalid - check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; - iget-object v1, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->o:Ljava/lang/Object; + iget-object v1, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->o:Ljava/lang/Object; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; o instance-of v4, v1, Ljava/util/List; @@ -214,30 +214,30 @@ .method private availability()Lcom/aspiro/wamp/model/AvailabilityInteractor; .locals 2 - iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v0 - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; if-eqz v1, :dialog - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; d return-object v0 :dialog - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; if-eqz v1, :invalid - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; d return-object v0 @@ -254,43 +254,43 @@ if-eqz p1, :done - new-instance v0, Lradiant/swipe/SuggestionsResolver; + new-instance v0, Lradiant/gestures/queue/SuggestionsResolver; - invoke-direct {v0, p0, p1}, Lradiant/swipe/SuggestionsResolver;->(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + invoke-direct {v0, p0, p1}, Lradiant/gestures/queue/SuggestionsResolver;->(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void .end method -.method private viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; +.method private viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; .locals 2 - iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v0 - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; if-eqz v1, :dialog - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; c return-object v0 :dialog - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; if-eqz v1, :invalid - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; c return-object v0 @@ -302,22 +302,22 @@ # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 7 - invoke-direct {p0, p1}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + invoke-direct {p0, p1}, Lradiant/gestures/queue/SuggestionsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; move-result-object v0 if-eqz v0, :done - invoke-direct {p0}, Lradiant/swipe/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; move-result-object v1 if-eqz v1, :done - iget v2, p1, Lradiant/swipe/QueueRequest;->action:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->action:I const/4 v3, 0x3 @@ -327,7 +327,7 @@ if-ne v2, v3, :default_action - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v2 @@ -350,15 +350,15 @@ invoke-direct {v4, v2}, Lcom/aspiro/wamp/model/MediaItemParent;->(Lcom/aspiro/wamp/model/MediaItem;)V - invoke-static {v4}, Lkotlin/collections/u;->h(Ljava/lang/Object;)Ljava/util/List; + invoke-static {v4}, Lkotlin/collections/u;->h(Ljava/lang/Object;)Ljava/util/List; # MARKER: R8 Lkotlin/collections/u; move-result-object v4 - check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; - iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->j:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; j - invoke-static {v3, v4, v5}, Lcom/aspiro/wamp/playqueue/source/model/b;->p(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + invoke-static {v3, v4, v5}, Lcom/aspiro/wamp/playqueue/source/model/b;->p(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; p move-result-object v6 @@ -368,7 +368,7 @@ invoke-direct {v4, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -380,52 +380,52 @@ move-result-object v0 - iget p1, p1, Lradiant/swipe/QueueRequest;->action:I + iget p1, p1, Lradiant/gestures/queue/QueueRequest;->action:I const/4 v3, 0x3 if-eq p1, v3, :add_to_playlist - invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v0, v2, v4, v6}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done :add_to_playlist - invoke-static {v0, v2, v4, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {v0, v2, v4, v6}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :default_action - iget p1, p1, Lradiant/swipe/QueueRequest;->position:I + iget p1, p1, Lradiant/gestures/queue/QueueRequest;->position:I - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v2 if-eqz v2, :empty_queue - new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; - invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;->(I)V + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; goto :emit :empty_queue - new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; - invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;->(I)V + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; :emit - invoke-interface {v1, v2}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j;->a(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V + invoke-interface {v1, v2}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j;->a(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j; Lcom/aspiro/wamp/nowplaying/view/suggestions/i; a :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - iget-object v0, p0, Lradiant/swipe/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; @@ -433,7 +433,7 @@ if-ne v0, p1, :invalid - instance-of v0, p2, Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; + instance-of v0, p2, Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; if-eqz v0, :invalid @@ -450,13 +450,13 @@ move-result-object p1 - instance-of v0, p1, La50/b; + instance-of v0, p1, La50/b; # MARKER: R8 La50/b; if-eqz v0, :invalid - check-cast p1, La50/b; + check-cast p1, La50/b; # MARKER: R8 La50/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; + iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I @@ -485,11 +485,11 @@ move-result v1 - new-instance v2, Lradiant/swipe/QueueRequest; + new-instance v2, Lradiant/gestures/queue/QueueRequest; - invoke-direct {v2, p2, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {v2, p2, p1, v1}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V - invoke-direct {p0, v2}, Lradiant/swipe/SuggestionsResolver;->current(Lradiant/swipe/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; + invoke-direct {p0, v2}, Lradiant/gestures/queue/SuggestionsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/SuggestedMediaItem$SuggestedTrack; move-result-object v3 diff --git a/patches/extension/radiant/SwipeToQueue.smali b/patches/extension/radiant/gestures/queue/SwipeToQueue.smali similarity index 74% rename from patches/extension/radiant/SwipeToQueue.smali rename to patches/extension/radiant/gestures/queue/SwipeToQueue.smali index 1cf175b..a7d0837 100644 --- a/patches/extension/radiant/SwipeToQueue.smali +++ b/patches/extension/radiant/gestures/queue/SwipeToQueue.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/SwipeToQueue; +.class public final Lradiant/gestures/queue/SwipeToQueue; .super Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback; .source "SwipeToQueue.smali" @@ -20,11 +20,11 @@ .field private final playNextIcon:Landroid/graphics/drawable/Drawable; -.field private pendingRequest:Lradiant/swipe/QueueRequest; +.field private pendingRequest:Lradiant/gestures/queue/QueueRequest; .field private releaseAllowed:Z -.field private final resolver:Lradiant/swipe/QueueRowResolver; +.field private final resolver:Lradiant/gestures/queue/QueueRowResolver; # direct methods .method static constructor ()V @@ -34,12 +34,12 @@ invoke-direct {v0}, Ljava/util/WeakHashMap;->()V - sput-object v0, Lradiant/SwipeToQueue;->installed:Ljava/util/WeakHashMap; + sput-object v0, Lradiant/gestures/queue/SwipeToQueue;->installed:Ljava/util/WeakHashMap; return-void .end method -.method private constructor (Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V +.method private constructor (Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V .locals 4 const/4 v0, 0x0 @@ -63,7 +63,7 @@ invoke-direct {p0, v0, v1}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->(II)V - iput-object p2, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; + iput-object p2, p0, Lradiant/gestures/queue/SwipeToQueue;->resolver:Lradiant/gestures/queue/QueueRowResolver; invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; @@ -75,7 +75,7 @@ invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V - iput-object v1, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; + iput-object v1, p0, Lradiant/gestures/queue/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; new-instance v1, Landroid/graphics/drawable/ColorDrawable; @@ -83,7 +83,7 @@ invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V - iput-object v1, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; + iput-object v1, p0, Lradiant/gestures/queue/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; new-instance v1, Landroid/graphics/drawable/ColorDrawable; @@ -91,7 +91,7 @@ invoke-direct {v1, v2}, Landroid/graphics/drawable/ColorDrawable;->(I)V - iput-object v1, p0, Lradiant/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; + iput-object v1, p0, Lradiant/gestures/queue/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; sget v1, Lcom/aspiro/wamp/R$drawable;->ic_add_to_queue_last:I @@ -110,7 +110,7 @@ invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_icon - iput-object v0, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; + iput-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; @@ -133,7 +133,7 @@ invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_play_next_icon - iput-object v0, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; + iput-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; @@ -156,19 +156,19 @@ invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setTint(I)V :store_add_to_playlist_icon - iput-object v0, p0, Lradiant/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + iput-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; return-void .end method -.method public static install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V +.method public static install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V .locals 4 if-eqz p0, :done if-eqz p1, :done - sget-object v0, Lradiant/SwipeToQueue;->installed:Ljava/util/WeakHashMap; + sget-object v0, Lradiant/gestures/queue/SwipeToQueue;->installed:Ljava/util/WeakHashMap; invoke-virtual {v0, p0}, Ljava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z @@ -180,9 +180,9 @@ invoke-virtual {v0, p0, v1}, Ljava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; - new-instance v0, Lradiant/SwipeToQueue; + new-instance v0, Lradiant/gestures/queue/SwipeToQueue; - invoke-direct {v0, p0, p1}, Lradiant/SwipeToQueue;->(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + invoke-direct {v0, p0, p1}, Lradiant/gestures/queue/SwipeToQueue;->(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V new-instance v1, Landroidx/recyclerview/widget/ItemTouchHelper; @@ -197,13 +197,13 @@ .method public static setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V .locals 1 - instance-of v0, p0, Lradiant/SwipeToQueue; + instance-of v0, p0, Lradiant/gestures/queue/SwipeToQueue; if-eqz v0, :done - check-cast p0, Lradiant/SwipeToQueue; + check-cast p0, Lradiant/gestures/queue/SwipeToQueue; - iput-boolean p1, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z + iput-boolean p1, p0, Lradiant/gestures/queue/SwipeToQueue;->releaseAllowed:Z :done return-void @@ -221,13 +221,13 @@ .method public getSwipeDirs(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)I .locals 3 - iget-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iget-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; if-nez v0, :not_swipeable - iget-object v0, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; + iget-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->resolver:Lradiant/gestures/queue/QueueRowResolver; - invoke-interface {v0, p1, p2}, Lradiant/swipe/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + invoke-interface {v0, p1, p2}, Lradiant/gestures/queue/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; move-result-object v0 @@ -304,7 +304,7 @@ const/4 v0, 0x0 - iput-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iput-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; goto :done @@ -373,7 +373,7 @@ if-ne v8, v9, :add_background - iget-object v6, p0, Lradiant/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->playNextBackground:Landroid/graphics/drawable/ColorDrawable; goto :background_ready @@ -382,12 +382,12 @@ if-ne v8, v9, :add_to_queue_background - iget-object v6, p0, Lradiant/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->addToPlaylistBackground:Landroid/graphics/drawable/ColorDrawable; goto :background_ready :add_to_queue_background - iget-object v6, p0, Lradiant/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->addBackground:Landroid/graphics/drawable/ColorDrawable; :background_ready @@ -409,13 +409,13 @@ if-lt v5, v8, :disarm - iget-object v8, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; + iget-object v8, p0, Lradiant/gestures/queue/SwipeToQueue;->resolver:Lradiant/gestures/queue/QueueRowResolver; - iget-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iget-object v10, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; if-nez v10, :draw_alpha - invoke-interface {v8, p2, p3}, Lradiant/swipe/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; + invoke-interface {v8, p2, p3}, Lradiant/gestures/queue/QueueRowResolver;->resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; move-result-object v10 @@ -437,9 +437,9 @@ const/16 v9, __RL_SWIPE_TO_QUEUE_LEFT_ACTION__ :stamp_action - iput v9, v10, Lradiant/swipe/QueueRequest;->action:I + iput v9, v10, Lradiant/gestures/queue/QueueRequest;->action:I - iput-object v10, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iput-object v10, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; # HapticFeedbackConstants.CLOCK_TICK const/4 v8, 0x4 @@ -449,7 +449,7 @@ goto :draw_alpha :disarm - iget-object v8, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iget-object v8, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; if-eqz v8, :clear_pending @@ -461,7 +461,7 @@ :clear_pending const/4 v8, 0x0 - iput-object v8, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iput-object v8, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; goto :draw_alpha @@ -513,7 +513,7 @@ if-ne v8, v9, :draw_add_icon - iget-object v6, p0, Lradiant/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->playNextIcon:Landroid/graphics/drawable/Drawable; goto :icon_ready @@ -522,12 +522,12 @@ if-ne v8, v9, :draw_add_to_queue_icon - iget-object v6, p0, Lradiant/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->addToPlaylistIcon:Landroid/graphics/drawable/Drawable; goto :icon_ready :draw_add_to_queue_icon - iget-object v6, p0, Lradiant/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; + iget-object v6, p0, Lradiant/gestures/queue/SwipeToQueue;->addIcon:Landroid/graphics/drawable/Drawable; :icon_ready @@ -654,30 +654,30 @@ const/4 v0, 0x0 - iput-object v0, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iput-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; goto :dispatch :release if-nez p2, :dispatch - iget-boolean v0, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z + iget-boolean v0, p0, Lradiant/gestures/queue/SwipeToQueue;->releaseAllowed:Z const/4 v2, 0x0 - iput-boolean v2, p0, Lradiant/SwipeToQueue;->releaseAllowed:Z + iput-boolean v2, p0, Lradiant/gestures/queue/SwipeToQueue;->releaseAllowed:Z - iget-object v1, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iget-object v1, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; - iput-object v2, p0, Lradiant/SwipeToQueue;->pendingRequest:Lradiant/swipe/QueueRequest; + iput-object v2, p0, Lradiant/gestures/queue/SwipeToQueue;->pendingRequest:Lradiant/gestures/queue/QueueRequest; if-eqz v0, :dispatch if-eqz v1, :dispatch - iget-object v0, p0, Lradiant/SwipeToQueue;->resolver:Lradiant/swipe/QueueRowResolver; + iget-object v0, p0, Lradiant/gestures/queue/SwipeToQueue;->resolver:Lradiant/gestures/queue/QueueRowResolver; - invoke-interface {v0, v1}, Lradiant/swipe/QueueRowResolver;->execute(Lradiant/swipe/QueueRequest;)V + invoke-interface {v0, v1}, Lradiant/gestures/queue/QueueRowResolver;->execute(Lradiant/gestures/queue/QueueRequest;)V :dispatch invoke-super {p0, p1, p2}, Landroidx/recyclerview/widget/ItemTouchHelper$SimpleCallback;->onSelectedChanged(Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V diff --git a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali b/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali similarity index 54% rename from patches/extension/radiant/swipe/UnifiedSearchResolver.smali rename to patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali index c9fcebe..da3a0df 100644 --- a/patches/extension/radiant/swipe/UnifiedSearchResolver.smali +++ b/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali @@ -1,9 +1,9 @@ -.class public final Lradiant/swipe/UnifiedSearchResolver; +.class public final Lradiant/gestures/queue/UnifiedSearchResolver; .super Ljava/lang/Object; .source "UnifiedSearchResolver.smali" # interfaces -.implements Lradiant/swipe/QueueRowResolver; +.implements Lradiant/gestures/queue/QueueRowResolver; # instance fields .field private final fragment:Ljava/lang/ref/WeakReference; @@ -16,33 +16,33 @@ invoke-direct {p0}, Ljava/lang/Object;->()V new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; new-instance v0, Ljava/lang/ref/WeakReference; invoke-direct {v0, p2}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - iput-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + iput-object v0, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; return-void .end method -.method private current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; +.method private current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; .locals 7 if-eqz p1, :invalid - iget-object v0, p1, Lradiant/swipe/QueueRequest;->media:Ljava/lang/Object; + iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - iget-object v1, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/recyclerview/widget/RecyclerView; if-eqz v1, :invalid invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v1 - instance-of v2, v1, La50/d; + instance-of v2, v1, La50/d; # MARKER: R8 La50/d; if-eqz v2, :invalid - check-cast v1, La50/d; + check-cast v1, La50/d; # MARKER: R8 La50/d; invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object v1 - iget v2, p1, Lradiant/swipe/QueueRequest;->position:I + iget v2, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v2, :check_size goto :invalid :check_size @@ -54,64 +54,64 @@ invoke-interface {v1, v2}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v1 - instance-of v2, v0, Lbm/k; + instance-of v2, v0, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v2, :album - instance-of v2, v1, Lbm/k; + instance-of v2, v1, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v2, :invalid move-object v2, v0 - check-cast v2, Lbm/k; + check-cast v2, Lbm/k; # MARKER: R8 Lbm/k; move-object v3, v1 - check-cast v3, Lbm/k; - iget-object v4, v3, Lbm/k;->e:Lcom/aspiro/wamp/model/Availability$MediaItem; + check-cast v3, Lbm/k; # MARKER: R8 Lbm/k; + iget-object v4, v3, Lbm/k;->e:Lcom/aspiro/wamp/model/Availability$MediaItem; # MARKER: R8 Lbm/k; e invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$MediaItem;->isAvailable()Z move-result v4 if-eqz v4, :invalid - iget-object v2, v2, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; - iget-object v3, v3, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + iget-object v2, v2, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lbm/k; a + iget-object v3, v3, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lbm/k; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result v2 invoke-virtual {v3}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result v3 if-ne v2, v3, :invalid - iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + iget v4, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v3, v4, :invalid return-object v1 :album - instance-of v2, v0, Lbm/a; + instance-of v2, v0, Lbm/a; # MARKER: R8 Lbm/a; if-eqz v2, :playlist - instance-of v2, v1, Lbm/a; + instance-of v2, v1, Lbm/a; # MARKER: R8 Lbm/a; if-eqz v2, :invalid move-object v2, v0 - check-cast v2, Lbm/a; + check-cast v2, Lbm/a; # MARKER: R8 Lbm/a; move-object v3, v1 - check-cast v3, Lbm/a; - iget-object v4, v3, Lbm/a;->c:Lcom/aspiro/wamp/model/Availability$Album; + check-cast v3, Lbm/a; # MARKER: R8 Lbm/a; + iget-object v4, v3, Lbm/a;->c:Lcom/aspiro/wamp/model/Availability$Album; # MARKER: R8 Lbm/a; c invoke-virtual {v4}, Lcom/aspiro/wamp/model/Availability$Album;->isAvailable()Z move-result v4 if-eqz v4, :invalid - iget-object v2, v2, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; - iget-object v3, v3, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + iget-object v2, v2, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lbm/a; a + iget-object v3, v3, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lbm/a; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v2 invoke-virtual {v3}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v3 if-ne v2, v3, :invalid - iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + iget v4, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v3, v4, :invalid return-object v1 :playlist - instance-of v2, v0, Lbm/g; + instance-of v2, v0, Lbm/g; # MARKER: R8 Lbm/g; if-eqz v2, :mix - instance-of v2, v1, Lbm/g; + instance-of v2, v1, Lbm/g; # MARKER: R8 Lbm/g; if-eqz v2, :invalid move-object v2, v0 - check-cast v2, Lbm/g; + check-cast v2, Lbm/g; # MARKER: R8 Lbm/g; move-object v3, v1 - check-cast v3, Lbm/g; - iget-object v2, v2, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; - iget-object v3, v3, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + check-cast v3, Lbm/g; # MARKER: R8 Lbm/g; + iget-object v2, v2, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lbm/g; a + iget-object v3, v3, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lbm/g; a invoke-virtual {v3}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I move-result v4 if-lez v4, :invalid @@ -130,20 +130,20 @@ if-eqz v2, :invalid invoke-virtual {v3}, Ljava/lang/String;->hashCode()I move-result v2 - iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + iget v4, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v2, v4, :invalid - iget-object v2, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v2, :invalid - invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N move-result-object v2 - instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; + instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; if-eqz v4, :invalid - check-cast v2, Lcom/aspiro/wamp/search/v2/d; - iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; + check-cast v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; + iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; e invoke-static {v3}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; move-result-object v3 invoke-interface {v2, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getPlaylistAvailability(Ljava/util/UUID;)Lcom/aspiro/wamp/model/Availability$Playlist; @@ -154,16 +154,16 @@ return-object v1 :mix - instance-of v2, v0, Lbm/f; + instance-of v2, v0, Lbm/f; # MARKER: R8 Lbm/f; if-eqz v2, :invalid - instance-of v2, v1, Lbm/f; + instance-of v2, v1, Lbm/f; # MARKER: R8 Lbm/f; if-eqz v2, :invalid move-object v2, v0 - check-cast v2, Lbm/f; + check-cast v2, Lbm/f; # MARKER: R8 Lbm/f; move-object v3, v1 - check-cast v3, Lbm/f; - iget-object v2, v2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; - iget-object v3, v3, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + check-cast v3, Lbm/f; # MARKER: R8 Lbm/f; + iget-object v2, v2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lbm/f; a + iget-object v3, v3, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lbm/f; a invoke-virtual {v2}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; move-result-object v2 invoke-virtual {v3}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -173,20 +173,20 @@ if-eqz v2, :invalid invoke-virtual {v3}, Ljava/lang/String;->hashCode()I move-result v2 - iget v4, p1, Lradiant/swipe/QueueRequest;->id:I + iget v4, p1, Lradiant/gestures/queue/QueueRequest;->id:I if-ne v2, v4, :invalid - iget-object v2, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v2, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v2}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v2, :invalid - invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N move-result-object v2 - instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; + instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; if-eqz v4, :invalid - check-cast v2, Lcom/aspiro/wamp/search/v2/d; - iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; + check-cast v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; + iget-object v2, v2, Lcom/aspiro/wamp/search/v2/d;->e:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; e invoke-interface {v2, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getMixAvailability(Ljava/lang/String;)Lcom/aspiro/wamp/model/Availability$Mix; move-result-object v2 invoke-virtual {v2}, Lcom/aspiro/wamp/model/Availability$Mix;->isAvailable()Z @@ -203,63 +203,63 @@ .locals 1 if-eqz p0, :done if-eqz p1, :done - new-instance v0, Lradiant/swipe/UnifiedSearchResolver; - invoke-direct {v0, p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V - invoke-static {p1, v0}, Lradiant/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/swipe/QueueRowResolver;)V + new-instance v0, Lradiant/gestures/queue/UnifiedSearchResolver; + invoke-direct {v0, p0, p1}, Lradiant/gestures/queue/UnifiedSearchResolver;->(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V + invoke-static {p1, v0}, Lradiant/gestures/queue/SwipeToQueue;->install(Landroidx/recyclerview/widget/RecyclerView;Lradiant/gestures/queue/QueueRowResolver;)V :done return-void .end method # virtual methods -.method public execute(Lradiant/swipe/QueueRequest;)V +.method public execute(Lradiant/gestures/queue/QueueRequest;)V .locals 9 - iget v8, p1, Lradiant/swipe/QueueRequest;->action:I + iget v8, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + invoke-direct {p0, p1}, Lradiant/gestures/queue/UnifiedSearchResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object v0 if-eqz v0, :done - iget-object v1, p0, Lradiant/swipe/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; + iget-object v1, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->fragment:Ljava/lang/ref/WeakReference; invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v1, :done - iget-object v2, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->c:Ltl/q; + iget-object v2, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->c:Ltl/q; # MARKER: R8 Ltl/q; c if-eqz v2, :done - invoke-static {v0}, Lbm/i;->a(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + invoke-static {v0}, Lbm/i;->a(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lbm/i; Lbm/h; a move-result-object v3 - iget-object v4, v2, Ltl/q;->c:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v4, v2, Ltl/q;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ltl/q; c - instance-of v5, v0, Lbm/k; + instance-of v5, v0, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v5, :album move-object v5, v0 - check-cast v5, Lbm/k; - iget-object v6, v5, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + check-cast v5, Lbm/k; # MARKER: R8 Lbm/k; + iget-object v6, v5, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lbm/k; a const/4 v7, 0x3 if-eq v8, v7, :append_track - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z move-result v7 if-nez v7, :append_track - new-instance v2, Lcom/aspiro/wamp/search/v2/a$g; - iget v3, p1, Lradiant/swipe/QueueRequest;->position:I - invoke-direct {v2, v0, v3}, Lcom/aspiro/wamp/search/v2/a$g;->(Lbm/h;I)V - invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + new-instance v2, Lcom/aspiro/wamp/search/v2/a$g; # MARKER: R8 Lcom/aspiro/wamp/search/v2/a$g; + iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I + invoke-direct {v2, v0, v3}, Lcom/aspiro/wamp/search/v2/a$g;->(Lbm/h;I)V # MARKER: R8 Lcom/aspiro/wamp/search/v2/a$g; Lbm/h; + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N move-result-object v0 - invoke-interface {v0, v2}, Ltl/f;->e(Lcom/aspiro/wamp/search/v2/a;)V + invoke-interface {v0, v2}, Ltl/f;->e(Lcom/aspiro/wamp/search/v2/a;)V # MARKER: R8 Ltl/f; Lcom/aspiro/wamp/search/v2/a; e goto :done :append_track const-string v7, "" - iget-object p1, v5, Lbm/k;->n:Lcom/aspiro/wamp/search/SearchDataSource; + iget-object p1, v5, Lbm/k;->n:Lcom/aspiro/wamp/search/SearchDataSource; # MARKER: R8 Lbm/k; n sget-object v0, Lcom/aspiro/wamp/search/SearchDataSource;->REMOTE:Lcom/aspiro/wamp/search/SearchDataSource; if-ne p1, v0, :query_ready - invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N move-result-object p1 - invoke-interface {p1}, Ltl/h;->c()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery; + invoke-interface {p1}, Ltl/h;->c()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery; # MARKER: R8 Ltl/h; c move-result-object p1 - iget-object v7, p1, Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;->a:Ljava/lang/String; + iget-object v7, p1, Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;->a:Ljava/lang/String; # MARKER: R8 a :query_ready invoke-virtual {v6}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result p1 @@ -267,10 +267,10 @@ move-result-object p1 const/4 v0, 0x0 if-eqz v4, :nav_ready - invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b move-result-object v0 :nav_ready - invoke-static {p1, v7, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + invoke-static {p1, v7, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o move-result-object p1 invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; @@ -283,27 +283,27 @@ if-ne v8, v2, :queue_append_track - invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v0, v6, v3, p1}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done :queue_append_track - invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {v0, v6, v3, p1}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done :add_to_playlist_track - invoke-static {v0, v6, v3, p1}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {v0, v6, v3, p1}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :album - instance-of v5, v0, Lbm/a; + instance-of v5, v0, Lbm/a; # MARKER: R8 Lbm/a; if-eqz v5, :playlist - iget-object v5, v2, Ltl/q;->a:Lx40/a; - instance-of v6, v5, Lh4/a; + iget-object v5, v2, Ltl/q;->a:Lx40/a; # MARKER: R8 Ltl/q; Lx40/a; a + instance-of v6, v5, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v6, :done - check-cast v5, Lh4/a; - check-cast v0, Lbm/a; - iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + check-cast v5, Lh4/a; # MARKER: R8 Lh4/a; + check-cast v0, Lbm/a; # MARKER: R8 Lbm/a; + iget-object v6, v0, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lbm/a; a invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 const/4 v0, 0x3 @@ -314,27 +314,27 @@ if-ne v8, v0, :append_album - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; goto :done :append_album - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v0 if-eqz v0, :done - iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; + iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 g invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z goto :done :add_to_playlist_album - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; goto :done :playlist - instance-of v5, v0, Lbm/g; + instance-of v5, v0, Lbm/g; # MARKER: R8 Lbm/g; if-eqz v5, :mix - check-cast v0, Lbm/g; - iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + check-cast v0, Lbm/g; # MARKER: R8 Lbm/g; + iget-object v5, v0, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lbm/g; a invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v6 const/4 v0, 0x3 @@ -345,27 +345,27 @@ if-ne v8, v0, :append_playlist - invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v6, v5, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :append_playlist - invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v6, v5, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :add_to_playlist_playlist - invoke-static {v6, v5, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V + invoke-static {v6, v5, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V goto :done :mix - instance-of v5, v0, Lbm/f; + instance-of v5, v0, Lbm/f; # MARKER: R8 Lbm/f; if-eqz v5, :done - iget-object v5, v2, Ltl/q;->a:Lx40/a; - instance-of v6, v5, Lh4/a; + iget-object v5, v2, Ltl/q;->a:Lx40/a; # MARKER: R8 Ltl/q; Lx40/a; a + instance-of v6, v5, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v6, :done - check-cast v5, Lh4/a; - check-cast v0, Lbm/f; - iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + check-cast v5, Lh4/a; # MARKER: R8 Lh4/a; + check-cast v0, Lbm/f; # MARKER: R8 Lbm/f; + iget-object v6, v0, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lbm/f; a invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; move-result-object v7 const/4 v0, 0x3 @@ -376,30 +376,30 @@ if-ne v8, v0, :append_mix - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; goto :done :append_mix - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; # MARKER: R8 Lh4/a; move-result-object v0 if-eqz v0, :done - iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; + iget-object v1, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->g:Lio/reactivex/disposables/CompositeDisposable; # MARKER: R8 g invoke-virtual {v1, v0}, Lio/reactivex/disposables/CompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z goto :done :add_to_playlist_mix - invoke-static {v7, v6, v3, v4, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V + invoke-static {v7, v6, v3, v4, v5}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V # MARKER: R8 Lh4/a; :done return-void .end method -.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/swipe/QueueRequest; +.method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 6 - iget-object v0, p0, Lradiant/swipe/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; + iget-object v0, p0, Lradiant/gestures/queue/UnifiedSearchResolver;->recycler:Ljava/lang/ref/WeakReference; invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object; move-result-object v0 if-ne v0, p1, :invalid @@ -412,9 +412,9 @@ :has_position invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object p1 - instance-of v1, p1, La50/d; + instance-of v1, p1, La50/d; # MARKER: R8 La50/d; if-eqz v1, :invalid - check-cast p1, La50/d; + check-cast p1, La50/d; # MARKER: R8 La50/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object p1 invoke-interface {p1}, Ljava/util/List;->size()I @@ -425,37 +425,37 @@ invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 - instance-of v1, p2, Lul/n0$a; + instance-of v1, p2, Lul/n0$a; # MARKER: R8 Lul/n0$a; if-eqz v1, :album_holder - instance-of v1, p1, Lbm/k; + instance-of v1, p1, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v1, :invalid move-object v1, p1 - check-cast v1, Lbm/k; - iget-object v1, v1, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; + check-cast v1, Lbm/k; # MARKER: R8 Lbm/k; + iget-object v1, v1, Lbm/k;->a:Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lbm/k; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I move-result v1 goto :create :album_holder - instance-of v1, p2, Lul/d$a; + instance-of v1, p2, Lul/d$a; # MARKER: R8 Lul/d$a; if-eqz v1, :playlist_holder - instance-of v1, p1, Lbm/a; + instance-of v1, p1, Lbm/a; # MARKER: R8 Lbm/a; if-eqz v1, :invalid move-object v1, p1 - check-cast v1, Lbm/a; - iget-object v1, v1, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; + check-cast v1, Lbm/a; # MARKER: R8 Lbm/a; + iget-object v1, v1, Lbm/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lbm/a; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I move-result v1 goto :create :playlist_holder - instance-of v1, p2, Lul/a0$a; + instance-of v1, p2, Lul/a0$a; # MARKER: R8 Lul/a0$a; if-eqz v1, :mix_holder - instance-of v1, p1, Lbm/g; + instance-of v1, p1, Lbm/g; # MARKER: R8 Lbm/g; if-eqz v1, :invalid move-object v1, p1 - check-cast v1, Lbm/g; - iget-object v1, v1, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; + check-cast v1, Lbm/g; # MARKER: R8 Lbm/g; + iget-object v1, v1, Lbm/g;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lbm/g; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->hashCode()I @@ -463,22 +463,22 @@ goto :create :mix_holder - instance-of p2, p2, Lul/w$a; + instance-of p2, p2, Lul/w$a; # MARKER: R8 Lul/w$a; if-eqz p2, :invalid - instance-of p2, p1, Lbm/f; + instance-of p2, p1, Lbm/f; # MARKER: R8 Lbm/f; if-eqz p2, :invalid move-object p2, p1 - check-cast p2, Lbm/f; - iget-object p2, p2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; + check-cast p2, Lbm/f; # MARKER: R8 Lbm/f; + iget-object p2, p2, Lbm/f;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lbm/f; a invoke-virtual {p2}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; move-result-object p2 invoke-virtual {p2}, Ljava/lang/String;->hashCode()I move-result v1 :create - new-instance v2, Lradiant/swipe/QueueRequest; - invoke-direct {v2, v0, p1, v1}, Lradiant/swipe/QueueRequest;->(ILjava/lang/Object;I)V - invoke-direct {p0, v2}, Lradiant/swipe/UnifiedSearchResolver;->current(Lradiant/swipe/QueueRequest;)Ljava/lang/Object; + new-instance v2, Lradiant/gestures/queue/QueueRequest; + invoke-direct {v2, v0, p1, v1}, Lradiant/gestures/queue/QueueRequest;->(ILjava/lang/Object;I)V + invoke-direct {p0, v2}, Lradiant/gestures/queue/UnifiedSearchResolver;->current(Lradiant/gestures/queue/QueueRequest;)Ljava/lang/Object; move-result-object p1 if-eqz p1, :invalid return-object v2 diff --git a/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali b/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali new file mode 100644 index 0000000..6904c1b --- /dev/null +++ b/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali @@ -0,0 +1,328 @@ +.class public final Lradiant/gestures/queue/VerticalMediaQueueAction; +.super Ljava/lang/Object; +.source "VerticalMediaQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# static fields +.field public static final TYPE_ALBUM:I = 0x1 + +.field public static final TYPE_MIX:I = 0x2 + +.field public static final TYPE_PLAYLIST:I = 0x3 + +.field public static final TYPE_TRACK:I = 0x4 + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final itemId:Ljava/lang/String; + +.field private final mediaType:I + +.field private final moduleUuid:Ljava/lang/String; + +.field private final pageId:Ljava/lang/String; + + +# direct methods +.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V # MARKER: R8 Lam0/l; Lm40/e; + .locals 3 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iput-object p2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iput-object p3, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + instance-of v0, p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + if-eqz v0, :mix + + check-cast p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + iget-wide v0, p4, Lm40/e$a;->a:J # MARKER: R8 Lm40/e$a; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x1 + + goto :store + + :mix + instance-of v0, p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$c; a + + const/4 v1, 0x2 + + goto :store + + :playlist + instance-of v0, p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + if-eqz v0, :track + + check-cast p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + + const/4 v1, 0x3 + + goto :store + + :track + instance-of v0, p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + if-eqz v0, :unsupported + + check-cast p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + + invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x4 + + goto :store + + :unsupported + const/4 v0, 0x0 + + const/4 v1, 0x0 + + :store + iput-object v0, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + iput v1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->mediaType:I + + return-void +.end method + +.method public static isEligible(Lm40/e;)Z # MARKER: R8 Lm40/e; + .locals 1 + + instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + if-eqz v0, :mix + + check-cast p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + iget-boolean p0, p0, Lm40/e$a;->e:Z # MARKER: R8 Lm40/e$a; e + + return p0 + + :mix + instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + if-eqz v0, :playlist + + check-cast p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + iget-boolean p0, p0, Lm40/e$c;->h:Z # MARKER: R8 Lm40/e$c; h + + return p0 + + :playlist + instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + if-eqz v0, :track + + check-cast p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + iget-boolean p0, p0, Lm40/e$d;->g:Z # MARKER: R8 Lm40/e$d; g + + return p0 + + :track + instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + if-eqz v0, :invalid + + check-cast p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + iget-boolean p0, p0, Lm40/e$e;->j:Z # MARKER: R8 Lm40/e$e; j + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + +.method public static isSupported(Lm40/e;)Z # MARKER: R8 Lm40/e; + .locals 1 + + instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + + if-nez v0, :supported + + instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + + if-eqz v0, :invalid + + :supported + const/4 p0, 0x1 + + return p0 + + :invalid + const/4 p0, 0x0 + + return p0 +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 8 + + iget-object v7, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + if-eqz v7, :done + + iget-object v4, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v4, :done + + iget v5, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->mediaType:I + + if-eqz v5, :done + + const/4 v1, 0x3 + + if-eq p1, v1, :queue_event + + const/4 v1, 0x4 + + if-ne v5, v1, :queue_event + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v1 + + if-nez v1, :queue_event + + new-instance v1, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a; + + iget-object v2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-direct {v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a; + + goto :emit + + :queue_event + + iget-object v1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->context:Landroid/content/Context; + + if-eqz v1, :done + + new-instance v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + iget-object v2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->pageId:Ljava/lang/String; + + iget-object v3, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + move v6, p1 + + invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V + + move-object v1, v0 + + :emit + invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/VerticalMediaQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->context:Landroid/content/Context; + + return-void +.end method + +.method public stableKey()Ljava/lang/String; + .locals 3 + + iget-object v0, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->itemId:Ljava/lang/String; + + if-eqz v0, :invalid + + new-instance v1, Ljava/lang/StringBuilder; + + const-string v2, "vlc:" + + invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V + + iget-object v2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + iget v2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->mediaType:I + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + const/16 v2, 0x3a + + invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; + + invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + + return-object v0 + + :invalid + const/4 v0, 0x0 + + return-object v0 +.end method diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali b/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali similarity index 67% rename from patches/extension/radiant/swipe/ViewAllTrackQueue.smali rename to patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali index 07e4ef1..5378799 100644 --- a/patches/extension/radiant/swipe/ViewAllTrackQueue.smali +++ b/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali @@ -1,4 +1,4 @@ -.class public final Lradiant/swipe/ViewAllTrackQueue; +.class public final Lradiant/gestures/queue/ViewAllTrackQueue; .super Ljava/lang/Object; .source "ViewAllTrackQueue.smali" @@ -21,9 +21,9 @@ if-lez v2, :done - iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->n:Lcom/tidal/android/feature/viewall/ui/c; + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->n:Lcom/tidal/android/feature/viewall/ui/c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/c; n - iget-object v0, v0, Lcom/tidal/android/feature/viewall/ui/c;->f:Ljava/util/ArrayList; + iget-object v0, v0, Lcom/tidal/android/feature/viewall/ui/c;->f:Ljava/util/ArrayList; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/c; f invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; @@ -40,37 +40,37 @@ move-result-object v1 - instance-of v2, v1, Lpd0/a; + instance-of v2, v1, Lpd0/a; # MARKER: R8 Lpd0/a; if-eqz v2, :find_track - check-cast v1, Lpd0/a; + check-cast v1, Lpd0/a; # MARKER: R8 Lpd0/a; - iget-object v1, v1, Lpd0/a;->a:Lh40/n; + iget-object v1, v1, Lpd0/a;->a:Lh40/n; # MARKER: R8 Lpd0/a; Lh40/n; a - instance-of v2, v1, Lh40/p; + instance-of v2, v1, Lh40/p; # MARKER: R8 Lh40/p; if-eqz v2, :find_track - check-cast v1, Lh40/p; + check-cast v1, Lh40/p; # MARKER: R8 Lh40/p; - iget-wide v3, v1, Lh40/p;->a:J + iget-wide v3, v1, Lh40/p;->a:J # MARKER: R8 Lh40/p; a cmp-long v2, v3, p2 if-nez v2, :find_track - iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->f:Lcom/tidal/android/feature/viewall/ui/u; + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->f:Lcom/tidal/android/feature/viewall/ui/u; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/u; f - instance-of v2, v0, Lra/d; + instance-of v2, v0, Lra/d; # MARKER: R8 Lra/d; if-eqz v2, :done - check-cast v0, Lra/d; + check-cast v0, Lra/d; # MARKER: R8 Lra/d; - iget-object v2, v0, Lra/d;->b:Lcom/tidal/android/navigation/NavigationInfo; + iget-object v2, v0, Lra/d;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lra/d; b - invoke-static {v1}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; + invoke-static {v1}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a move-result-object v3 @@ -86,7 +86,7 @@ if-eqz v2, :navigation_ready - invoke-static {v2}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; + invoke-static {v2}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b move-result-object v6 @@ -95,7 +95,7 @@ const/4 v8, 0x0 - invoke-static {v5, v8, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; + invoke-static {v5, v8, v6, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; j move-result-object v9 @@ -105,7 +105,7 @@ if-ne p4, v0, :check_add_to_playlist - invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {p1, v3, v4, v9}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z goto :done @@ -114,27 +114,27 @@ if-ne p4, v0, :append - invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + invoke-static {p1, v3, v4, v9}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V goto :done :append - invoke-static {p1, v3, v4, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + invoke-static {p1, v3, v4, v9}, Lradiant/gestures/queue/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z :done return-void .end method -.method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z +.method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e; .locals 6 - instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c; + instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; if-eqz v0, :not_handled - check-cast p1, Lcom/tidal/android/feature/viewall/ui/e$c; + check-cast p1, Lcom/tidal/android/feature/viewall/ui/e$c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; - iget-object v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c;->a:Ljava/lang/Object; + iget-object v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c;->a:Ljava/lang/Object; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; a instance-of v1, v0, Ljava/lang/String; @@ -184,11 +184,11 @@ move-result-wide v1 - sget-object v3, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + sget-object v3, Lradiant/gestures/queue/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; const/4 v5, 0x0 - sput-object v5, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + sput-object v5, Lradiant/gestures/queue/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; if-eqz v3, :handled @@ -198,7 +198,7 @@ check-cast v3, Landroid/content/Context; - invoke-static {p0, v3, v1, v2, v4}, Lradiant/swipe/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V + invoke-static {p0, v3, v1, v2, v4}, Lradiant/gestures/queue/ViewAllTrackQueue;->handle(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Landroid/content/Context;JI)V :handled const/4 v0, 0x1 @@ -242,7 +242,7 @@ invoke-direct {v0, p0}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V - sput-object v0, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; + sput-object v0, Lradiant/gestures/queue/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference; return-void .end method diff --git a/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali b/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali new file mode 100644 index 0000000..a982f62 --- /dev/null +++ b/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali @@ -0,0 +1,106 @@ +.class public final Lradiant/gestures/queue/ViewAllTrackQueueAction; +.super Ljava/lang/Object; +.source "ViewAllTrackQueueAction.smali" + +# interfaces +.implements Lradiant/gestures/queue/ComposeSwipeAction; + + +# instance fields +.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; + +.field private context:Landroid/content/Context; + +.field private final trackId:J + + +# direct methods +.method public constructor (Lam0/l;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; + .locals 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput-object p1, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + iget-wide v0, p2, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + + iput-wide v0, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->trackId:J + + return-void +.end method + + +# virtual methods +.method public invoke(I)Ljava/lang/Object; + .locals 5 + + iget-object v0, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + + if-eqz v0, :done + + iget-wide v1, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->trackId:J + + const/4 v3, 0x3 + + if-eq p1, v3, :queue_event + + invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + + move-result v3 + + if-eqz v3, :play_existing + + :queue_event + iget-object v3, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->context:Landroid/content/Context; + + if-eqz v3, :done + + invoke-static {v3}, Lradiant/gestures/queue/ViewAllTrackQueue;->setContext(Landroid/content/Context;)V + + invoke-static {v1, v2, p1}, Lradiant/gestures/queue/ViewAllTrackQueue;->marker(JI)Ljava/lang/String; + + move-result-object v3 + + new-instance v4, Li40/c$b; # MARKER: R8 Li40/c$b; + + invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Li40/c$b; + + goto :emit + + :play_existing + invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object v3 + + new-instance v4, Li40/c$b; # MARKER: R8 Li40/c$b; + + invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Li40/c$b; + + :emit + invoke-interface {v0, v4}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + + :done + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method + +.method public invoke()Ljava/lang/Object; + .locals 1 + + const/4 v0, 0x2 + + invoke-virtual {p0, v0}, Lradiant/gestures/queue/ViewAllTrackQueueAction;->invoke(I)Ljava/lang/Object; + + move-result-object v0 + + return-object v0 +.end method + +.method public setContext(Landroid/content/Context;)V + .locals 0 + + iput-object p1, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->context:Landroid/content/Context; + + return-void +.end method diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali deleted file mode 100644 index 8022129..0000000 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueue.smali +++ /dev/null @@ -1,181 +0,0 @@ -.class public final Lradiant/swipe/ArtistTrackCreditsQueue; -.super Ljava/lang/Object; -.source "ArtistTrackCreditsQueue.smali" - - -# direct methods -.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/swipe/ArtistTrackCreditsQueueEvent;)V - .locals 11 - - if-eqz p0, :done - - if-eqz p1, :done - - iget-object v0, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; - - if-eqz v0, :done - - invoke-virtual {v0}, Ljava/lang/String;->length()I - - move-result v1 - - if-lez v1, :done - - iget-object v1, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; - - if-eqz v1, :done - - invoke-virtual {v1}, Ljava/lang/String;->length()I - - move-result v2 - - if-lez v2, :done - - iget-wide v2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J - - const-wide/16 v4, 0x0 - - cmp-long v4, v2, v4 - - if-lez v4, :done - - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; - - move-result-object v4 - - instance-of v5, v4, Lc60/d; - - if-eqz v5, :done - - check-cast v4, Lc60/d; - - iget-object v5, v4, Lc60/d;->b:Ljava/lang/String; - - invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v1 - - if-eqz v1, :done - - iget-object v1, v4, Lc60/d;->f:Ljava/util/ArrayList; - - if-eqz v1, :done - - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; - - move-result-object v1 - - :find_track - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v5 - - if-eqz v5, :done - - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v5 - - instance-of v6, v5, Lc60/r$b; - - if-eqz v6, :find_track - - check-cast v5, Lc60/r$b; - - iget-object v5, v5, Lc60/r$b;->a:Lh40/n; - - instance-of v6, v5, Lh40/p; - - if-eqz v6, :find_track - - check-cast v5, Lh40/p; - - iget-wide v6, v5, Lh40/p;->a:J - - cmp-long v6, v6, v2 - - if-nez v6, :find_track - - iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; - - instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; - - if-eqz v2, :done - - check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; - - iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; - - if-eqz v6, :done - - iget-object v1, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; - - if-eqz v1, :done - - invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; - - move-result-object v7 - - if-eqz v7, :done - - iget-object v2, v4, Lc60/d;->a:Ljava/lang/String; - - if-eqz v2, :done - - new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - iget v3, v4, Lc60/d;->e:I - - invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v3 - - invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - iget-wide v2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J - - invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v2 - - iget-object v3, v4, Lc60/d;->c:Ljava/lang/String; - - iget-object v10, v4, Lc60/d;->g:Ljava/lang/String; - - invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; - - move-result-object v4 - - invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; - - move-result-object v9 - - if-eqz v9, :done - - invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - - iget v0, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I - - const/4 v2, 0x1 - - if-ne v0, v2, :check_add_to_playlist - - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :check_add_to_playlist - const/4 v2, 0x3 - - if-ne v0, v2, :append - - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V - - goto :done - - :append - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - :done - return-void -.end method diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali deleted file mode 100644 index b7b236d..0000000 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueAction.smali +++ /dev/null @@ -1,113 +0,0 @@ -.class public final Lradiant/swipe/ArtistTrackCreditsQueueAction; -.super Ljava/lang/Object; -.source "ArtistTrackCreditsQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final moduleUuid:Ljava/lang/String; - -.field private final pageId:Ljava/lang/String; - -.field private final trackId:J - - -# direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V - .locals 2 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; - - iput-object p2, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; - - iget-wide v0, p4, Lm40/e$e;->a:J - - iput-wide v0, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J - - return-void -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 8 - - iget-wide v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J - - const/4 v0, 0x3 - - if-eq p1, v0, :active_queue - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v0 - - if-nez v0, :active_queue - - new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; - - iget-object v3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; - - iget-object v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;->(JLjava/lang/String;Ljava/lang/String;)V - - goto :emit - - :active_queue - new-instance v0, Lradiant/swipe/ArtistTrackCreditsQueueEvent; - - iget-object v1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - iget-object v2, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; - - iget-wide v4, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->trackId:J - - move v6, p1 - - invoke-direct/range {v0 .. v6}, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V - - :emit - iget-object v7, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->callback:Lam0/l; - - invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/ArtistTrackCreditsQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueAction;->context:Landroid/content/Context; - - return-void -.end method diff --git a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali b/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali deleted file mode 100644 index 58272fc..0000000 --- a/patches/extension/radiant/swipe/ArtistTrackCreditsQueueEvent.smali +++ /dev/null @@ -1,38 +0,0 @@ -.class public final Lradiant/swipe/ArtistTrackCreditsQueueEvent; -.super Ljava/lang/Object; -.source "ArtistTrackCreditsQueueEvent.smali" - -# interfaces -.implements Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b; - - -# instance fields -.field public final action:I - -.field public final context:Landroid/content/Context; - -.field public final moduleUuid:Ljava/lang/String; - -.field public final pageId:Ljava/lang/String; - -.field public final trackId:J - - -# direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->context:Landroid/content/Context; - - iput-object p2, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->moduleUuid:Ljava/lang/String; - - iput-wide p4, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->trackId:J - - iput p6, p0, Lradiant/swipe/ArtistTrackCreditsQueueEvent;->action:I - - return-void -.end method diff --git a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali b/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali deleted file mode 100644 index 93e54c0..0000000 --- a/patches/extension/radiant/swipe/CompactGridMediaQueueAction.smali +++ /dev/null @@ -1,281 +0,0 @@ -.class public final Lradiant/swipe/CompactGridMediaQueueAction; -.super Ljava/lang/Object; -.source "CompactGridMediaQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final itemId:Ljava/lang/String; - -.field private final mediaType:I - -.field private final moduleUuid:Ljava/lang/String; - -.field private final pageId:Ljava/lang/String; - - -# direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V - .locals 3 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; - - iput-object p2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; - - instance-of v0, p4, Lm40/e$a; - - if-eqz v0, :mix - - check-cast p4, Lm40/e$a; - - iget-wide v0, p4, Lm40/e$a;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v0 - - const/4 v1, 0x1 - - goto :store - - :mix - instance-of v0, p4, Lm40/e$c; - - if-eqz v0, :playlist - - check-cast p4, Lm40/e$c; - - iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; - - const/4 v1, 0x2 - - goto :store - - :playlist - instance-of v0, p4, Lm40/e$d; - - if-eqz v0, :track - - check-cast p4, Lm40/e$d; - - iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; - - const/4 v1, 0x3 - - goto :store - - :track - instance-of v0, p4, Lm40/e$e; - - if-eqz v0, :unsupported - - check-cast p4, Lm40/e$e; - - iget-wide v0, p4, Lm40/e$e;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v0 - - const/4 v1, 0x4 - - goto :store - - :unsupported - const/4 v0, 0x0 - - const/4 v1, 0x0 - - :store - iput-object v0, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; - - iput v1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I - - return-void -.end method - -.method public static isEligible(Lm40/e;)Z - .locals 1 - - instance-of v0, p0, Lm40/e$a; - - if-eqz v0, :mix - - check-cast p0, Lm40/e$a; - - iget-boolean p0, p0, Lm40/e$a;->e:Z - - return p0 - - :mix - instance-of v0, p0, Lm40/e$c; - - if-eqz v0, :playlist - - check-cast p0, Lm40/e$c; - - iget-boolean p0, p0, Lm40/e$c;->h:Z - - return p0 - - :playlist - instance-of v0, p0, Lm40/e$d; - - if-eqz v0, :track - - check-cast p0, Lm40/e$d; - - iget-boolean p0, p0, Lm40/e$d;->g:Z - - return p0 - - :track - instance-of v0, p0, Lm40/e$e; - - if-eqz v0, :invalid - - check-cast p0, Lm40/e$e; - - iget-boolean p0, p0, Lm40/e$e;->j:Z - - return p0 - - :invalid - const/4 p0, 0x0 - - return p0 -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 8 - - iget-object v7, p0, Lradiant/swipe/CompactGridMediaQueueAction;->callback:Lam0/l; - - if-eqz v7, :done - - iget-object v4, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; - - if-eqz v4, :done - - iget v5, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I - - if-eqz v5, :done - - const/4 v1, 0x3 - - if-eq p1, v1, :queue_event - - const/4 v1, 0x4 - - if-ne v5, v1, :queue_event - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v1 - - if-nez v1, :queue_event - - move-object v1, v4 - - goto :emit - - :queue_event - iget-object v1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; - - iget-object v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; - - move v6, p1 - - invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V - - move-object v1, v0 - - :emit - invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/CompactGridMediaQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/CompactGridMediaQueueAction;->context:Landroid/content/Context; - - return-void -.end method - -.method public stableKey()Ljava/lang/String; - .locals 3 - - iget-object v0, p0, Lradiant/swipe/CompactGridMediaQueueAction;->itemId:Ljava/lang/String; - - if-eqz v0, :invalid - - new-instance v1, Ljava/lang/StringBuilder; - - const-string v2, "cgc:" - - invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V - - iget-object v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const/16 v2, 0x3a - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - iget v2, p0, Lradiant/swipe/CompactGridMediaQueueAction;->mediaType:I - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const/16 v2, 0x3a - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 - - :invalid - const/4 v0, 0x0 - - return-object v0 -.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueue.smali b/patches/extension/radiant/swipe/ComposeSearchQueue.smali deleted file mode 100644 index 0f6e46d..0000000 --- a/patches/extension/radiant/swipe/ComposeSearchQueue.smali +++ /dev/null @@ -1,367 +0,0 @@ -.class public final Lradiant/swipe/ComposeSearchQueue; -.super Ljava/lang/Object; -.source "ComposeSearchQueue.smali" - - -# direct methods -.method public static handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/swipe/ComposeSearchQueueEvent;)V - .locals 10 - - if-eqz p0, :done - - if-eqz p1, :done - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x1 - - if-lt v0, v1, :done - - const/4 v1, 0x3 - - if-gt v0, v1, :done - - iget-object v8, p1, Lradiant/swipe/ComposeSearchQueueEvent;->context:Landroid/content/Context; - - if-eqz v8, :done - - iget-object v2, p1, Lradiant/swipe/ComposeSearchQueueEvent;->id:Ljava/lang/String; - - if-eqz v2, :done - - iget v4, p1, Lradiant/swipe/ComposeSearchQueueEvent;->type:I - - const/4 v0, 0x1 - - if-lt v4, v0, :done - - const/4 v0, 0x4 - - if-gt v4, v0, :done - - iget-object v0, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->n:Ljava/util/List; - - invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; - - move-result-object v0 - - :find_row - invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z - - move-result v1 - - if-eqz v1, :done - - invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v1 - - check-cast v1, Lmb0/e; - - invoke-static {v1}, Lmb0/f;->a(Lmb0/e;)Ljava/lang/String; - - move-result-object v9 - - invoke-virtual {v2, v9}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v9 - - if-eqz v9, :find_row - - instance-of v9, v1, Lmb0/a; - - if-eqz v9, :find_row - - check-cast v1, Lmb0/a; - - iget-object v3, v1, Lmb0/a;->a:Lh40/n; - - const/4 v9, 0x1 - - if-ne v4, v9, :check_album - - instance-of v9, v3, Lh40/p; - - if-eqz v9, :find_row - - goto :recover_dependencies - - :check_album - const/4 v9, 0x2 - - if-ne v4, v9, :check_playlist - - instance-of v9, v3, Lh40/a; - - if-eqz v9, :find_row - - goto :recover_dependencies - - :check_playlist - const/4 v9, 0x3 - - if-ne v4, v9, :check_mix - - instance-of v9, v3, Lh40/j; - - if-eqz v9, :find_row - - goto :recover_dependencies - - :check_mix - instance-of v9, v3, Lh40/i; - - if-eqz v9, :find_row - - :recover_dependencies - iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->d:Lcom/tidal/android/feature/search/ui/e; - - instance-of v0, v9, Lv9/e; - - if-eqz v0, :done - - check-cast v9, Lv9/e; - - iget-object v5, v9, Lv9/e;->b:Lcom/tidal/android/navigation/NavigationInfo; - - iget-object v9, v9, Lv9/e;->a:Lcom/aspiro/wamp/core/k; - - const/4 v6, 0x0 - - const/4 v0, 0x2 - - if-eq v4, v0, :recover_menu - - const/4 v0, 0x4 - - if-ne v4, v0, :dependencies_ready - - :recover_menu - - instance-of v0, v9, Lh9/p1; - - if-eqz v0, :done - - check-cast v9, Lh9/p1; - - iget-object v9, v9, Lh9/p1;->b:Lx40/a; - - instance-of v0, v9, Lh4/a; - - if-eqz v0, :done - - move-object v6, v9 - - check-cast v6, Lh4/a; - - :dependencies_ready - - new-instance v7, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - const-string v0, "search" - - invoke-direct {v7, v0, v2}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V - - const/4 v0, 0x1 - - if-ne v4, v0, :album - - check-cast v3, Lh40/p; - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x3 - - if-eq v0, v1, :queue_track - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v0 - - if-eqz v0, :play_track - - :queue_track - invoke-static {v3}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; - - move-result-object v9 - - iget-object v4, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; - - invoke-interface {v4}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; - - move-result-object v4 - - check-cast v4, Lcom/tidal/android/feature/search/ui/SearchQuery; - - iget-object v4, v4, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; - - if-nez v4, :track_query_ready - - const-string v4, "" - - :track_query_ready - const/4 v1, 0x0 - - if-eqz v5, :track_navigation_ready - - invoke-static {v5}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; - - move-result-object v1 - - :track_navigation_ready - invoke-static {v2, v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; - - move-result-object v4 - - invoke-virtual {v4, v9}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_track_to_playlist - - invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :check_add_track_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_track - - invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V - - goto :done - - :append_track - invoke-static {v8, v9, v7, v4}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :play_track - iget-object v5, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->m:Lkotlinx/coroutines/flow/MutableStateFlow; - - invoke-interface {v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; - - move-result-object v5 - - check-cast v5, Lcom/tidal/android/feature/search/ui/SearchQuery; - - iget-object v5, v5, Lcom/tidal/android/feature/search/ui/SearchQuery;->a:Ljava/lang/String; - - if-nez v5, :play_query_ready - - const-string v5, "" - - :play_query_ready - iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->f:Lcom/tidal/android/feature/search/ui/f; - - iget-wide v0, v3, Lh40/p;->a:J - - invoke-interface {v9, v0, v1, v3, v5}, Lcom/tidal/android/feature/search/ui/f;->a(JLh40/p;Ljava/lang/String;)V - - goto :done - - :album - const/4 v0, 0x2 - - if-ne v4, v0, :playlist - - check-cast v3, Lh40/a; - - invoke-static {v3}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; - - move-result-object v9 - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_album_to_playlist - - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_album_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_album - - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_album - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :playlist - const/4 v0, 0x3 - - if-ne v4, v0, :mix - - check-cast v3, Lh40/j; - - invoke-static {v3}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; - - move-result-object v9 - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_playlist_to_playlist - - invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :check_add_playlist_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_playlist - - invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :append_playlist - invoke-static {v8, v9, v7, v5}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :mix - check-cast v3, Lh40/i; - - invoke-static {v3}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; - - move-result-object v9 - - iget v0, p1, Lradiant/swipe/ComposeSearchQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_mix_to_playlist - - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_mix_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_mix - - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_mix - invoke-static {v8, v9, v7, v5, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - :done - return-void -.end method diff --git a/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali b/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali deleted file mode 100644 index c1a9e54..0000000 --- a/patches/extension/radiant/swipe/ComposeSearchQueueAction.smali +++ /dev/null @@ -1,232 +0,0 @@ -.class public final Lradiant/swipe/ComposeSearchQueueAction; -.super Ljava/lang/Object; -.source "ComposeSearchQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final id:Ljava/lang/String; - -.field private final type:I - - -# direct methods -.method public constructor (Lam0/l;Lpb0/b;)V - .locals 1 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l; - - invoke-static {p2}, Lradiant/swipe/ComposeSearchQueueAction;->key(Lpb0/b;)Ljava/lang/String; - - move-result-object v0 - - iput-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; - - invoke-static {p2}, Lradiant/swipe/ComposeSearchQueueAction;->type(Lpb0/b;)I - - move-result p1 - - iput p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I - - return-void -.end method - -.method public static key(Lpb0/b;)Ljava/lang/String; - .locals 2 - - instance-of v0, p0, Lpb0/b$i; - - if-eqz v0, :album - - check-cast p0, Lpb0/b$i; - - iget-wide v0, p0, Lpb0/b$i;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object p0 - - return-object p0 - - :album - instance-of v0, p0, Lpb0/b$a; - - if-eqz v0, :playlist - - check-cast p0, Lpb0/b$a; - - iget-wide v0, p0, Lpb0/b$a;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object p0 - - return-object p0 - - :playlist - instance-of v0, p0, Lpb0/b$f; - - if-eqz v0, :mix - - check-cast p0, Lpb0/b$f; - - iget-object p0, p0, Lpb0/b$f;->a:Ljava/lang/String; - - return-object p0 - - :mix - instance-of v0, p0, Lpb0/b$e; - - if-eqz v0, :invalid - - check-cast p0, Lpb0/b$e; - - iget-object p0, p0, Lpb0/b$e;->a:Ljava/lang/String; - - return-object p0 - - :invalid - const/4 p0, 0x0 - - return-object p0 -.end method - -.method public stableKey()Ljava/lang/String; - .locals 3 - - iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; - - if-eqz v0, :invalid - - iget v1, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I - - if-eqz v1, :invalid - - new-instance v2, Ljava/lang/StringBuilder; - - invoke-direct {v2}, Ljava/lang/StringBuilder;->()V - - invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const/16 v1, 0x3a - - invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 - - :invalid - const/4 v0, 0x0 - - return-object v0 -.end method - -.method private static type(Lpb0/b;)I - .locals 1 - - instance-of v0, p0, Lpb0/b$i; - - if-eqz v0, :album - - const/4 p0, 0x1 - - return p0 - - :album - instance-of v0, p0, Lpb0/b$a; - - if-eqz v0, :playlist - - const/4 p0, 0x2 - - return p0 - - :playlist - instance-of v0, p0, Lpb0/b$f; - - if-eqz v0, :mix - - const/4 p0, 0x3 - - return p0 - - :mix - instance-of p0, p0, Lpb0/b$e; - - if-eqz p0, :invalid - - const/4 p0, 0x4 - - return p0 - - :invalid - const/4 p0, 0x0 - - return p0 -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 4 - - iget-object v0, p0, Lradiant/swipe/ComposeSearchQueueAction;->callback:Lam0/l; - - if-eqz v0, :done - - iget-object v1, p0, Lradiant/swipe/ComposeSearchQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - iget-object v2, p0, Lradiant/swipe/ComposeSearchQueueAction;->id:Ljava/lang/String; - - if-eqz v2, :done - - iget v3, p0, Lradiant/swipe/ComposeSearchQueueAction;->type:I - - if-eqz v3, :done - - new-instance p0, Lradiant/swipe/ComposeSearchQueueEvent; - - invoke-direct {p0, v1, v2, v3, p1}, Lradiant/swipe/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;II)V - - invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/ComposeSearchQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/ComposeSearchQueueAction;->context:Landroid/content/Context; - - return-void -.end method diff --git a/patches/extension/radiant/swipe/ComposeTapGuard.smali b/patches/extension/radiant/swipe/ComposeTapGuard.smali deleted file mode 100644 index e10ac68..0000000 --- a/patches/extension/radiant/swipe/ComposeTapGuard.smali +++ /dev/null @@ -1,97 +0,0 @@ -.class public final Lradiant/swipe/ComposeTapGuard; -.super Ljava/lang/Object; -.implements Lam0/a; - - -# static fields -.field private static volatile deadline:J - - -# instance fields -.field private final delegate:Lam0/a; - - -# direct methods -.method public constructor (Lam0/a;)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/ComposeTapGuard;->delegate:Lam0/a; - - return-void -.end method - -.method public static isSuppressed()Z - .locals 5 - - invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J - - move-result-wide v0 - - sget-wide v2, Lradiant/swipe/ComposeTapGuard;->deadline:J - - cmp-long v4, v0, v2 - - if-ltz v4, :suppressed - - const/4 v0, 0x0 - - return v0 - - :suppressed - const/4 v0, 0x1 - - return v0 -.end method - -.method public static suppressAfterSwipe()V - .locals 4 - - invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J - - move-result-wide v0 - - const-wide/16 v2, 0x96 - - add-long/2addr v0, v2 - - sput-wide v0, Lradiant/swipe/ComposeTapGuard;->deadline:J - - return-void -.end method - -.method public static wrap(Lam0/a;)Lam0/a; - .locals 1 - - new-instance v0, Lradiant/swipe/ComposeTapGuard; - - invoke-direct {v0, p0}, Lradiant/swipe/ComposeTapGuard;->(Lam0/a;)V - - return-object v0 -.end method - - -# virtual methods -.method public invoke()Ljava/lang/Object; - .locals 1 - - invoke-static {}, Lradiant/swipe/ComposeTapGuard;->isSuppressed()Z - - move-result v0 - - if-eqz v0, :dispatch - - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 - - :dispatch - iget-object v0, p0, Lradiant/swipe/ComposeTapGuard;->delegate:Lam0/a; - - invoke-interface {v0}, Lam0/a;->invoke()Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method diff --git a/patches/extension/radiant/swipe/DynamicMediaQueue.smali b/patches/extension/radiant/swipe/DynamicMediaQueue.smali deleted file mode 100644 index 72098ab..0000000 --- a/patches/extension/radiant/swipe/DynamicMediaQueue.smali +++ /dev/null @@ -1,844 +0,0 @@ -.class public final Lradiant/swipe/DynamicMediaQueue; -.super Ljava/lang/Object; -.source "DynamicMediaQueue.smali" - - -# direct methods -.method public static handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/swipe/DynamicMediaQueueEvent;)V - .locals 13 - - if-eqz p0, :done - - if-eqz p1, :done - - iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v5, 0x1 - - if-lt v4, v5, :done - - const/4 v5, 0x3 - - if-gt v4, v5, :done - - iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; - - iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; - - iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; - - iget v3, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I - - if-eqz v0, :done - - if-eqz v1, :done - - if-eqz v2, :done - - const/4 v4, 0x1 - - if-lt v3, v4, :done - - const/4 v4, 0x4 - - if-gt v3, v4, :done - - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; - - move-result-object v4 - - instance-of v5, v4, Lc60/f; - - if-eqz v5, :done - - check-cast v4, Lc60/f; - - iget-object v5, v4, Lc60/f;->b:Ljava/lang/String; - - invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v1 - - if-eqz v1, :done - - iget-object v1, v4, Lc60/f;->g:Ljava/util/ArrayList; - - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; - - move-result-object v1 - - :find_media - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v5 - - if-eqz v5, :done - - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v6 - - instance-of v5, v6, Lc60/r; - - if-eqz v5, :find_media - - check-cast v6, Lc60/r; - - invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; - - move-result-object v5 - - invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v5 - - if-eqz v5, :find_media - - instance-of v5, v6, Lc60/r$b; - - if-eqz v5, :done - - check-cast v6, Lc60/r$b; - - iget-object v7, v6, Lc60/r$b;->a:Lh40/n; - - const/4 v5, 0x1 - - if-ne v3, v5, :check_mix - - instance-of v5, v7, Lh40/a; - - if-eqz v5, :done - - goto :dependencies - - :check_mix - const/4 v5, 0x2 - - if-ne v3, v5, :check_playlist - - instance-of v5, v7, Lh40/i; - - if-eqz v5, :done - - goto :dependencies - - :check_playlist - const/4 v5, 0x3 - - if-ne v3, v5, :check_track - - instance-of v5, v7, Lh40/j; - - if-eqz v5, :done - - goto :dependencies - - :check_track - instance-of v5, v7, Lh40/p; - - if-eqz v5, :done - - :dependencies - iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;->b:Lcom/tidal/android/dynamicpages/ui/b; - - instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; - - if-eqz v5, :done - - check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; - - iget-object v5, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; - - if-eqz v5, :done - - iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; - - new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - iget-object v11, v4, Lc60/f;->a:Ljava/lang/String; - - iget v12, v4, Lc60/f;->d:I - - invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v12 - - invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - const/4 v0, 0x1 - - if-ne v3, v0, :mix - - check-cast v7, Lh40/a; - - invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; - - move-result-object v12 - - invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; - - move-result-object v6 - - if-eqz v6, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_album_to_playlist - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_album_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_album - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_album - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :mix - const/4 v0, 0x2 - - if-ne v3, v0, :playlist - - check-cast v7, Lh40/i; - - invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; - - move-result-object v12 - - invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; - - move-result-object v6 - - if-eqz v6, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_mix_to_playlist - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_mix_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_mix - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_mix - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :playlist - const/4 v0, 0x3 - - if-ne v3, v0, :track - - check-cast v7, Lh40/j; - - invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; - - move-result-object v12 - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_playlist_to_playlist - - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :check_add_playlist_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_playlist - - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :append_playlist - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :track - check-cast v7, Lh40/p; - - invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; - - move-result-object v12 - - const/4 v6, 0x0 - - if-eqz v9, :navigation_ready - - invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; - - move-result-object v6 - - :navigation_ready - iget-object v0, v4, Lc60/f;->e:Ljava/lang/String; - - invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; - - move-result-object v11 - - invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_track_to_playlist - - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :check_add_track_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_track - - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V - - goto :done - - :append_track - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - :done - return-void -.end method - -.method public static handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V - .locals 11 - - if-eqz p0, :done - - if-eqz p1, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-lt v0, v1, :done - - const/4 v1, 0x3 - - if-gt v0, v1, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I - - const/4 v1, 0x3 - - if-ne v0, v1, :done - - iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; - - iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; - - iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; - - if-eqz v0, :done - - if-eqz v1, :done - - if-eqz v2, :done - - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; - - move-result-object v3 - - instance-of v4, v3, Lc60/v; - - if-eqz v4, :done - - check-cast v3, Lc60/v; - - iget-object v4, v3, Lc60/v;->b:Ljava/lang/String; - - invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v1 - - if-eqz v1, :done - - iget-object v1, v3, Lc60/v;->f:Ljava/util/ArrayList; - - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; - - move-result-object v1 - - :find_playlist - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v4 - - if-eqz v4, :done - - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v4 - - instance-of v5, v4, Lc60/r; - - if-eqz v5, :find_playlist - - check-cast v4, Lc60/r; - - invoke-static {v4}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; - - move-result-object v5 - - invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v5 - - if-eqz v5, :find_playlist - - instance-of v5, v4, Lc60/r$b; - - if-eqz v5, :done - - check-cast v4, Lc60/r$b; - - iget-object v4, v4, Lc60/r$b;->a:Lh40/n; - - instance-of v5, v4, Lh40/j; - - if-eqz v5, :done - - check-cast v4, Lh40/j; - - iget-object v5, p0, Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;->f:Lcom/tidal/android/dynamicpages/ui/b; - - instance-of v6, v5, Lcom/tidal/android/dynamicpages/ui/c; - - if-eqz v6, :done - - check-cast v5, Lcom/tidal/android/dynamicpages/ui/c; - - iget-object v6, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; - - if-eqz v6, :done - - iget-object v7, v5, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; - - new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - iget-object v9, v3, Lc60/v;->a:Ljava/lang/String; - - iget v10, v3, Lc60/v;->e:I - - invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v10 - - invoke-direct {v8, v0, v9, v10}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - invoke-static {v4}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; - - move-result-object v4 - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_playlist_to_playlist - - invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :check_add_playlist_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_playlist - - invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :append_playlist - invoke-static {v6, v4, v8, v7}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - :done - return-void -.end method - -.method public static handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V - .locals 13 - - if-eqz p0, :done - - if-eqz p1, :done - - iget v4, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v5, 0x1 - - if-lt v4, v5, :done - - const/4 v5, 0x3 - - if-gt v4, v5, :done - - iget-object v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; - - iget-object v1, p1, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; - - iget-object v2, p1, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; - - iget v3, p1, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I - - if-eqz v0, :done - - if-eqz v1, :done - - if-eqz v2, :done - - const/4 v4, 0x1 - - if-lt v3, v4, :done - - const/4 v4, 0x4 - - if-gt v3, v4, :done - - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; - - move-result-object v4 - - instance-of v5, v4, Lc60/c0; - - if-eqz v5, :done - - check-cast v4, Lc60/c0; - - iget-object v5, v4, Lc60/c0;->b:Ljava/lang/String; - - invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v1 - - if-eqz v1, :done - - iget-object v1, v4, Lc60/c0;->g:Ljava/util/ArrayList; - - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; - - move-result-object v1 - - :find_media - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v5 - - if-eqz v5, :done - - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v6 - - instance-of v5, v6, Lc60/r; - - if-eqz v5, :find_media - - check-cast v6, Lc60/r; - - invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; - - move-result-object v5 - - invoke-virtual {v2, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v5 - - if-eqz v5, :find_media - - instance-of v5, v6, Lc60/r$b; - - if-eqz v5, :done - - check-cast v6, Lc60/r$b; - - iget-object v7, v6, Lc60/r$b;->a:Lh40/n; - - const/4 v5, 0x1 - - if-ne v3, v5, :check_mix - - instance-of v5, v7, Lh40/a; - - if-eqz v5, :done - - goto :dependencies - - :check_mix - const/4 v5, 0x2 - - if-ne v3, v5, :check_playlist - - instance-of v5, v7, Lh40/i; - - if-eqz v5, :done - - goto :dependencies - - :check_playlist - const/4 v5, 0x3 - - if-ne v3, v5, :check_track - - instance-of v5, v7, Lh40/j; - - if-eqz v5, :done - - goto :dependencies - - :check_track - instance-of v5, v7, Lh40/p; - - if-eqz v5, :done - - :dependencies - iget-object v8, p0, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;->e:Lcom/tidal/android/dynamicpages/ui/b; - - instance-of v5, v8, Lcom/tidal/android/dynamicpages/ui/c; - - if-eqz v5, :done - - check-cast v8, Lcom/tidal/android/dynamicpages/ui/c; - - iget-object v5, p1, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; - - if-eqz v5, :done - - iget-object v9, v8, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; - - new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - iget-object v11, v4, Lc60/c0;->a:Ljava/lang/String; - - iget v12, v4, Lc60/c0;->f:I - - invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v12 - - invoke-direct {v10, v0, v11, v12}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - const/4 v0, 0x1 - - if-ne v3, v0, :mix - - check-cast v7, Lh40/a; - - invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; - - move-result-object v12 - - invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; - - move-result-object v6 - - if-eqz v6, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_album_to_playlist - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_album_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_album - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistAlbum(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_album - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->album(Landroid/content/Context;Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :mix - const/4 v0, 0x2 - - if-ne v3, v0, :playlist - - check-cast v7, Lh40/i; - - invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; - - move-result-object v12 - - invoke-static {v8}, Lradiant/swipe/DynamicMediaQueue;->menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; - - move-result-object v6 - - if-eqz v6, :done - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_mix_to_playlist - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->playNextMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :check_add_mix_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_mix - - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->addToPlaylistMix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)V - - goto :done - - :append_mix - invoke-static {v5, v12, v10, v9, v6}, Lradiant/swipe/QueueExecutor;->mix(Landroid/content/Context;Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;Lh4/a;)Lio/reactivex/disposables/Disposable; - - goto :done - - :playlist - const/4 v0, 0x3 - - if-ne v3, v0, :track - - check-cast v7, Lh40/j; - - invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; - - move-result-object v12 - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_playlist_to_playlist - - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playNextPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :check_add_playlist_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_playlist - - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistPlaylist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :append_playlist - invoke-static {v5, v12, v10, v9}, Lradiant/swipe/QueueExecutor;->playlist(Landroid/content/Context;Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V - - goto :done - - :track - check-cast v7, Lh40/p; - - invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; - - move-result-object v12 - - const/4 v6, 0x0 - - if-eqz v9, :navigation_ready - - invoke-static {v9}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; - - move-result-object v6 - - :navigation_ready - iget-object v0, v4, Lc60/c0;->c:Ljava/lang/String; - - invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; - - move-result-object v11 - - invoke-virtual {v11, v12}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - - iget v0, p1, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - const/4 v1, 0x1 - - if-ne v0, v1, :check_add_track_to_playlist - - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :check_add_track_to_playlist - const/4 v1, 0x3 - - if-ne v0, v1, :append_track - - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V - - goto :done - - :append_track - invoke-static {v5, v12, v10, v11}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - :done - return-void -.end method - -.method private static menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; - .locals 2 - - iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/c;->a:Lcom/aspiro/wamp/core/k; - - instance-of v1, v0, Lh9/p1; - - if-eqz v1, :invalid - - check-cast v0, Lh9/p1; - - iget-object v0, v0, Lh9/p1;->b:Lx40/a; - - instance-of v1, v0, Lh4/a; - - if-eqz v1, :invalid - - check-cast v0, Lh4/a; - - return-object v0 - - :invalid - const/4 v0, 0x0 - - return-object v0 -.end method diff --git a/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali b/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali deleted file mode 100644 index 0881ddd..0000000 --- a/patches/extension/radiant/swipe/DynamicMediaQueueEvent.smali +++ /dev/null @@ -1,43 +0,0 @@ -.class public final Lradiant/swipe/DynamicMediaQueueEvent; -.super Ljava/lang/Object; -.source "DynamicMediaQueueEvent.smali" - -# interfaces -.implements Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b; -.implements Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b; - - -# instance fields -.field public final action:I - -.field public final context:Landroid/content/Context; - -.field public final itemId:Ljava/lang/String; - -.field public final mediaType:I - -.field public final moduleUuid:Ljava/lang/String; - -.field public final pageId:Ljava/lang/String; - - -# direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/DynamicMediaQueueEvent;->context:Landroid/content/Context; - - iput-object p2, p0, Lradiant/swipe/DynamicMediaQueueEvent;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/DynamicMediaQueueEvent;->moduleUuid:Ljava/lang/String; - - iput-object p4, p0, Lradiant/swipe/DynamicMediaQueueEvent;->itemId:Ljava/lang/String; - - iput p5, p0, Lradiant/swipe/DynamicMediaQueueEvent;->mediaType:I - - iput p6, p0, Lradiant/swipe/DynamicMediaQueueEvent;->action:I - - return-void -.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueue.smali b/patches/extension/radiant/swipe/DynamicTrackQueue.smali deleted file mode 100644 index b6fd5a9..0000000 --- a/patches/extension/radiant/swipe/DynamicTrackQueue.smali +++ /dev/null @@ -1,189 +0,0 @@ -.class public final Lradiant/swipe/DynamicTrackQueue; -.super Ljava/lang/Object; -.source "DynamicTrackQueue.smali" - - -# direct methods -.method public static handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/swipe/DynamicTrackQueueEvent;)V - .locals 11 - - if-eqz p0, :done - - if-eqz p1, :done - - iget-object v0, p1, Lradiant/swipe/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; - - if-eqz v0, :done - - invoke-virtual {v0}, Ljava/lang/String;->length()I - - move-result v1 - - if-lez v1, :done - - iget-object v1, p1, Lradiant/swipe/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; - - if-eqz v1, :done - - invoke-virtual {v1}, Ljava/lang/String;->length()I - - move-result v2 - - if-lez v2, :done - - iget-wide v2, p1, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J - - const-wide/16 v4, 0x0 - - cmp-long v4, v2, v4 - - if-lez v4, :done - - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; - - move-result-object v4 - - instance-of v5, v4, Lc60/b0; - - if-eqz v5, :done - - check-cast v4, Lc60/b0; - - iget-object v5, v4, Lc60/b0;->b:Ljava/lang/String; - - invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z - - move-result v1 - - if-eqz v1, :done - - iget-object v1, v4, Lc60/b0;->f:Ljava/util/ArrayList; - - if-eqz v1, :done - - invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; - - move-result-object v1 - - :find_track - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z - - move-result v5 - - if-eqz v5, :done - - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; - - move-result-object v5 - - instance-of v6, v5, Lc60/r$b; - - if-eqz v6, :find_track - - check-cast v5, Lc60/r$b; - - iget-object v5, v5, Lc60/r$b;->a:Lh40/n; - - instance-of v6, v5, Lh40/p; - - if-eqz v6, :find_track - - check-cast v5, Lh40/p; - - iget-wide v6, v5, Lh40/p;->a:J - - cmp-long v6, v6, v2 - - if-nez v6, :find_track - - iget-object v1, p0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;->b:Lcom/tidal/android/dynamicpages/ui/b; - - instance-of v2, v1, Lcom/tidal/android/dynamicpages/ui/c; - - if-eqz v2, :done - - check-cast v1, Lcom/tidal/android/dynamicpages/ui/c; - - iget-object v6, v1, Lcom/tidal/android/dynamicpages/ui/c;->b:Lcom/tidal/android/navigation/NavigationInfo; - - if-eqz v6, :done - - iget-object v1, p1, Lradiant/swipe/DynamicTrackQueueEvent;->context:Landroid/content/Context; - - if-eqz v1, :done - - invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; - - move-result-object v7 - - if-eqz v7, :done - - iget-object v2, v4, Lc60/b0;->a:Ljava/lang/String; - - if-eqz v2, :done - - invoke-virtual {v2}, Ljava/lang/String;->length()I - - move-result v3 - - if-lez v3, :done - - new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - - iget v3, v4, Lc60/b0;->e:I - - invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v3 - - invoke-direct {v8, v0, v2, v3}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - iget-wide v2, p1, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J - - invoke-static {v2, v3}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v2 - - iget-object v3, v4, Lc60/b0;->c:Ljava/lang/String; - - if-eqz v3, :done - - iget-object v10, v4, Lc60/b0;->g:Ljava/lang/String; - - invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; - - move-result-object v4 - - invoke-static {v2, v3, v6, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->j(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; - - move-result-object v9 - - if-eqz v9, :done - - invoke-virtual {v9, v7}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V - - iget v0, p1, Lradiant/swipe/DynamicTrackQueueEvent;->action:I - - const/4 v2, 0x1 - - if-ne v0, v2, :check_add_to_playlist - - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - goto :done - - :check_add_to_playlist - const/4 v2, 0x3 - - if-ne v0, v2, :append - - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V - - goto :done - - :append - invoke-static {v1, v7, v8, v9}, Lradiant/swipe/QueueExecutor;->track(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z - - :done - return-void -.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali b/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali deleted file mode 100644 index a13a6ed..0000000 --- a/patches/extension/radiant/swipe/DynamicTrackQueueAction.smali +++ /dev/null @@ -1,113 +0,0 @@ -.class public final Lradiant/swipe/DynamicTrackQueueAction; -.super Ljava/lang/Object; -.source "DynamicTrackQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final moduleUuid:Ljava/lang/String; - -.field private final pageId:Ljava/lang/String; - -.field private final trackId:J - - -# direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V - .locals 2 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; - - iput-object p2, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; - - iget-wide v0, p4, Lm40/e$e;->a:J - - iput-wide v0, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J - - return-void -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 8 - - iget-wide v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J - - const/4 v0, 0x3 - - if-eq p1, v0, :active_queue - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v0 - - if-nez v0, :active_queue - - new-instance v0, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; - - iget-object v3, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; - - iget-object v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;->(JLjava/lang/String;Ljava/lang/String;)V - - goto :emit - - :active_queue - new-instance v0, Lradiant/swipe/DynamicTrackQueueEvent; - - iget-object v1, p0, Lradiant/swipe/DynamicTrackQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - iget-object v2, p0, Lradiant/swipe/DynamicTrackQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; - - iget-wide v4, p0, Lradiant/swipe/DynamicTrackQueueAction;->trackId:J - - move v6, p1 - - invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V - - :emit - iget-object v7, p0, Lradiant/swipe/DynamicTrackQueueAction;->callback:Lam0/l; - - invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/DynamicTrackQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueAction;->context:Landroid/content/Context; - - return-void -.end method diff --git a/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali b/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali deleted file mode 100644 index ab1ef10..0000000 --- a/patches/extension/radiant/swipe/DynamicTrackQueueEvent.smali +++ /dev/null @@ -1,38 +0,0 @@ -.class public final Lradiant/swipe/DynamicTrackQueueEvent; -.super Ljava/lang/Object; -.source "DynamicTrackQueueEvent.smali" - -# interfaces -.implements Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b; - - -# instance fields -.field public final action:I - -.field public final context:Landroid/content/Context; - -.field public final moduleUuid:Ljava/lang/String; - -.field public final pageId:Ljava/lang/String; - -.field public final trackId:J - - -# direct methods -.method public constructor (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/DynamicTrackQueueEvent;->context:Landroid/content/Context; - - iput-object p2, p0, Lradiant/swipe/DynamicTrackQueueEvent;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/DynamicTrackQueueEvent;->moduleUuid:Ljava/lang/String; - - iput-wide p4, p0, Lradiant/swipe/DynamicTrackQueueEvent;->trackId:J - - iput p6, p0, Lradiant/swipe/DynamicTrackQueueEvent;->action:I - - return-void -.end method diff --git a/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali b/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali deleted file mode 100644 index 30a4e17..0000000 --- a/patches/extension/radiant/swipe/PublicPlaylistQueueAction.smali +++ /dev/null @@ -1,125 +0,0 @@ -.class public final Lradiant/swipe/PublicPlaylistQueueAction; -.super Ljava/lang/Object; -.source "PublicPlaylistQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final itemId:Ljava/lang/String; - -.field private final moduleUuid:Ljava/lang/String; - -.field private final pageId:Ljava/lang/String; - - -# direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V - .locals 0 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; - - iput-object p2, p0, Lradiant/swipe/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; - - iget-object p1, p4, Lm40/e$d;->a:Ljava/lang/String; - - iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; - - return-void -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 7 - - iget-object v0, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; - - if-eqz v0, :done - - iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - iget-object v4, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; - - if-eqz v4, :done - - new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; - - iget-object v2, p0, Lradiant/swipe/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; - - const/4 v5, 0x3 - - move v6, p1 - - invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V - - iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->callback:Lam0/l; - - invoke-interface {v1, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/PublicPlaylistQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->context:Landroid/content/Context; - - return-void -.end method - -.method public stableKey()Ljava/lang/String; - .locals 3 - - new-instance v0, Ljava/lang/StringBuilder; - - const-string v1, "ppl:" - - invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V - - iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const/16 v1, 0x3a - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - iget-object v1, p0, Lradiant/swipe/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method diff --git a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali b/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali deleted file mode 100644 index 9229b4f..0000000 --- a/patches/extension/radiant/swipe/VerticalMediaQueueAction.smali +++ /dev/null @@ -1,328 +0,0 @@ -.class public final Lradiant/swipe/VerticalMediaQueueAction; -.super Ljava/lang/Object; -.source "VerticalMediaQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# static fields -.field public static final TYPE_ALBUM:I = 0x1 - -.field public static final TYPE_MIX:I = 0x2 - -.field public static final TYPE_PLAYLIST:I = 0x3 - -.field public static final TYPE_TRACK:I = 0x4 - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final itemId:Ljava/lang/String; - -.field private final mediaType:I - -.field private final moduleUuid:Ljava/lang/String; - -.field private final pageId:Ljava/lang/String; - - -# direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V - .locals 3 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; - - iput-object p2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; - - iput-object p3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - - instance-of v0, p4, Lm40/e$a; - - if-eqz v0, :mix - - check-cast p4, Lm40/e$a; - - iget-wide v0, p4, Lm40/e$a;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v0 - - const/4 v1, 0x1 - - goto :store - - :mix - instance-of v0, p4, Lm40/e$c; - - if-eqz v0, :playlist - - check-cast p4, Lm40/e$c; - - iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; - - const/4 v1, 0x2 - - goto :store - - :playlist - instance-of v0, p4, Lm40/e$d; - - if-eqz v0, :track - - check-cast p4, Lm40/e$d; - - iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; - - const/4 v1, 0x3 - - goto :store - - :track - instance-of v0, p4, Lm40/e$e; - - if-eqz v0, :unsupported - - check-cast p4, Lm40/e$e; - - iget-wide v0, p4, Lm40/e$e;->a:J - - invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; - - move-result-object v0 - - const/4 v1, 0x4 - - goto :store - - :unsupported - const/4 v0, 0x0 - - const/4 v1, 0x0 - - :store - iput-object v0, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; - - iput v1, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I - - return-void -.end method - -.method public static isEligible(Lm40/e;)Z - .locals 1 - - instance-of v0, p0, Lm40/e$a; - - if-eqz v0, :mix - - check-cast p0, Lm40/e$a; - - iget-boolean p0, p0, Lm40/e$a;->e:Z - - return p0 - - :mix - instance-of v0, p0, Lm40/e$c; - - if-eqz v0, :playlist - - check-cast p0, Lm40/e$c; - - iget-boolean p0, p0, Lm40/e$c;->h:Z - - return p0 - - :playlist - instance-of v0, p0, Lm40/e$d; - - if-eqz v0, :track - - check-cast p0, Lm40/e$d; - - iget-boolean p0, p0, Lm40/e$d;->g:Z - - return p0 - - :track - instance-of v0, p0, Lm40/e$e; - - if-eqz v0, :invalid - - check-cast p0, Lm40/e$e; - - iget-boolean p0, p0, Lm40/e$e;->j:Z - - return p0 - - :invalid - const/4 p0, 0x0 - - return p0 -.end method - -.method public static isSupported(Lm40/e;)Z - .locals 1 - - instance-of v0, p0, Lm40/e$a; - - if-nez v0, :supported - - instance-of v0, p0, Lm40/e$c; - - if-nez v0, :supported - - instance-of v0, p0, Lm40/e$d; - - if-nez v0, :supported - - instance-of v0, p0, Lm40/e$e; - - if-eqz v0, :invalid - - :supported - const/4 p0, 0x1 - - return p0 - - :invalid - const/4 p0, 0x0 - - return p0 -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 8 - - iget-object v7, p0, Lradiant/swipe/VerticalMediaQueueAction;->callback:Lam0/l; - - if-eqz v7, :done - - iget-object v4, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; - - if-eqz v4, :done - - iget v5, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I - - if-eqz v5, :done - - const/4 v1, 0x3 - - if-eq p1, v1, :queue_event - - const/4 v1, 0x4 - - if-ne v5, v1, :queue_event - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v1 - - if-nez v1, :queue_event - - new-instance v1, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a; - - iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-direct {v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b$a;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - - goto :emit - - :queue_event - - iget-object v1, p0, Lradiant/swipe/VerticalMediaQueueAction;->context:Landroid/content/Context; - - if-eqz v1, :done - - new-instance v0, Lradiant/swipe/DynamicMediaQueueEvent; - - iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->pageId:Ljava/lang/String; - - iget-object v3, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - - move v6, p1 - - invoke-direct/range {v0 .. v6}, Lradiant/swipe/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V - - move-object v1, v0 - - :emit - invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/VerticalMediaQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/VerticalMediaQueueAction;->context:Landroid/content/Context; - - return-void -.end method - -.method public stableKey()Ljava/lang/String; - .locals 3 - - iget-object v0, p0, Lradiant/swipe/VerticalMediaQueueAction;->itemId:Ljava/lang/String; - - if-eqz v0, :invalid - - new-instance v1, Ljava/lang/StringBuilder; - - const-string v2, "vlc:" - - invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V - - iget-object v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const/16 v2, 0x3a - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - iget v2, p0, Lradiant/swipe/VerticalMediaQueueAction;->mediaType:I - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - const/16 v2, 0x3a - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; - - invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 - - :invalid - const/4 v0, 0x0 - - return-object v0 -.end method diff --git a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali b/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali deleted file mode 100644 index 82e6a74..0000000 --- a/patches/extension/radiant/swipe/ViewAllTrackQueueAction.smali +++ /dev/null @@ -1,106 +0,0 @@ -.class public final Lradiant/swipe/ViewAllTrackQueueAction; -.super Ljava/lang/Object; -.source "ViewAllTrackQueueAction.smali" - -# interfaces -.implements Lradiant/swipe/ComposeSwipeAction; - - -# instance fields -.field private final callback:Lam0/l; - -.field private context:Landroid/content/Context; - -.field private final trackId:J - - -# direct methods -.method public constructor (Lam0/l;Lm40/e$e;)V - .locals 2 - - invoke-direct {p0}, Ljava/lang/Object;->()V - - iput-object p1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l; - - iget-wide v0, p2, Lm40/e$e;->a:J - - iput-wide v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->trackId:J - - return-void -.end method - - -# virtual methods -.method public invoke(I)Ljava/lang/Object; - .locals 5 - - iget-object v0, p0, Lradiant/swipe/ViewAllTrackQueueAction;->callback:Lam0/l; - - if-eqz v0, :done - - iget-wide v1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->trackId:J - - const/4 v3, 0x3 - - if-eq p1, v3, :queue_event - - invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z - - move-result v3 - - if-eqz v3, :play_existing - - :queue_event - iget-object v3, p0, Lradiant/swipe/ViewAllTrackQueueAction;->context:Landroid/content/Context; - - if-eqz v3, :done - - invoke-static {v3}, Lradiant/swipe/ViewAllTrackQueue;->setContext(Landroid/content/Context;)V - - invoke-static {v1, v2, p1}, Lradiant/swipe/ViewAllTrackQueue;->marker(JI)Ljava/lang/String; - - move-result-object v3 - - new-instance v4, Li40/c$b; - - invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V - - goto :emit - - :play_existing - invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; - - move-result-object v3 - - new-instance v4, Li40/c$b; - - invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V - - :emit - invoke-interface {v0, v4}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; - - :done - sget-object v0, Lkotlin/u;->a:Lkotlin/u; - - return-object v0 -.end method - -.method public invoke()Ljava/lang/Object; - .locals 1 - - const/4 v0, 0x2 - - invoke-virtual {p0, v0}, Lradiant/swipe/ViewAllTrackQueueAction;->invoke(I)Ljava/lang/Object; - - move-result-object v0 - - return-object v0 -.end method - -.method public setContext(Landroid/content/Context;)V - .locals 0 - - iput-object p1, p0, Lradiant/swipe/ViewAllTrackQueueAction;->context:Landroid/content/Context; - - return-void -.end method diff --git a/patches/gestures/lyrics-gesture-scroll-guard.patch b/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch similarity index 81% rename from patches/gestures/lyrics-gesture-scroll-guard.patch rename to patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch index 2705939..5083048 100644 --- a/patches/gestures/lyrics-gesture-scroll-guard.patch +++ b/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch @@ -4,7 +4,7 @@ move-object v15, v10 -+ invoke-static {v15}, Lradiant/gestures/LyricsDrag;->wrap(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # lyrics own their scroll ++ invoke-static {v15}, Lradiant/gestures/lyrics/LyricsDrag;->wrap(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # lyrics own their scroll + + move-result-object v15 + diff --git a/patches/gestures/mini-player-left-right-gesture.patch b/patches/gestures/mini-player/mini-player-left-right-gesture.patch similarity index 76% rename from patches/gestures/mini-player-left-right-gesture.patch rename to patches/gestures/mini-player/mini-player-left-right-gesture.patch index aab9ca2..b3c4ec6 100644 --- a/patches/gestures/mini-player-left-right-gesture.patch +++ b/patches/gestures/mini-player/mini-player-left-right-gesture.patch @@ -4,7 +4,7 @@ move-result-object v6 -+ invoke-static {v6, v1}, Lradiant/gestures/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener ++ invoke-static {v6, v1}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->onRenderedItem(Ljava/lang/Object;)V # reset stale drag offset if track metadata changes mid-gesture ++ invoke-static {v11}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move the whole cover container with horizontal swipe ++ invoke-static {v6}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist ++ invoke-static {v5}, Lradiant/gestures/miniplayer/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/gestures/MiniPlayerTrackGestures;->consumeTapOpenSuppression()Z # skip open-player if a horizontal skip-swipe just happened ++ invoke-static {}, Lradiant/gestures/miniplayer/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/mini-player-up-gesture.patch similarity index 73% rename from patches/gestures/mini-player-up-gesture.patch rename to patches/gestures/mini-player/mini-player-up-gesture.patch index 68344bd..0d577b1 100644 --- a/patches/gestures/mini-player-up-gesture.patch +++ b/patches/gestures/mini-player/mini-player-up-gesture.patch @@ -11,7 +11,7 @@ + + 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 ++ invoke-static/range {v49 .. v51}, Lradiant/gestures/miniplayer/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; @@ -36,7 +36,7 @@ + const/4 v5, 0x1 + + :rl_set_media -+ invoke-static {v5}, Lradiant/gestures/MiniPlayerGestures;->setHasMiniPlayerMedia(Z)V ++ invoke-static {v5}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setHasMiniPlayerMedia(Z)V + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; @@ -45,7 +45,7 @@ move-result-object v6 -+ invoke-static {v6}, Lradiant/gestures/MiniPlayerGestures;->trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # attach swipe up listener ++ invoke-static {v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # attach swipe up listener + + move-result-object v6 + @@ -56,7 +56,7 @@ move-result-object v6 -+ invoke-static {v6}, Lradiant/gestures/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) ++ invoke-static {v6}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) + + move-result-object v6 + @@ -67,7 +67,7 @@ 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) ++ invoke-static {v5}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist (swipe up feedback) + + move-result-object v5 + diff --git a/patches/gestures/player-swipe-gesture.patch b/patches/gestures/player/player-swipe-gesture.patch similarity index 79% rename from patches/gestures/player-swipe-gesture.patch rename to patches/gestures/player/player-swipe-gesture.patch index d3dc383..41a8d2e 100644 --- a/patches/gestures/player-swipe-gesture.patch +++ b/patches/gestures/player/player-swipe-gesture.patch @@ -4,7 +4,7 @@ .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 ++ invoke-static {p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->suppressAutoShow(Landroidx/compose/material3/SheetState;)Z # avoid Material3 show() taking over manual drag + + move-result v1 + @@ -34,7 +34,7 @@ + + 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 ++ invoke-static {v13, v14}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # reuse native settle animation on release + move-object/from16 v32, v12 diff --git a/patches/swipe-to-queue-compose.patch b/patches/gestures/queue/swipe-to-queue-compose.patch similarity index 51% rename from patches/swipe-to-queue-compose.patch rename to patches/gestures/queue/swipe-to-queue-compose.patch index 15e21d6..583468b 100644 --- a/patches/swipe-to-queue-compose.patch +++ b/patches/gestures/queue/swipe-to-queue-compose.patch @@ -4,7 +4,7 @@ .line 391 check-cast v34, Lam0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v34 + @@ -21,13 +21,13 @@ + + move-result-object v14 + -+ new-instance v15, Lradiant/swipe/DynamicTrackQueueAction; ++ new-instance v15, Lradiant/gestures/queue/DynamicTrackQueueAction; + -+ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/swipe/DynamicTrackQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/DynamicTrackQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V + + iget-boolean v5, v3, Lm40/e$e;->j:Z + -+ invoke-static {v0, v14, v15, v5, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v0, v14, v15, v5, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v0 + @@ -40,13 +40,13 @@ .line 248 :cond_c -+ instance-of p2, p1, Lradiant/swipe/DynamicTrackQueueEvent; ++ instance-of p2, p1, Lradiant/gestures/queue/DynamicTrackQueueEvent; + + if-eqz p2, :cond_d + -+ check-cast p1, Lradiant/swipe/DynamicTrackQueueEvent; ++ check-cast p1, Lradiant/gestures/queue/DynamicTrackQueueEvent; + -+ invoke-static {v0, p1}, Lradiant/swipe/DynamicTrackQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/swipe/DynamicTrackQueueEvent;)V ++ invoke-static {v0, p1}, Lradiant/gestures/queue/DynamicTrackQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/gestures/queue/DynamicTrackQueueEvent;)V + + goto :goto_4 + @@ -57,27 +57,27 @@ --- a/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali +++ b/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali @@ -872,1 +872,26 @@ -+ invoke-static {v10}, Lradiant/swipe/CompactGridMediaQueueAction;->isEligible(Lm40/e;)Z ++ invoke-static {v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->isEligible(Lm40/e;)Z + + move-result v11 + + if-eqz v11, :rl_compact_grid_swipe_done + -+ new-instance v11, Lradiant/swipe/CompactGridMediaQueueAction; ++ new-instance v11, Lradiant/gestures/queue/CompactGridMediaQueueAction; + + move-object/from16 v12, p0 + + move-object/from16 v14, p1 + -+ invoke-direct {v11, v4, v12, v14, v10}, Lradiant/swipe/CompactGridMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ invoke-direct {v11, v4, v12, v14, v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V + -+ invoke-virtual {v11}, Lradiant/swipe/CompactGridMediaQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v11}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v12 + + const/4 v14, 0x1 + -+ invoke-static {v9, v12, v11, v14, v13}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v9, v12, v11, v14, v13}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v9 + @@ -86,7 +86,7 @@ --- a/com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali +++ b/com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali @@ -38,1 +38,22 @@ -+ instance-of v0, p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ instance-of v0, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + if-eqz v0, :rl_compact_grid_native_click + @@ -114,7 +114,7 @@ - .locals 0 + .locals 1 @@ -74,1 +74,18 @@ -+ instance-of v0, p3, Lradiant/swipe/DynamicMediaQueueEvent; ++ instance-of v0, p3, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + if-eqz v0, :rl_compact_grid_native_event + @@ -122,9 +122,9 @@ + + check-cast v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a; + -+ check-cast p3, Lradiant/swipe/DynamicMediaQueueEvent; ++ check-cast p3, Lradiant/gestures/queue/DynamicMediaQueueEvent; + -+ invoke-static {v0, p3}, Lradiant/swipe/DynamicMediaQueue;->handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ invoke-static {v0, p3}, Lradiant/gestures/queue/DynamicMediaQueue;->handleCompact(Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V + + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + @@ -138,13 +138,13 @@ .line 4 .line 5 -+ instance-of v2, v1, Lradiant/swipe/ComposeSearchQueueEvent; ++ instance-of v2, v1, Lradiant/gestures/queue/ComposeSearchQueueEvent; + + if-eqz v2, :rl_search_queue_continue + -+ check-cast v1, Lradiant/swipe/ComposeSearchQueueEvent; ++ check-cast v1, Lradiant/gestures/queue/ComposeSearchQueueEvent; + -+ invoke-static {v0, v1}, Lradiant/swipe/ComposeSearchQueue;->handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/swipe/ComposeSearchQueueEvent;)V ++ invoke-static {v0, v1}, Lradiant/gestures/queue/ComposeSearchQueue;->handle(Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;Lradiant/gestures/queue/ComposeSearchQueueEvent;)V + + return-void + @@ -158,21 +158,21 @@ check-cast v2, Lam0/a; -+ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v1 + -+ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V + -+ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + + iget-boolean p1, v0, Lpb0/b$a;->f:Z + -+ invoke-static {v3, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v3, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v3 + @@ -184,15 +184,15 @@ const/4 v5, 0x0 - const/4 v2, 0x0 -+ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v1 + -+ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V + -+ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + @@ -200,7 +200,7 @@ + + const/4 p1, 0x1 + -+ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v2 @@ -210,21 +210,21 @@ check-cast v3, Lam0/a; -+ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v1 + -+ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V + -+ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + + iget-boolean p1, v0, Lpb0/b$i;->i:Z + -+ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v2 + @@ -236,15 +236,15 @@ const/4 v5, 0x0 - const/4 v2, 0x0 -+ invoke-static {v1}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v1 + -+ new-instance v6, Lradiant/swipe/ComposeSearchQueueAction; ++ new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/swipe/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V + -+ invoke-virtual {v6}, Lradiant/swipe/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + @@ -252,7 +252,7 @@ + + const/4 p1, 0x1 + -+ invoke-static {v2, v7, v6, p1, v4}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v2, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v2 @@ -278,13 +278,13 @@ + + move-result-object p2 + -+ new-instance p3, Lradiant/swipe/ViewAllTrackQueueAction; ++ new-instance p3, Lradiant/gestures/queue/ViewAllTrackQueueAction; + -+ invoke-direct {p3, v3, p1}, Lradiant/swipe/ViewAllTrackQueueAction;->(Lam0/l;Lm40/e$e;)V ++ invoke-direct {p3, v3, p1}, Lradiant/gestures/queue/ViewAllTrackQueueAction;->(Lam0/l;Lm40/e$e;)V + + iget-boolean p1, p1, Lm40/e$e;->j:Z + -+ invoke-static {v1, p2, p3, p1, v5}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v1, p2, p3, p1, v5}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v1 + @@ -301,7 +301,7 @@ + + if-eqz v3, :rl_viewall_tap_guard_done + -+ invoke-static/range {v24 .. v24}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v24 .. v24}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v24 + @@ -315,7 +315,7 @@ } .end annotation -+ invoke-static {p0, p1}, Lradiant/swipe/ViewAllTrackQueue;->handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z ++ invoke-static {p0, p1}, Lradiant/gestures/queue/ViewAllTrackQueue;->handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z + + move-result v0 + @@ -332,7 +332,7 @@ +++ b/com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali @@ -929,1 +929,5 @@ check-cast v34, Lam0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v34 + @@ -344,13 +344,13 @@ + + move-result-object v14 + -+ new-instance v15, Lradiant/swipe/ArtistTrackCreditsQueueAction; ++ new-instance v15, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction; + -+ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/swipe/ArtistTrackCreditsQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V + + iget-boolean v5, v3, Lm40/e$e;->j:Z + -+ invoke-static {v0, v14, v15, v5, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v0, v14, v15, v5, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v0 + @@ -358,13 +358,13 @@ +++ b/com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali @@ -603,1 +603,12 @@ :cond_c -+ instance-of p2, p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent; ++ instance-of p2, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent; + + if-eqz p2, :rl_artist_credits_queue_unhandled + -+ check-cast p1, Lradiant/swipe/ArtistTrackCreditsQueueEvent; ++ check-cast p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent; + -+ invoke-static {v0, p1}, Lradiant/swipe/ArtistTrackCreditsQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/swipe/ArtistTrackCreditsQueueEvent;)V ++ invoke-static {v0, p1}, Lradiant/gestures/queue/ArtistTrackCreditsQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;)V + + goto :goto_4 + @@ -373,25 +373,25 @@ +++ b/com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali @@ -3648,1 +3648,24 @@ move-result-object v0 -+ invoke-static {v10}, Lradiant/swipe/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z + + move-result v7 + + if-eqz v7, :rl_vertical_swipe_done + -+ new-instance v7, Lradiant/swipe/VerticalMediaQueueAction; ++ new-instance v7, Lradiant/gestures/queue/VerticalMediaQueueAction; + -+ invoke-direct {v7, v4, v1, v2, v10}, Lradiant/swipe/VerticalMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ invoke-direct {v7, v4, v1, v2, v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V + -+ invoke-virtual {v7}, Lradiant/swipe/VerticalMediaQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v7}, Lradiant/gestures/queue/VerticalMediaQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v9 + -+ invoke-static {v10}, Lradiant/swipe/VerticalMediaQueueAction;->isEligible(Lm40/e;)Z ++ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isEligible(Lm40/e;)Z + + move-result v12 + -+ invoke-static {v0, v9, v7, v12, v3}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v0, v9, v7, v12, v3}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v0 + @@ -412,13 +412,13 @@ + + check-cast v8, Lm40/e; + -+ invoke-static {v8}, Lradiant/swipe/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ invoke-static {v8}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z + + move-result v8 + + if-eqz v8, :rl_vertical_tap_guard_done + -+ invoke-static {v11}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v11}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v11 + @@ -427,23 +427,23 @@ +++ b/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali @@ -2120,1 +2120,5 @@ check-cast v34, Lam0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/swipe/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + + move-result-object v34 + @@ -2161,1 +2165,15 @@ move-result-object v0 -+ new-instance v5, Lradiant/swipe/PublicPlaylistQueueAction; ++ new-instance v5, Lradiant/gestures/queue/PublicPlaylistQueueAction; + -+ invoke-direct {v5, v4, v1, v2, v3}, Lradiant/swipe/PublicPlaylistQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V ++ invoke-direct {v5, v4, v1, v2, v3}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V + -+ invoke-virtual {v5}, Lradiant/swipe/PublicPlaylistQueueAction;->stableKey()Ljava/lang/String; ++ invoke-virtual {v5}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + + iget-boolean v9, v3, Lm40/e$d;->g:Z + -+ invoke-static {v0, v7, v5, v9, v11}, Lradiant/swipe/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/swipe/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; ++ invoke-static {v0, v7, v5, v9, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + + move-result-object v0 + @@ -451,13 +451,13 @@ +++ b/com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali @@ -830,1 +830,12 @@ :cond_15 -+ instance-of v2, v0, Lradiant/swipe/DynamicMediaQueueEvent; ++ instance-of v2, v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + if-eqz v2, :rl_vertical_queue_continue + -+ check-cast v0, Lradiant/swipe/DynamicMediaQueueEvent; ++ check-cast v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + -+ invoke-static {v3, v0}, Lradiant/swipe/DynamicMediaQueue;->handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ invoke-static {v3, v0}, Lradiant/gestures/queue/DynamicMediaQueue;->handleVertical(Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V + + goto :goto_2 + @@ -466,13 +466,13 @@ +++ b/com/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager$createModuleViewState$3.smali @@ -487,2 +487,13 @@ :cond_c -+ instance-of v1, p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ instance-of v1, p1, Lradiant/gestures/queue/DynamicMediaQueueEvent; + + if-eqz v1, :rl_public_queue_continue + -+ check-cast p1, Lradiant/swipe/DynamicMediaQueueEvent; ++ check-cast p1, Lradiant/gestures/queue/DynamicMediaQueueEvent; + -+ invoke-static {p2, p1}, Lradiant/swipe/DynamicMediaQueue;->handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/swipe/DynamicMediaQueueEvent;)V ++ invoke-static {p2, p1}, Lradiant/gestures/queue/DynamicMediaQueue;->handlePublicPlaylist(Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;Lradiant/gestures/queue/DynamicMediaQueueEvent;)V + + goto :goto_1 + diff --git a/patches/swipe-to-queue.patch b/patches/gestures/queue/swipe-to-queue.patch similarity index 82% rename from patches/swipe-to-queue.patch rename to patches/gestures/queue/swipe-to-queue.patch index 38aef33..0474003 100644 --- a/patches/swipe-to-queue.patch +++ b/patches/gestures/queue/swipe-to-queue.patch @@ -110,13 +110,13 @@ + + if-ne p3, p1, :rl_favorite_append + -+ invoke-static {}, Lradiant/swipe/QueueExecutor;->hasActiveQueue()Z ++ invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z + move-result p1 + if-nez p1, :rl_favorite_play_next + const/4 v0, 0x0 + goto :rl_favorite_result + :rl_favorite_play_next -+ invoke-static {v1, v2, v3, v4}, Lradiant/swipe/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z ++ invoke-static {v1, v2, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->playNextTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + + move-result v0 + @@ -130,7 +130,7 @@ + goto :rl_favorite_result + + :rl_favorite_add_to_playlist -+ invoke-static {v1, v2, v3, v4}, Lradiant/swipe/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V ++ invoke-static {v1, v2, v3, v4}, Lradiant/gestures/queue/QueueExecutor;->addToPlaylistTrack(Landroid/content/Context;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)V + + goto :done + @@ -167,7 +167,7 @@ + + iget-object p1, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;->f:Landroidx/recyclerview/widget/RecyclerView; + -+ invoke-static {p0, p1}, Lradiant/swipe/FavoriteTracksResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p1}, Lradiant/gestures/queue/FavoriteTracksResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;Landroidx/recyclerview/widget/RecyclerView;)V .line 226 .line 227 @@ -180,7 +180,7 @@ +.method public b(Landroidx/recyclerview/widget/RecyclerView;)V + .locals 0 + -+ invoke-static {p1}, Lradiant/swipe/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p1}, Lradiant/gestures/queue/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V + + return-void +.end method @@ -194,7 +194,7 @@ +.method public b(Landroidx/recyclerview/widget/RecyclerView;)V + .locals 0 + -+ invoke-static {p1}, Lradiant/swipe/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p1}, Lradiant/gestures/queue/DynamicTrackResolver;->install(Landroidx/recyclerview/widget/RecyclerView;)V + + return-void +.end method @@ -206,7 +206,7 @@ .line 23 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/MyAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/MyAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 24 .line 25 @@ -217,7 +217,7 @@ .line 23 invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/MyPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/MyPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 24 .line 25 @@ -229,7 +229,7 @@ .line 23 invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/MyMixesAndRadioResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/MyMixesAndRadioResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 24 .line 25 @@ -243,7 +243,7 @@ - if-eq p1, v5, :cond_9 + if-ne p1, v5, :rl_not_explicit_release + iget-object v6, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback; -+ invoke-static {v6, v5}, Lradiant/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V ++ invoke-static {v6, v5}, Lradiant/gestures/queue/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V + goto :cond_9 + :rl_not_explicit_release @@ -255,7 +255,7 @@ :cond_6 + const/4 v6, 0x0 + iget-object v1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mCallback:Landroidx/recyclerview/widget/ItemTouchHelper$Callback; -+ invoke-static {v1, v6}, Lradiant/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V ++ invoke-static {v1, v6}, Lradiant/gestures/queue/SwipeToQueue;->setReleaseAllowed(Landroidx/recyclerview/widget/ItemTouchHelper$Callback;Z)V iget-object p1, v2, Landroidx/recyclerview/widget/ItemTouchHelper;->mVelocityTracker:Landroid/view/VelocityTracker; .line 98 @@ -403,7 +403,7 @@ + move/from16 v3, p4 + move/from16 v4, p6 + move/from16 v5, p7 -+ invoke-static/range {v0 .. v5}, Lradiant/QueueSwipeRemove;->draw(Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FIZ)V ++ invoke-static/range {v0 .. v5}, Lradiant/gestures/queue/QueueSwipeRemove;->draw(Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FIZ)V + + goto :cond_0 + @@ -416,7 +416,7 @@ .line 121 move-result-object p1 -+ invoke-static {p1}, Lradiant/QueueSwipeRemove;->setRemoveDuration(Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p1}, Lradiant/gestures/queue/QueueSwipeRemove;->setRemoveDuration(Landroidx/recyclerview/widget/RecyclerView;)V + .line 122 new-instance p2, Landroidx/recyclerview/widget/LinearLayoutManager; @@ -429,7 +429,7 @@ .line 71 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/SearchAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/SearchAlbumsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 72 .line 73 @@ -442,7 +442,7 @@ .line 129 invoke-static {v1, p1}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p1}, Lradiant/swipe/PlaylistItemsResolver;->install(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V ++ invoke-static {p1}, Lradiant/gestures/queue/PlaylistItemsResolver;->install(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + .line 130 .line 131 @@ -455,7 +455,7 @@ .line 62 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/UnifiedSearchResolver;->install(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/UnifiedSearchResolver;->install(Lcom/aspiro/wamp/search/v2/UnifiedSearchView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 63 .line 64 @@ -468,7 +468,7 @@ .line 71 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p2}, Lradiant/swipe/SearchPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p2}, Lradiant/gestures/queue/SearchPlaylistsResolver;->install(Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 72 .line 73 @@ -481,7 +481,7 @@ .line 38 invoke-static {p2, p1}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; -+ invoke-static {p0, p1}, Lradiant/swipe/FeedResolver;->install(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, p1}, Lradiant/gestures/queue/FeedResolver;->install(Lcom/tidal/android/feature/feed/ui/FeedView;Landroidx/recyclerview/widget/RecyclerView;)V + .line 39 .line 40 @@ -492,7 +492,7 @@ .line 96 invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V -+ invoke-static {p0, v0}, Lradiant/swipe/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, v0}, Lradiant/gestures/queue/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + .line 97 .line 98 @@ -502,5 +502,5 @@ +++ b/com/aspiro/wamp/nowplaying/view/suggestions/h.smali @@ -674,1 +674,3 @@ invoke-virtual {v3, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V -+ invoke-static {p0, v3}, Lradiant/swipe/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V ++ invoke-static {p0, v3}, Lradiant/gestures/queue/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + diff --git a/patches/manifest.json b/patches/manifest.json index 8a8f2e4..98adc34 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -430,45 +430,45 @@ "swipe-to-queue-compose.patch" ], "extensionFiles": [ - "radiant/SwipeToQueue.smali", - "radiant/QueueSwipeRemove.smali", - "radiant/swipe/QueueRequest.smali", - "radiant/swipe/QueueRowResolver.smali", - "radiant/swipe/QueueExecutor.smali", - "radiant/swipe/FavoriteTracksResolver.smali", - "radiant/swipe/DynamicTrackResolver.smali", - "radiant/swipe/MyAlbumsResolver.smali", - "radiant/swipe/MyPlaylistsResolver.smali", - "radiant/swipe/MyMixesAndRadioResolver.smali", - "radiant/swipe/SearchAlbumsResolver.smali", - "radiant/swipe/SearchPlaylistsResolver.smali", - "radiant/swipe/PlaylistItemsResolver.smali", - "radiant/swipe/UnifiedSearchResolver.smali", - "radiant/swipe/ComposeSwipeAction.smali", - "radiant/swipe/ComposeSwipeState.smali", - "radiant/swipe/ComposeSwipeState$Gesture.smali", - "radiant/swipe/ComposeSwipeState$Draw.smali", - "radiant/swipe/ComposeSwipeState$ResetAnimator.smali", - "radiant/swipe/ComposeTapGuard.smali", - "radiant/swipe/AlbumItemQueueAction.smali", - "radiant/swipe/DynamicTrackQueueEvent.smali", - "radiant/swipe/DynamicTrackQueueAction.smali", - "radiant/swipe/DynamicTrackQueue.smali", - "radiant/swipe/ViewAllTrackQueueAction.smali", - "radiant/swipe/ViewAllTrackQueue.smali", - "radiant/swipe/ComposeSearchQueueEvent.smali", - "radiant/swipe/ComposeSearchQueueAction.smali", - "radiant/swipe/ComposeSearchQueue.smali", - "radiant/swipe/FeedResolver.smali", - "radiant/swipe/ArtistTrackCreditsQueueEvent.smali", - "radiant/swipe/ArtistTrackCreditsQueueAction.smali", - "radiant/swipe/ArtistTrackCreditsQueue.smali", - "radiant/swipe/DynamicMediaQueueEvent.smali", - "radiant/swipe/CompactGridMediaQueueAction.smali", - "radiant/swipe/VerticalMediaQueueAction.smali", - "radiant/swipe/PublicPlaylistQueueAction.smali", - "radiant/swipe/DynamicMediaQueue.smali", - "radiant/swipe/SuggestionsResolver.smali" + "radiant/gestures/queue/SwipeToQueue.smali", + "radiant/gestures/queue/QueueSwipeRemove.smali", + "radiant/gestures/queue/QueueRequest.smali", + "radiant/gestures/queue/QueueRowResolver.smali", + "radiant/gestures/queue/QueueExecutor.smali", + "radiant/gestures/queue/FavoriteTracksResolver.smali", + "radiant/gestures/queue/DynamicTrackResolver.smali", + "radiant/gestures/queue/MyAlbumsResolver.smali", + "radiant/gestures/queue/MyPlaylistsResolver.smali", + "radiant/gestures/queue/MyMixesAndRadioResolver.smali", + "radiant/gestures/queue/SearchAlbumsResolver.smali", + "radiant/gestures/queue/SearchPlaylistsResolver.smali", + "radiant/gestures/queue/PlaylistItemsResolver.smali", + "radiant/gestures/queue/UnifiedSearchResolver.smali", + "radiant/gestures/queue/ComposeSwipeAction.smali", + "radiant/gestures/queue/ComposeSwipeState.smali", + "radiant/gestures/queue/ComposeSwipeState$Gesture.smali", + "radiant/gestures/queue/ComposeSwipeState$Draw.smali", + "radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali", + "radiant/gestures/queue/ComposeTapGuard.smali", + "radiant/gestures/queue/AlbumItemQueueAction.smali", + "radiant/gestures/queue/DynamicTrackQueueEvent.smali", + "radiant/gestures/queue/DynamicTrackQueueAction.smali", + "radiant/gestures/queue/DynamicTrackQueue.smali", + "radiant/gestures/queue/ViewAllTrackQueueAction.smali", + "radiant/gestures/queue/ViewAllTrackQueue.smali", + "radiant/gestures/queue/ComposeSearchQueueEvent.smali", + "radiant/gestures/queue/ComposeSearchQueueAction.smali", + "radiant/gestures/queue/ComposeSearchQueue.smali", + "radiant/gestures/queue/FeedResolver.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali", + "radiant/gestures/queue/ArtistTrackCreditsQueue.smali", + "radiant/gestures/queue/DynamicMediaQueueEvent.smali", + "radiant/gestures/queue/CompactGridMediaQueueAction.smali", + "radiant/gestures/queue/VerticalMediaQueueAction.smali", + "radiant/gestures/queue/PublicPlaylistQueueAction.smali", + "radiant/gestures/queue/DynamicMediaQueue.smali", + "radiant/gestures/queue/SuggestionsResolver.smali" ], "title": "Swipe to Queue", "description": "Swipe on tracks/albums/playlists to add them to the play queue (and more actions)", @@ -678,14 +678,14 @@ "lyrics-gesture-scroll-guard.patch" ], "extensionFiles": [ - "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" + "radiant/gestures/miniplayer/MiniPlayerGestures.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali", + "radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali", + "radiant/gestures/lyrics/LyricsDrag.smali", + "radiant/gestures/lyrics/LyricsDrag$Guard.smali" ] }, { @@ -715,11 +715,11 @@ "mini-player-left-right-gesture.patch" ], "extensionFiles": [ - "radiant/gestures/MiniPlayerTrackGestures.smali", - "radiant/gestures/MiniPlayerTrackGestures$Gesture.smali", - "radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali", - "radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali", - "radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali", + "radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali", "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } diff --git a/tools/kawarp-build/src/radiant/Kawarp.java b/tools/kawarp-build/src/radiant/Kawarp.java index d6f0a54..ba07a98 100644 --- a/tools/kawarp-build/src/radiant/Kawarp.java +++ b/tools/kawarp-build/src/radiant/Kawarp.java @@ -27,7 +27,7 @@ import coil.request.CachePolicy; import com.tidal.android.feature.playerscreen.ui.composables.p3; import com.tidal.android.feature.playerscreen.ui.model.PlayerBackgroundStyle; import com.tidal.android.image.coil.base.CoilImageLoader; -import com.tidal.android.image.core.b; +import com.tidal.android.image.core.b; // MARKER: R8 core.b import dev.kawarp.KawarpEngine; @@ -41,7 +41,7 @@ import java.util.concurrent.Executors; * (cloned at tools/kawarp-agsl) and is compiled into this bundle by tools/kawarp-build/build.sh; * this class only holds what is TIDAL/Compose-specific */ -public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallback, b0.c { +public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallback, b0.c { // MARKER: R8 am0.l b0.c /** Stop the frame loop once nothing has drawn for this long (player left / backgrounded). */ private static final long IDLE_STOP_MS = 500L; @@ -70,7 +70,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac private static KawarpEngine engine; /** TIDAL's application-scoped Coil loader and the context its requests are built with. */ - private static volatile coil.f loader; + private static volatile coil.f loader; // MARKER: R8 coil.f private static volatile Context appContext; private static volatile String requestedUuid; private static volatile int loadToken; @@ -99,7 +99,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac * the call site here so the whole backdrop works <3 */ public static void b(PlayerBackgroundStyle style, long color, int albumId, String coverUuid, - boolean isPlaying, boolean isSeeking, am0.a progress, Modifier modifier, + boolean isPlaying, boolean isSeeking, am0.a progress, Modifier modifier, // MARKER: R8 am0.a Composer composer, int changed) { render(albumId, coverUuid, isPlaying, modifier, composer); } @@ -112,7 +112,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac boolean ok = !((Boolean) fallbackState.getValue()).booleanValue() && ensureEngine(); if (!ok) { // No (working) AGSL here - fall back to TIDAL's own blurred backdrop. - p3.a(albumId, coverUuid, isPlaying, false, null, modifier, composer, 0); + p3.a(albumId, coverUuid, isPlaying, false, null, modifier, composer, 0); // MARKER: R8 p3.a } else { engine.setPlaying(isPlaying); request(albumId, coverUuid); @@ -131,8 +131,8 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac Object local = composer.consume(AndroidCompositionLocals_androidKt.getLocalContext()); if (!(local instanceof Context)) return; Context app = ((Context) local).getApplicationContext(); - if (!(app instanceof ce0.b.a)) return; - Object tidalLoader = ((ce0.b.a) app).a().a(); + if (!(app instanceof ce0.b.a)) return; // MARKER: R8 ce0.b.a + Object tidalLoader = ((ce0.b.a) app).a().a(); // MARKER: R8 ce0.b.a if (!(tidalLoader instanceof CoilImageLoader)) return; appContext = app; loader = ((CoilImageLoader) tidalLoader).a; @@ -181,14 +181,14 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac */ public void run() { try { - xd0.g tidal = new xd0.g(appContext, new b.a(String.valueOf(albumId), uuid), + xd0.g tidal = new xd0.g(appContext, new b.a(String.valueOf(albumId), uuid), // MARKER: R8 xd0.g b.a null, null, false, null, null, false); - coil.request.h.a req = coil.request.h.a(com.tidal.android.image.coil.c.a(tidal, null)); - coil.request.b d = req.b; - req.b = new coil.request.b(d.a, d.b, d.c, d.d, d.e, d.f, d.g, d.h, - d.i, d.j, CachePolicy.DISABLED); - req.d = this; - loader.b(req.a()); + coil.request.h.a req = coil.request.h.a(com.tidal.android.image.coil.c.a(tidal, null)); // MARKER: R8 h.a coil.c.a + coil.request.b d = req.b; // MARKER: R8 req.b + req.b = new coil.request.b(d.a, d.b, d.c, d.d, d.e, d.f, d.g, d.h, // MARKER: R8 req.b d.a d.b d.c d.d d.e d.f d.g d.h + d.i, d.j, CachePolicy.DISABLED); // MARKER: R8 d.i d.j + req.d = this; // MARKER: R8 req.d + loader.b(req.a()); // MARKER: R8 req.a } catch (Throwable t) { fail(); } @@ -242,7 +242,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac public Object invoke(Object scope) { draw((DrawScope) scope); - return kotlin.u.a; + return kotlin.u.a; // MARKER: R8 u.a } private static void draw(DrawScope scope) { @@ -258,7 +258,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac engine.draw(AndroidCanvas_androidKt.getNativeCanvas(scope.getDrawContext().getCanvas()), width, height); } catch (Throwable t) { - fallbackState.setValue(Boolean.TRUE); // AGSL draw failed: recompose onto p3.a + fallbackState.setValue(Boolean.TRUE); // AGSL draw failed: recompose onto p3.a // MARKER: R8 p3.a } } } diff --git a/tools/kawarp-build/stubs/am0/a.java b/tools/kawarp-build/stubs/am0/a.java index 8159754..7544042 100644 --- a/tools/kawarp-build/stubs/am0/a.java +++ b/tools/kawarp-build/stubs/am0/a.java @@ -1,3 +1,4 @@ package am0; +// MARKER: R8 whole class: TIDAL dex FQN is `am0.a` - both package and name roll /** kotlin.jvm.functions.Function0 (obfuscated in the TIDAL dex). */ public interface a { Object invoke(); } diff --git a/tools/kawarp-build/stubs/am0/l.java b/tools/kawarp-build/stubs/am0/l.java index beacc75..80c88f5 100644 --- a/tools/kawarp-build/stubs/am0/l.java +++ b/tools/kawarp-build/stubs/am0/l.java @@ -1,3 +1,4 @@ package am0; +// MARKER: R8 whole class: TIDAL dex FQN is `am0.l` - both package and name roll /** kotlin.jvm.functions.Function1 (obfuscated in the TIDAL dex). */ public interface l { Object invoke(Object p1); } diff --git a/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java b/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java index 0d5ef27..8e1401f 100644 --- a/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java +++ b/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java @@ -1,5 +1,5 @@ package androidx.compose.ui.draw; import androidx.compose.ui.Modifier; public final class DrawModifierKt { - public static Modifier drawBehind(Modifier modifier, am0.l onDraw) { return null; } + public static Modifier drawBehind(Modifier modifier, am0.l onDraw) { return null; } // MARKER: R8 am0.l } diff --git a/tools/kawarp-build/stubs/b0/c.java b/tools/kawarp-build/stubs/b0/c.java index 1b7ea52..832407d 100644 --- a/tools/kawarp-build/stubs/b0/c.java +++ b/tools/kawarp-build/stubs/b0/c.java @@ -1,4 +1,5 @@ package b0; +// MARKER: R8 whole class: TIDAL dex FQN is `b0.c` - both package and name roll import android.graphics.drawable.Drawable; /** coil.target.Target (R8 name in TIDAL 2.200): a=onSuccess, b=onStart, d=onError. */ public interface c { diff --git a/tools/kawarp-build/stubs/ce0/b.java b/tools/kawarp-build/stubs/ce0/b.java index d44a4b9..88a53ec 100644 --- a/tools/kawarp-build/stubs/ce0/b.java +++ b/tools/kawarp-build/stubs/ce0/b.java @@ -1,6 +1,7 @@ package ce0; +// MARKER: R8 whole class: TIDAL dex FQN is `ce0.b` - both package and name roll /** Dagger image component; the Application implements b.a and hands out the loader. */ public interface b { - xd0.e a(); + xd0.e a(); // MARKER: R8 xd0.e interface a { b a(); } } diff --git a/tools/kawarp-build/stubs/coil/f.java b/tools/kawarp-build/stubs/coil/f.java index a7c89de..ea5be82 100644 --- a/tools/kawarp-build/stubs/coil/f.java +++ b/tools/kawarp-build/stubs/coil/f.java @@ -1,4 +1,5 @@ package coil; +// MARKER: R8 whole class: TIDAL dex FQN is `coil.f` - both package and name roll /** coil.ImageLoader; b() is enqueue(). */ public interface f { coil.request.d b(coil.request.h request); diff --git a/tools/kawarp-build/stubs/coil/request/b.java b/tools/kawarp-build/stubs/coil/request/b.java index fb97254..45c6aa7 100644 --- a/tools/kawarp-build/stubs/coil/request/b.java +++ b/tools/kawarp-build/stubs/coil/request/b.java @@ -1,4 +1,5 @@ package coil.request; +// MARKER: R8 whole class: TIDAL dex FQN is `coil.request.b` - both package and name roll import kotlinx.coroutines.CoroutineDispatcher; /** * coil.request.DefaultRequestOptions; i/j/k are the memory/disk/network cache policies (proven @@ -8,12 +9,12 @@ import kotlinx.coroutines.CoroutineDispatcher; */ public final class b { public CoroutineDispatcher a, b, c, d; - public d0.c.a e; + public d0.c.a e; // MARKER: R8 d0.c.a public coil.size.Precision f; public android.graphics.Bitmap.Config g; public boolean h; public CachePolicy i, j, k; public b(CoroutineDispatcher a, CoroutineDispatcher b, CoroutineDispatcher c, CoroutineDispatcher d, - d0.c.a transition, coil.size.Precision precision, android.graphics.Bitmap.Config config, + d0.c.a transition, coil.size.Precision precision, android.graphics.Bitmap.Config config, // MARKER: R8 d0.c.a boolean h, CachePolicy memory, CachePolicy disk, CachePolicy network) {} } diff --git a/tools/kawarp-build/stubs/coil/request/d.java b/tools/kawarp-build/stubs/coil/request/d.java index 179f92d..ee97d3a 100644 --- a/tools/kawarp-build/stubs/coil/request/d.java +++ b/tools/kawarp-build/stubs/coil/request/d.java @@ -1,3 +1,4 @@ package coil.request; +// MARKER: R8 whole class: TIDAL dex FQN is `coil.request.d` - both package and name roll /** coil.request.Disposable */ public interface d {} diff --git a/tools/kawarp-build/stubs/coil/request/h.java b/tools/kawarp-build/stubs/coil/request/h.java index b2aacce..9bb0f46 100644 --- a/tools/kawarp-build/stubs/coil/request/h.java +++ b/tools/kawarp-build/stubs/coil/request/h.java @@ -1,4 +1,5 @@ package coil.request; +// MARKER: R8 whole class: TIDAL dex FQN is `coil.request.h` - both package and name roll /** coil.request.ImageRequest; a(h) is newBuilder(), h.a is the Builder. */ public final class h { public static a a(h request) { return null; } @@ -6,7 +7,7 @@ public final class h { /** defaults block the built request copies its cache policies from */ public b b; /** target */ - public b0.c d; + public b0.c d; // MARKER: R8 b0.c public h a() { return null; } } } diff --git a/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java b/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java index 5976020..09860b0 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java +++ b/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java @@ -1,8 +1,9 @@ package com.tidal.android.feature.playerscreen.ui.composables; +// MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.feature.playerscreen.ui.composables.p3` - both package and name roll import androidx.compose.runtime.Composer; import androidx.compose.ui.Modifier; /** TIDAL's DarkBlurBackground composable (used as the pre-Android-13 fallback). */ public final class p3 { public static void a(int albumId, String coverUuid, boolean isPlaying, boolean isSeeking, - am0.a progress, Modifier modifier, Composer composer, int changed) {} + am0.a progress, Modifier modifier, Composer composer, int changed) {} // MARKER: R8 am0.a } diff --git a/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java b/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java index b82baa1..e483ad1 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java +++ b/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java @@ -1,5 +1,5 @@ package com.tidal.android.image.coil.base; /** TIDAL's xd0.e implementation; a is the underlying Coil ImageLoader. */ -public final class CoilImageLoader implements xd0.e { - public final coil.f a = null; +public final class CoilImageLoader implements xd0.e { // MARKER: R8 xd0.e + public final coil.f a = null; // MARKER: R8 coil.f } diff --git a/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java b/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java index f44966b..99f0509 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java +++ b/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java @@ -1,5 +1,6 @@ package com.tidal.android.image.coil; +// MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.image.coil.c` - both package and name roll /** TIDAL request -> Coil request; installs the AlbumCover data the interceptor resolves. */ public final class c { - public static coil.request.h a(xd0.g request, androidx.compose.ui.layout.ContentScale scale) { return null; } + public static coil.request.h a(xd0.g request, androidx.compose.ui.layout.ContentScale scale) { return null; } // MARKER: R8 xd0.g } diff --git a/tools/kawarp-build/stubs/com/tidal/android/image/core/b.java b/tools/kawarp-build/stubs/com/tidal/android/image/core/b.java index 94b448d..02a588c 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/image/core/b.java +++ b/tools/kawarp-build/stubs/com/tidal/android/image/core/b.java @@ -1,4 +1,5 @@ package com.tidal.android.image.core; +// MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.image.core.b` - both package and name roll /** TIDAL's sealed image-source type; b$a is AlbumCover(albumId, coverUuid). */ public abstract class b { public static final class a extends b { public a(String albumId, String cover) {} } diff --git a/tools/kawarp-build/stubs/d0/c.java b/tools/kawarp-build/stubs/d0/c.java index 20f0766..02ae36a 100644 --- a/tools/kawarp-build/stubs/d0/c.java +++ b/tools/kawarp-build/stubs/d0/c.java @@ -1,3 +1,4 @@ package d0; +// MARKER: R8 whole class: TIDAL dex FQN is `d0.c` - both package and name roll /** coil.transition.Transition; c.a is Transition.Factory. */ public interface c { interface a {} } diff --git a/tools/kawarp-build/stubs/kotlin/u.java b/tools/kawarp-build/stubs/kotlin/u.java index 2ff176c..57924c5 100644 --- a/tools/kawarp-build/stubs/kotlin/u.java +++ b/tools/kawarp-build/stubs/kotlin/u.java @@ -1,3 +1,4 @@ package kotlin; +// MARKER: R8 whole class: TIDAL dex FQN is `kotlin.u` - both package and name roll /** kotlin.Unit (obfuscated in the TIDAL dex). */ public final class u { public static final u a = null; } diff --git a/tools/kawarp-build/stubs/xd0/e.java b/tools/kawarp-build/stubs/xd0/e.java index 2649cb9..eca03e3 100644 --- a/tools/kawarp-build/stubs/xd0/e.java +++ b/tools/kawarp-build/stubs/xd0/e.java @@ -1,3 +1,4 @@ package xd0; +// MARKER: R8 whole class: TIDAL dex FQN is `xd0.e` - both package and name roll /** TIDAL's ImageLoader interface (implemented by CoilImageLoader). */ public interface e {} diff --git a/tools/kawarp-build/stubs/xd0/f.java b/tools/kawarp-build/stubs/xd0/f.java index fb42bfb..487b824 100644 --- a/tools/kawarp-build/stubs/xd0/f.java +++ b/tools/kawarp-build/stubs/xd0/f.java @@ -1,3 +1,4 @@ package xd0; +// MARKER: R8 whole class: TIDAL dex FQN is `xd0.f` - both package and name roll /** Size spec wrapper accepted by xd0.g's constructor; we always pass null. */ public final class f {} diff --git a/tools/kawarp-build/stubs/xd0/g.java b/tools/kawarp-build/stubs/xd0/g.java index 5baaaef..0c0093f 100644 --- a/tools/kawarp-build/stubs/xd0/g.java +++ b/tools/kawarp-build/stubs/xd0/g.java @@ -1,8 +1,9 @@ package xd0; +// MARKER: R8 whole class: TIDAL dex FQN is `xd0.g` - both package and name roll import android.content.Context; -import com.tidal.android.image.core.b; +import com.tidal.android.image.core.b; // MARKER: R8 core.b /** TIDAL's ImageRequest. */ public final class g { - public g(Context context, b source, b.h.a placeholder, b.h.a error, boolean crossfade, + public g(Context context, b source, b.h.a placeholder, b.h.a error, boolean crossfade, // MARKER: R8 b.h.a java.util.List transformations, f size, boolean allowHardware) {} }