Files
rl-mobile/patches/swipe-to-queue.patch
T

477 lines
18 KiB
Diff

--- a/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali
+++ b/com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali
@@ -107,6 +107,124 @@
.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 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 v0
+
+ 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;
+
+ 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;
+
+ 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;)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
+.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/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/v6/e.smali
+++ b/v6/e.smali
@@ -62,3 +62,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
@@ -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;
+ 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
@@ -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
.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 @@
.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
+ .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 v1, v0, Lcom/aspiro/wamp/contextmenu/menu/track/d;->a:Lcom/aspiro/wamp/contextmenu/menu/track/c;
+
+ iget-object v0, v1, 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
+
+ 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
+
+ const/4 v0, 0x1
+
+ return v0
+
+ :empty_queue
+ const/4 v0, 0x0
+
+ 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
+
# direct methods
.method public constructor <init>(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;
--- 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
--- 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
+