feat(swipe to queue): add compose / dynamic list + compose search refactor support

This commit is contained in:
Se7en-dev committed 2026-08-20 22:22:10 +02:00
1 parent dcf207d307
commit 10f3dd724d
22 files changed
+3232 -47

No files matched your search

@@ -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": [
{
@@ -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
@@ -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 <init>(Lu5/b$a;)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>(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
@@ -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;-><init>(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
@@ -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 <init>(Lam0/l;Lpb0/b;)V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>()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;-><init>(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
@@ -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 <init>(Landroid/content/Context;Ljava/lang/String;I)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()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
@@ -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
@@ -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 <init>(Lradiant/swipe/ComposeSwipeState;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()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
@@ -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 <init>(Lradiant/swipe/ComposeSwipeState;)V
.locals 0
invoke-direct {p0}, Landroidx/compose/ui/input/pointer/PointerInputFilter;-><init>()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
@@ -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 <init>(Lradiant/swipe/ComposeSwipeState;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()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
@@ -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 <init>()V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>(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;-><init>(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;-><init>()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;-><init>(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;-><init>(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
@@ -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 <init>(Lam0/a;)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>(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
@@ -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;-><init>(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
@@ -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 <init>(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>(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;-><init>(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
@@ -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 <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;J)V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()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
@@ -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 <init>(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;-><init>(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;-><init>(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
@@ -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;
@@ -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;-><init>(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;-><init>(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;-><init>(Ljava/lang/Object;)V
sput-object v0, Lradiant/swipe/ViewAllTrackQueue;->context:Ljava/lang/ref/WeakReference;
return-void
.end method
@@ -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 <init>(Lam0/l;Lm40/e$e;)V
.locals 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()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;-><init>(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;-><init>(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
+18 -2
View File
@@ -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",
+253
View File
@@ -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;-><init>(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;-><init>(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;-><init>(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;-><init>(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;-><init>(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;-><init>(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;
+15 -1
View File
@@ -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
+