mirror of
https://github.com/meowarex/rl-mobile.git
synced 2026-10-15 07:53:12 +11:00
feat(swipe to queue): remove from queue gesture rework
This commit is contained in:
1 parent
38300573aa
commit
3aabcdff26
4 files changed
+338
-4
No files matched your search
@@ -429,7 +429,8 @@
|
|||||||
"swipe-to-queue.patch"
|
"swipe-to-queue.patch"
|
||||||
],
|
],
|
||||||
"extensionFiles": [
|
"extensionFiles": [
|
||||||
"radiant/SwipeToQueue.smali"
|
"radiant/SwipeToQueue.smali",
|
||||||
|
"radiant/QueueSwipeRemove.smali"
|
||||||
],
|
],
|
||||||
"title": "Swipe to Queue",
|
"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 (in library/my tracks only for now) to add them to the play queue.",
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -429,7 +429,8 @@
|
|||||||
"swipe-to-queue.patch"
|
"swipe-to-queue.patch"
|
||||||
],
|
],
|
||||||
"extensionFiles": [
|
"extensionFiles": [
|
||||||
"radiant/SwipeToQueue.smali"
|
"radiant/SwipeToQueue.smali",
|
||||||
|
"radiant/QueueSwipeRemove.smali"
|
||||||
],
|
],
|
||||||
"title": "Swipe to Queue",
|
"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 (in library/my tracks only for now) to add them to the play queue.",
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;
|
invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;
|
||||||
--- a/h4/a.smali
|
--- a/h4/a.smali
|
||||||
+++ b/h4/a.smali
|
+++ b/h4/a.smali
|
||||||
@@ -931,3 +931,49 @@
|
@@ -931,1 +931,46 @@
|
||||||
.end method
|
.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
|
+.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
|
+ return v0
|
||||||
+.end method
|
+.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 <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;
|
||||||
|
|
||||||
Reference in new issue
Block a user