diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 865d806..e6d0e42 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -21,6 +21,8 @@ "LyricsKeepControlsVisible", "PlayerBackdrop", "QualityBadgeColors", + "PlayerMovePlayingFrom", + "PlayerOneHanded", "LyricsProgressPill", "MiniPlayerRedesign" ] @@ -39,49 +41,37 @@ { "id": "PlayerBackdrop", "order": 30, - "fileNames": [ - "player-backdrop.patch" - ], + "fileNames": [], "title": "Player Backdrop", - "description": "Restores the legacy translucent backdrop blur behind the player", + "description": "Lets you fully adjust how the player backdrop blur looks and behaves", "default": true, + "defaultVariantIndex": 2, + "variants": [ + { + "title": "Static", + "fileNames": [ + "player-backdrop-static.patch" + ] + }, + { + "title": "Animated", + "fileNames": [ + "player-backdrop-animated.patch" + ] + }, + { + "title": "Playback", + "fileNames": [ + "player-backdrop-playback.patch" + ] + } + ], "advancedOptions": [ - { - "type": "slider", - "key": "blur_strength", - "title": "Blur Strength", - "description": "How strongly the album art behind the player is blurred", - "default": 50, - "min": 0, - "max": 100, - "steps": 19, - "displayAsPercent": true, - "token": "RL_BLUR_BITS", - "encode": { - "kind": "floatBits", - "scale": 1.8 - } - }, - { - "type": "slider", - "key": "dimming", - "title": "Backdrop Dimming", - "description": "Darkens the backdrop so the foreground controls stay legible", - "default": 50, - "min": 0, - "max": 100, - "steps": 19, - "displayAsPercent": true, - "token": "RL_SCRIM_ARGB", - "encode": { - "kind": "argbAlpha" - } - }, { "type": "toggle", "key": "cover_everywhere", "title": "Cover Everywhere - WIP", - "description": "Applies the blurred backdrop to every Compose based page (Home & Collection)", + "description": "Applies TIDAL's player backdrop to every Compose based page (Home & Collection)", "default": false, "inline": true, "fileNames": [ @@ -283,7 +273,7 @@ "radiant/MiniPlayerTrackGestures$OffsetLayer.smali", "radiant/MiniPlayerTrackGestures$ResetAnimator.smali", "radiant/MiniPlayerTrackGestures$TextDraw.smali", - "com/tidal/android/feature/appscaffold/ui/s$c.smali" + "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } ] diff --git a/patches/collection-backdrop.patch b/patches/collection-backdrop.patch index 7c5b8fe..ddca2ac 100644 --- a/patches/collection-backdrop.patch +++ b/patches/collection-backdrop.patch @@ -9,14 +9,14 @@ + invoke-static {v1, v0}, Lradiant/HomeBackdrop;->render(Landroidx/compose/runtime/Composer;I)V # render album-art backdrop + new-instance v0, Lcom/tidal/wave2/foundation/WaveScaffoldKt$WaveScaffold$2; - + .line 388 @@ -991,7 +995,7 @@ - + .line 436 .line 437 - move-wide v15, v10 + const-wide/16 v15, 0x0 # transparent containerColor - + .line 438 const/4 v11, 0x0 diff --git a/patches/cover-capture.patch b/patches/cover-capture.patch index 2e6ea78..411fc7d 100644 --- a/patches/cover-capture.patch +++ b/patches/cover-capture.patch @@ -1,11 +1,22 @@ ---- a/com/tidal/android/feature/appscaffold/ui/r.smali -+++ b/com/tidal/android/feature/appscaffold/ui/r.smali -@@ -48,6 +48,8 @@ - .line 5 - iput-object p4, p0, Lcom/tidal/android/feature/appscaffold/ui/r;->d:Ljava/lang/String; +--- a/com/tidal/android/feature/appscaffold/ui/q.smali ++++ b/com/tidal/android/feature/appscaffold/ui/q.smali +@@ -55,6 +55,8 @@ + .line 10 + iput-object p4, p0, Lcom/tidal/android/feature/appscaffold/ui/q;->d:Ljava/lang/String; + invoke-static {p3, p4}, Lradiant/HomeBackdrop;->fromMiniPlayer(ILjava/lang/String;)V # capture cover state + - .line 6 - iput-boolean p5, p0, Lcom/tidal/android/feature/appscaffold/ui/r;->e:Z + .line 11 + .line 12 + iput-boolean p5, p0, Lcom/tidal/android/feature/appscaffold/ui/q;->e:Z +--- a/com/tidal/android/feature/appscaffold/ui/t.smali ++++ b/com/tidal/android/feature/appscaffold/ui/t.smali +@@ -23,6 +23,8 @@ + .method public constructor (Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;Lcom/tidal/android/feature/appscaffold/ui/q;Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;Z)V + .locals 0 + ++ invoke-static {p3}, Lradiant/HomeBackdrop;->onPlayState(Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;)V # RL: publish live play state to Cover Everywhere ++ + .line 1 + invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; diff --git a/patches/data.json b/patches/data.json index 3d2afa0..9f5ae4e 100644 --- a/patches/data.json +++ b/patches/data.json @@ -1,5 +1,5 @@ { - "tidalVersionCode": 10002, + "tidalVersionCode": 10004, "tidalApkUrl": "https://github.com/meowarex/rl-mobile/releases/download/latest/tidal-stock.apk", - "patchesVersion": "0.10.1" + "patchesVersion": "0.11.0" } diff --git a/patches/debug-menu-unlock.patch b/patches/debug-menu-unlock.patch index 9ce4b77..6c5d04b 100644 --- a/patches/debug-menu-unlock.patch +++ b/patches/debug-menu-unlock.patch @@ -8,7 +8,7 @@ + return v0 # bypass debug flag + .line 1 - iget-object v0, p0, Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;->a:Lcom/tidal/android/featureflags/l; + iget-object v0, p0, Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;->a:Lcom/tidal/android/featureflags/n; @@ -99,6 +102,14 @@ } @@ -23,7 +23,7 @@ + return-object v0 # short-circuit b() + .line 1 - sget-object v0, Lp50/a;->a:Ljava/lang/String; + sget-object v0, Lo50/a;->a:Ljava/lang/String; @@ -261,6 +272,9 @@ .method public final c()Z @@ -33,5 +33,5 @@ + return v0 # bypass debug flag + .line 1 - sget-object v0, Lp50/a;->a:Ljava/lang/String; + sget-object v0, Lo50/a;->a:Ljava/lang/String; diff --git a/patches/enable-legacy-ui.patch b/patches/enable-legacy-ui.patch index e163b2b..6fa44bd 100644 --- a/patches/enable-legacy-ui.patch +++ b/patches/enable-legacy-ui.patch @@ -1,5 +1,5 @@ ---- a/jg/d.smali -+++ b/jg/d.smali +--- a/hg/d.smali ++++ b/hg/d.smali @@ -27,7 +27,7 @@ .line 2 diff --git a/patches/extension/com/tidal/android/feature/appscaffold/ui/s$c.smali b/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali similarity index 73% rename from patches/extension/com/tidal/android/feature/appscaffold/ui/s$c.smali rename to patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali index dbbeb02..31a3ff1 100644 --- a/patches/extension/com/tidal/android/feature/appscaffold/ui/s$c.smali +++ b/patches/extension/com/tidal/android/feature/appscaffold/ui/r$c.smali @@ -1,12 +1,12 @@ -.class public final Lcom/tidal/android/feature/appscaffold/ui/s$c; -.super Lcom/tidal/android/feature/appscaffold/ui/s; +.class public final Lcom/tidal/android/feature/appscaffold/ui/r$c; +.super Lcom/tidal/android/feature/appscaffold/ui/r; .source "SourceFile" # Synthetic mini-player event used by right swipe (previous/rewind). # annotations .annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/tidal/android/feature/appscaffold/ui/s; + value = Lcom/tidal/android/feature/appscaffold/ui/r; .end annotation .annotation system Ldalvik/annotation/InnerClass; @@ -16,18 +16,18 @@ # static fields -.field public static final a:Lcom/tidal/android/feature/appscaffold/ui/s$c; +.field public static final a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # direct methods .method static constructor ()V .locals 1 - new-instance v0, Lcom/tidal/android/feature/appscaffold/ui/s$c; + new-instance v0, Lcom/tidal/android/feature/appscaffold/ui/r$c; - invoke-direct {v0}, Lcom/tidal/android/feature/appscaffold/ui/s;->()V + invoke-direct {v0}, Lcom/tidal/android/feature/appscaffold/ui/r;->()V - sput-object v0, Lcom/tidal/android/feature/appscaffold/ui/s$c;->a:Lcom/tidal/android/feature/appscaffold/ui/s$c; + sput-object v0, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; return-void .end method @@ -44,7 +44,7 @@ return v0 :cond_0 - instance-of p1, p1, Lcom/tidal/android/feature/appscaffold/ui/s$c; + instance-of p1, p1, Lcom/tidal/android/feature/appscaffold/ui/r$c; if-nez p1, :cond_1 diff --git a/patches/extension/radiant/HomeBackdrop.smali b/patches/extension/radiant/HomeBackdrop.smali index d53fc9f..c099921 100644 --- a/patches/extension/radiant/HomeBackdrop.smali +++ b/patches/extension/radiant/HomeBackdrop.smali @@ -5,6 +5,20 @@ # static fields .field public static volatile currentAlbumId:I +# 0 = Static, 1 = Animated (always rotate), 2 = Playback (follow live play state) +.field public static volatile mode:I + +# Live play state from the mini-player (t.c PlayState = Playing) +.field public static isPlayingState:Landroidx/compose/runtime/MutableState; + .annotation system Ldalvik/annotation/Signature; + value = { + "Landroidx/compose/runtime/MutableState<", + "Ljava/lang/Boolean;", + ">;" + } + .end annotation +.end field + .field public static coverUuidState:Landroidx/compose/runtime/MutableState; .annotation system Ldalvik/annotation/Signature; value = { @@ -24,6 +38,24 @@ sput v0, Lradiant/HomeBackdrop;->currentAlbumId:I + const/4 v0, 0x2 + + sput v0, Lradiant/HomeBackdrop;->mode:I + + sget-object v0, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; + + const/4 v1, 0x0 + + const/4 v2, 0x2 + + const/4 v3, 0x0 + + invoke-static {v0, v1, v2, v3}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v0 + + sput-object v0, Lradiant/HomeBackdrop;->isPlayingState:Landroidx/compose/runtime/MutableState; + const/4 v0, 0x0 const/4 v1, 0x0 @@ -41,6 +73,64 @@ return-void .end method +.method public static setModeStatic()V + .locals 1 + + const/4 v0, 0x0 + + sput v0, Lradiant/HomeBackdrop;->mode:I + + return-void +.end method + +.method public static setModeAnimated()V + .locals 1 + + const/4 v0, 0x1 + + sput v0, Lradiant/HomeBackdrop;->mode:I + + return-void +.end method + +.method public static setModePlayback()V + .locals 1 + + const/4 v0, 0x2 + + sput v0, Lradiant/HomeBackdrop;->mode:I + + return-void +.end method + +# from the mini-player state ctor (t.) whenever play state changes. +.method public static onPlayState(Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;)V + .locals 2 + + sget-object v0, Lradiant/HomeBackdrop;->isPlayingState:Landroidx/compose/runtime/MutableState; + + if-nez v0, :cond_ready + + return-void + + :cond_ready + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;->Playing:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; + + if-ne p0, v1, :cond_paused + + sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; + + goto :goto_set + + :cond_paused + sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; + + :goto_set + invoke-interface {v0, v1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + return-void +.end method + .method private constructor ()V .locals 0 @@ -271,97 +361,52 @@ if-eqz v2, :skip - sget v2, Lradiant/HomeBackdrop;->currentAlbumId:I - - new-instance v3, Lcom/tidal/android/feature/playerscreen/ui/composables/o0; - - invoke-direct {v3, v2, v1}, Lcom/tidal/android/feature/playerscreen/ui/composables/o0;->(ILjava/lang/String;)V - - sget-object v4, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; - - const/4 v5, 0x0 - - const/4 v6, 0x1 - - const/4 v7, 0x0 - - invoke-static {v4, v5, v6, v7}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; - - move-result-object v4 - - const/high16 v5, 0x42200000 - - invoke-static {v5}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F - - move-result v5 - - sget-object v6, Landroidx/compose/ui/draw/BlurredEdgeTreatment;->Companion:Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion; - - invoke-virtual {v6}, Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion;->getRectangle---Goahg()Landroidx/compose/ui/graphics/Shape; - - move-result-object v6 - - invoke-static {v4, v5, v6}, Landroidx/compose/ui/draw/BlurKt;->blur-F8QBwvs(Landroidx/compose/ui/Modifier;FLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; - - move-result-object v4 - - sget-object v5, Landroidx/compose/ui/layout/ContentScale;->Companion:Landroidx/compose/ui/layout/ContentScale$Companion; - - invoke-virtual {v5}, Landroidx/compose/ui/layout/ContentScale$Companion;->getCrop()Landroidx/compose/ui/layout/ContentScale; - - move-result-object v5 - - move-object/from16 v6, v3 - - const/4 v7, 0x0 - - move-object/from16 v8, v4 + # Render TIDAL's NATIVE DarkBlurBackground (p3.a) + sget-object v8, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; const/4 v9, 0x0 - move-object/from16 v10, v5 + const/4 v10, 0x1 - move-object/from16 v11, v1 # uuid as cache key + const/4 v11, 0x0 - const/4 v12, 0x0 + invoke-static {v8, v9, v10, v11}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; - move-object/from16 v13, v0 + move-result-object v13 # v13 = fillMaxSize modifier - const/4 v14, 0x0 + sget v8, Lradiant/HomeBackdrop;->currentAlbumId:I # v8 = album id - const/16 v15, 0x48 + move-object v9, v1 # v9 = cover uuid - invoke-static/range {v6 .. v15}, Lee0/e;->a(Lem0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lem0/a;Landroidx/compose/runtime/Composer;II)V + # v10 = isPlaying, mirrored from the Player Backdrop variant + sget v10, Lradiant/HomeBackdrop;->mode:I - sget-object v3, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + const/4 v11, 0x2 - const/4 v4, 0x0 + if-ne v10, v11, :rl_mode_done - const/4 v5, 0x1 + sget-object v10, Lradiant/HomeBackdrop;->isPlayingState:Landroidx/compose/runtime/MutableState; - const/4 v6, 0x0 + invoke-interface {v10}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object; - invoke-static {v3, v4, v5, v6}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; + move-result-object v10 - move-result-object v3 + check-cast v10, Ljava/lang/Boolean; - const v4, -0x80000000 + invoke-virtual {v10}, Ljava/lang/Boolean;->booleanValue()Z - invoke-static {v4}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J + move-result v10 - move-result-wide v4 + :rl_mode_done + const/4 v11, 0x0 # v11 = isSeeking = false - invoke-static {}, Landroidx/compose/ui/graphics/RectangleShapeKt;->getRectangleShape()Landroidx/compose/ui/graphics/Shape; + const/4 v12, 0x0 # v12 = progress callback = null (unused while not seeking) - move-result-object v6 + move-object v14, v0 # v14 = composer - invoke-static {v3, v4, v5, v6}, Landroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; + const/4 v15, 0x0 # v15 = changed flags - move-result-object v3 - - const/4 v4, 0x0 - - invoke-static {v3, v0, v4}, Landroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + invoke-static/range {v8 .. v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V :skip invoke-interface {v0}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V diff --git a/patches/extension/radiant/MiniPlayerBackground.smali b/patches/extension/radiant/MiniPlayerBackground.smali index 5a5e423..f348416 100644 --- a/patches/extension/radiant/MiniPlayerBackground.smali +++ b/patches/extension/radiant/MiniPlayerBackground.smali @@ -83,7 +83,7 @@ const/16 v7, 0x8 - invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lem0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; + invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lam0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; move-result-object v0 diff --git a/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali b/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali index 04e3a0d..e11fad1 100644 --- a/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali +++ b/patches/extension/radiant/MiniPlayerGestures$FeedbackLayer.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerGestures$FeedbackLayer; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations @@ -41,7 +41,7 @@ # virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/v; +.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; .locals 1 sget-object v0, Lradiant/MiniPlayerGestures;->v:Landroidx/compose/runtime/MutableFloatState; @@ -52,7 +52,7 @@ invoke-interface {p1, v0}, Landroidx/compose/ui/graphics/GraphicsLayerScope;->setTranslationY(F)V - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 .end method @@ -62,7 +62,7 @@ check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$FeedbackLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/MiniPlayerGestures$Gesture.smali index 5f941c1..966a750 100644 --- a/patches/extension/radiant/MiniPlayerGestures$Gesture.smali +++ b/patches/extension/radiant/MiniPlayerGestures$Gesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerGestures$Gesture; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; @@ -14,7 +14,7 @@ # instance fields -.field public final a:Lem0/l; +.field public final a:Lam0/l; # Y at ACTION_DOWN .field public b:F @@ -43,12 +43,12 @@ # direct methods -.method public constructor (Lem0/l;Landroidx/compose/material3/SheetState;Z)V +.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;Z)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lem0/l; + iput-object p1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; iput-object p2, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; @@ -90,9 +90,9 @@ iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lem0/l; + iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - invoke-static {v0, v1, p1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lem0/l;F)V + invoke-static {v0, v1, p1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V return-void .end method @@ -100,11 +100,11 @@ .method private openPlayer()V .locals 2 - iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lem0/l; + iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; - invoke-interface {v0, v1}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; return-void .end method @@ -174,7 +174,7 @@ # virtual methods # Listens for MotionEvents -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/v; +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; .locals 11 invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I @@ -467,9 +467,9 @@ move-result v0 - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lem0/l; + iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - invoke-static {v1, v0}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lem0/l;F)Z + invoke-static {v1, v0}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -489,9 +489,9 @@ iget-object v0, p0, Lradiant/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lem0/l; + iget-object v1, p0, Lradiant/MiniPlayerGestures$Gesture;->a:Lam0/l; - invoke-static {v0, v1}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lem0/l;)V + invoke-static {v0, v1}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V goto :cancel_reset @@ -503,7 +503,7 @@ :done - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 .end method @@ -513,7 +513,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali b/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali index 437d647..c58201f 100644 --- a/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali +++ b/patches/extension/radiant/MiniPlayerGestures$RootGesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerGestures$RootGesture; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations @@ -15,18 +15,18 @@ # instance fields -.field public final a:Lem0/l; +.field public final a:Lam0/l; .field public final b:Landroidx/compose/material3/SheetState; # direct methods -.method public constructor (Lem0/l;Landroidx/compose/material3/SheetState;)V +.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lem0/l; + iput-object p1, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; iput-object p2, p0, Lradiant/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; @@ -35,7 +35,7 @@ # virtual methods -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/v; +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; .locals 6 iget-object v0, p0, Lradiant/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; @@ -100,9 +100,9 @@ move-result v1 - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lem0/l; + iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - invoke-static {v2, v1}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lem0/l;F)Z + invoke-static {v2, v1}, Lradiant/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -143,9 +143,9 @@ move-result v1 - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lem0/l; + iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - invoke-static {v0, v2, v1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lem0/l;F)V + invoke-static {v0, v2, v1}, Lradiant/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -153,14 +153,14 @@ # ACTION_CANCEL :cancel - iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lem0/l; + iget-object v2, p0, Lradiant/MiniPlayerGestures$RootGesture;->a:Lam0/l; - invoke-static {v0, v2}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lem0/l;)V + invoke-static {v0, v2}, Lradiant/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V invoke-static {}, Lradiant/MiniPlayerGestures;->animateSwipeFeedbackReset()V :done - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 .end method @@ -170,7 +170,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$RootGesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerGestures$RootGesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerGestures.smali b/patches/extension/radiant/MiniPlayerGestures.smali index ada209c..bec29e9 100644 --- a/patches/extension/radiant/MiniPlayerGestures.smali +++ b/patches/extension/radiant/MiniPlayerGestures.smali @@ -23,7 +23,7 @@ .field private static g:Landroidx/compose/material3/SheetState; # Material3 settle lambda -.field private static h:Lem0/l; +.field private static h:Lam0/l; # Latest MotionEvent eventTime for drag updates .field private static i:J @@ -51,7 +51,7 @@ .field private static r:Z # AppScaffold context -.field private static s:Lem0/l; +.field private static s:Lam0/l; .field private static t:Landroidx/compose/material3/SheetState; @@ -321,7 +321,7 @@ sput-object v0, Lradiant/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object v0, Lradiant/MiniPlayerGestures;->h:Lem0/l; + sput-object v0, Lradiant/MiniPlayerGestures;->h:Lam0/l; sput v0, Lradiant/MiniPlayerGestures;->d:F @@ -437,7 +437,7 @@ return-void .end method -.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lem0/l;)V +.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V .locals 1 invoke-static {p0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z @@ -450,13 +450,13 @@ sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; - invoke-interface {p1, p0}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done return-void .end method -.method public static finishDrag(Landroidx/compose/material3/SheetState;Lem0/l;F)V +.method public static finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V .locals 6 invoke-static {p0}, Lradiant/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z @@ -469,7 +469,7 @@ if-ne v0, p0, :fallback_snap - sget-object v0, Lradiant/MiniPlayerGestures;->h:Lem0/l; + sget-object v0, Lradiant/MiniPlayerGestures;->h:Lam0/l; if-eqz v0, :fallback_snap @@ -485,7 +485,7 @@ move-result-object p0 - invoke-interface {v0, p0}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; goto/16 :done @@ -589,7 +589,7 @@ sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; - invoke-interface {p1, p0}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; :done return-void @@ -748,10 +748,10 @@ return-void .end method -.method public static configure(Lem0/l;Landroidx/compose/material3/SheetState;Z)V +.method public static configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V .locals 0 - sput-object p0, Lradiant/MiniPlayerGestures;->s:Lem0/l; + sput-object p0, Lradiant/MiniPlayerGestures;->s:Lam0/l; sput-object p1, Lradiant/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; @@ -798,7 +798,7 @@ sget-object v0, Lradiant/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/MiniPlayerGestures$FeedbackLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -848,14 +848,14 @@ return p0 .end method -.method public static modifier(Landroidx/compose/ui/Modifier;Lem0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; +.method public static modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; .locals 1 new-instance v0, Lradiant/MiniPlayerGestures$Gesture; - invoke-direct {v0, p1, p2, p3}, Lradiant/MiniPlayerGestures$Gesture;->(Lem0/l;Landroidx/compose/material3/SheetState;Z)V + invoke-direct {v0, p1, p2, p3}, Lradiant/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -865,7 +865,7 @@ .method public static trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 3 - sget-object v0, Lradiant/MiniPlayerGestures;->s:Lem0/l; + sget-object v0, Lradiant/MiniPlayerGestures;->s:Lam0/l; if-eqz v0, :done @@ -875,7 +875,7 @@ sget-boolean v2, Lradiant/MiniPlayerGestures;->u:Z - invoke-static {p0, v0, v1, v2}, Lradiant/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lem0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0, v1, v2}, Lradiant/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -988,7 +988,7 @@ return-void .end method -.method public static completeSimpleSwipe(Lem0/l;F)Z +.method public static completeSimpleSwipe(Lam0/l;F)Z .locals 4 sget-boolean v0, Lradiant/MiniPlayerGestures;->u:Z @@ -1035,7 +1035,7 @@ sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; - invoke-interface {p0, v0}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {p0, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; const/4 v0, 0x1 @@ -1307,26 +1307,26 @@ return p0 .end method -.method public static rootModifier(Landroidx/compose/ui/Modifier;Lem0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; +.method public static rootModifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; .locals 1 new-instance v0, Lradiant/MiniPlayerGestures$RootGesture; - invoke-direct {v0, p1, p2}, Lradiant/MiniPlayerGestures$RootGesture;->(Lem0/l;Landroidx/compose/material3/SheetState;)V + invoke-direct {v0, p1, p2}, Lradiant/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 return-object p0 .end method -.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lem0/l;)V +.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V .locals 0 sput-object p0, Lradiant/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object p1, Lradiant/MiniPlayerGestures;->h:Lem0/l; + sput-object p1, Lradiant/MiniPlayerGestures;->h:Lam0/l; return-void .end method diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali b/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali index 6b8bad9..7eeb0c5 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali +++ b/patches/extension/radiant/MiniPlayerTrackGestures$Gesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerTrackGestures$Gesture; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations @@ -15,16 +15,16 @@ # instance fields -.field public final a:Lem0/l; +.field public final a:Lam0/l; # direct methods -.method public constructor (Lem0/l;)V +.method public constructor (Lam0/l;)V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lem0/l; + iput-object p1, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; return-void .end method @@ -32,11 +32,11 @@ .method private nextTrack()V .locals 2 - iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lem0/l; + iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; - sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/s$a;->a:Lcom/tidal/android/feature/appscaffold/ui/s$a; # Tidal's built-in next track mini-player event + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$a;->a:Lcom/tidal/android/feature/appscaffold/ui/r$a; # Tidal's built-in next track mini-player event - invoke-interface {v0, v1}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; return-void .end method @@ -44,18 +44,18 @@ .method private previousTrack()V .locals 2 - iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lem0/l; + iget-object v0, p0, Lradiant/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; - sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/s$c;->a:Lcom/tidal/android/feature/appscaffold/ui/s$c; # Our synthetic previous track event + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # Our synthetic previous track event - invoke-interface {v0, v1}, Lem0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; + invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; return-void .end method # virtual methods -.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/v; +.method public final invoke(Landroid/view/MotionEvent;)Lkotlin/u; .locals 3 invoke-virtual {p1}, Landroid/view/MotionEvent;->getActionMasked()I @@ -132,7 +132,7 @@ invoke-static {}, Lradiant/MiniPlayerTrackGestures;->cancelDrag()V :done - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 .end method @@ -142,7 +142,7 @@ check-cast p1, Landroid/view/MotionEvent; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->invoke(Landroid/view/MotionEvent;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali b/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali index bc73496..c91c480 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali +++ b/patches/extension/radiant/MiniPlayerTrackGestures$OffsetLayer.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerTrackGestures$OffsetLayer; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations @@ -41,7 +41,7 @@ # virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/v; +.method public final invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; .locals 1 sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; @@ -52,7 +52,7 @@ invoke-interface {p1, v0}, Landroidx/compose/ui/graphics/GraphicsLayerScope;->setTranslationX(F)V - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 .end method @@ -62,7 +62,7 @@ check-cast p1, Landroidx/compose/ui/graphics/GraphicsLayerScope; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->invoke(Landroidx/compose/ui/graphics/GraphicsLayerScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali b/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali index 4d37b14..94590ad 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali +++ b/patches/extension/radiant/MiniPlayerTrackGestures$TextDraw.smali @@ -1,6 +1,6 @@ .class public final Lradiant/MiniPlayerTrackGestures$TextDraw; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # annotations @@ -41,7 +41,7 @@ # virtual methods -.method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/v; +.method public final invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; .locals 12 sget-object v0, Lradiant/MiniPlayerTrackGestures;->b:Landroidx/compose/runtime/MutableFloatState; @@ -109,7 +109,7 @@ invoke-interface {v7, v8, v9}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->setSize-uvyYCjk(J)V - sget-object p1, Lkotlin/v;->a:Lkotlin/v; + sget-object p1, Lkotlin/u;->a:Lkotlin/u; return-object p1 @@ -132,7 +132,7 @@ check-cast p1, Landroidx/compose/ui/graphics/drawscope/ContentDrawScope; - invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/v; + invoke-virtual {p0, p1}, Lradiant/MiniPlayerTrackGestures$TextDraw;->invoke(Landroidx/compose/ui/graphics/drawscope/ContentDrawScope;)Lkotlin/u; move-result-object p1 diff --git a/patches/extension/radiant/MiniPlayerTrackGestures.smali b/patches/extension/radiant/MiniPlayerTrackGestures.smali index 089d1a7..2f1129d 100644 --- a/patches/extension/radiant/MiniPlayerTrackGestures.smali +++ b/patches/extension/radiant/MiniPlayerTrackGestures.smali @@ -419,7 +419,7 @@ sget-object v0, Lradiant/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/MiniPlayerTrackGestures$OffsetLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -431,7 +431,7 @@ sget-object v0, Lradiant/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/MiniPlayerTrackGestures$TextDraw; # text clip on right only - invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 @@ -590,14 +590,14 @@ return-void .end method -.method public static trackModifier(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; +.method public static trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; .locals 1 new-instance v0, Lradiant/MiniPlayerTrackGestures$Gesture; - invoke-direct {v0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->(Lem0/l;)V + invoke-direct {v0, p1}, Lradiant/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; move-result-object p0 diff --git a/patches/extension/radiant/MiniSeekerFloating.smali b/patches/extension/radiant/MiniSeekerFloating.smali index a974ede..d0f46df 100644 --- a/patches/extension/radiant/MiniSeekerFloating.smali +++ b/patches/extension/radiant/MiniSeekerFloating.smali @@ -1,7 +1,7 @@ .class public final Lradiant/MiniSeekerFloating; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # static fields @@ -46,7 +46,7 @@ .catch Ljava/lang/Throwable; {:try_start .. :try_end} :swallow :swallow - sget-object v0, Lkotlin/v;->a:Lkotlin/v; # Unit + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # Unit return-object v0 .end method diff --git a/patches/extension/radiant/MiniSeekerLine.smali b/patches/extension/radiant/MiniSeekerLine.smali index 00e9893..2b29518 100644 --- a/patches/extension/radiant/MiniSeekerLine.smali +++ b/patches/extension/radiant/MiniSeekerLine.smali @@ -5,7 +5,7 @@ # static fields .field public static progressState:Landroidx/compose/runtime/MutableFloatState; -.field public static volatile vm:Lih/g; +.field public static volatile vm:Lgh/j; .field public static volatile sub:Lio/reactivex/disposables/Disposable; @@ -57,7 +57,7 @@ :start_block :try_start - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lih/g; # cached vm + sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cached vm if-nez v0, :got_vm # reuse if present @@ -69,28 +69,28 @@ move-result-object v0 # component - check-cast v0, Le5/u$n2; # narrow type + check-cast v0, Le5/z$n2; # narrow type - iget-object v0, v0, Le5/u$n2;->z0:Ldagger/internal/j; # playqueue provider + iget-object v0, v0, Le5/z$n2;->z0:Ldagger/internal/j; # playqueue provider - invoke-interface {v0}, Lul0/a;->get()Ljava/lang/Object; # resolve + invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # resolve move-result-object v0 # playqueue - check-cast v0, Lcom/aspiro/wamp/playqueue/y0; # narrow type + check-cast v0, Lcom/aspiro/wamp/playqueue/d1; # narrow type - new-instance v1, Lih/g; # build vm + new-instance v1, Lgh/j; # build vm - invoke-direct {v1, v0}, Lih/g;->(Lcom/aspiro/wamp/playqueue/y0;)V # ctor + invoke-direct {v1, v0}, Lgh/j;->(Lcom/aspiro/wamp/playqueue/d1;)V # ctor - sput-object v1, Lradiant/MiniSeekerLine;->vm:Lih/g; # cache + sput-object v1, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cache :got_vm - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lih/g; # vm ref + sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # vm ref - invoke-virtual {v0}, Lih/g;->a()V # activate emission + invoke-virtual {v0}, Lgh/j;->a()V # activate emission - iget-object v0, v0, Lih/g;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject + iget-object v0, v0, Lgh/j;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject invoke-static {}, Lio/reactivex/android/schedulers/AndroidSchedulers;->mainThread()Lio/reactivex/Scheduler; # main scheduler diff --git a/patches/extension/radiant/NoOp.smali b/patches/extension/radiant/NoOp.smali index 06b6f62..ebce3a2 100644 --- a/patches/extension/radiant/NoOp.smali +++ b/patches/extension/radiant/NoOp.smali @@ -1,6 +1,6 @@ .class public final Lradiant/NoOp; .super Ljava/lang/Object; -.implements Lem0/a; +.implements Lam0/a; # static fields @@ -33,7 +33,7 @@ .method public final invoke()Ljava/lang/Object; .locals 1 - sget-object v0, Lkotlin/v;->a:Lkotlin/v; + sget-object v0, Lkotlin/u;->a:Lkotlin/u; return-object v0 .end method diff --git a/patches/extension/radiant/QualityBadge.smali b/patches/extension/radiant/QualityBadge.smali index f3cb253..504b5e4 100644 --- a/patches/extension/radiant/QualityBadge.smali +++ b/patches/extension/radiant/QualityBadge.smali @@ -85,15 +85,15 @@ return-object p0 .end method -.method public static style(ILr20/c2;)Lr20/c2; +.method public static style(ILq20/c2;)Lq20/c2; .registers 16 invoke-static {p0}, Lradiant/QualityBadge;->textArgb(I)I move-result v0 - new-instance v1, Lg20/a; - invoke-direct {v1, v0}, Lg20/a;->(I)V - new-instance v0, Lg20/d; + new-instance v1, Lf20/a; + invoke-direct {v1, v0}, Lf20/a;->(I)V + new-instance v0, Lf20/d; const/4 v2, 0x0 const/4 v3, 0x0 const/4 v4, 0x0 @@ -107,7 +107,7 @@ const/4 v12, 0x0 const/16 v13, 0xffe const/4 v14, 0x0 - invoke-direct/range {v0 .. v14}, Lg20/d;->(Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;Lg20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + invoke-direct/range {v0 .. v14}, Lf20/d;->(Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V move-object v9, v0 move-object/from16 v0, p1 @@ -118,7 +118,7 @@ const/4 v5, 0x0 const/16 v6, 0x1d const/4 v7, 0x0 - invoke-static/range {v0 .. v7}, Lr20/c2;->g(Lr20/c2;Lr20/s4;Lg20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lr20/r4;ILjava/lang/Object;)Lr20/c2; + invoke-static/range {v0 .. v7}, Lq20/c2;->g(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2; move-result-object p0 return-object p0 .end method \ No newline at end of file diff --git a/patches/extension/radiant/RLAPILyricsWorker.smali b/patches/extension/radiant/RLAPILyricsWorker.smali index 896b85c..acc376a 100644 --- a/patches/extension/radiant/RLAPILyricsWorker.smali +++ b/patches/extension/radiant/RLAPILyricsWorker.smali @@ -412,7 +412,7 @@ iget-object v4, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; sget-object v6, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; @@ -485,9 +485,9 @@ :key_ok iget-object v4, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->N:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; - invoke-static {v3}, Lzn0/a;->c(Ljava/lang/Iterable;)Lzn0/b; + invoke-static {v3}, Lvn0/a;->c(Ljava/lang/Iterable;)Lvn0/b; move-result-object v6 @@ -504,7 +504,7 @@ const/4 v10, 0x0 - invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Lzn0/b;IZ)V + invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Lvn0/b;IZ)V const-string v6, "publishing g$c -> K=true (O=true if sticky) N=g$c" @@ -524,7 +524,7 @@ if-eqz v9, :skip_n - iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; invoke-interface {v6, v7}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V diff --git a/patches/extension/radiant/SeekerConsumer.smali b/patches/extension/radiant/SeekerConsumer.smali index f278947..ed33c90 100644 --- a/patches/extension/radiant/SeekerConsumer.smali +++ b/patches/extension/radiant/SeekerConsumer.smali @@ -20,13 +20,13 @@ if-eqz p1, :ret # null guard - instance-of v0, p1, Lih/b; # type guard + instance-of v0, p1, Lgh/b; # type guard if-eqz v0, :ret # skip if wrong type - check-cast p1, Lih/b; # narrow type + check-cast p1, Lgh/b; # narrow type - iget v0, p1, Lih/b;->b:F # raw progress + iget v0, p1, Lgh/b;->b:F # raw progress invoke-static {v0}, Ljava/lang/Float;->isNaN(F)Z # nan check diff --git a/patches/extension/radiant/SparkleButton.smali b/patches/extension/radiant/SparkleButton.smali index 8c5f484..f6cd728 100644 --- a/patches/extension/radiant/SparkleButton.smali +++ b/patches/extension/radiant/SparkleButton.smali @@ -4,7 +4,7 @@ # direct methods -.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V +.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V .locals 21 .annotation build Landroidx/compose/runtime/Composable; .end annotation @@ -98,7 +98,7 @@ const/4 v4, 0x6 - invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/y;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; + invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/z;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; move-result-object v15 @@ -131,7 +131,7 @@ const/16 v18, 0x0 - invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lr20/u1; + invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1; move-result-object v4 @@ -140,7 +140,7 @@ :cond_5 move-object v9, v4 - check-cast v9, Lr20/u1; + check-cast v9, Lq20/u1; sget v2, Lcom/tidal/android/feature/playerscreen/ui/R$string;->lyrics:I @@ -172,7 +172,7 @@ const/4 v8, 0x0 - invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->c(Lem0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lem0/a;Ljava/lang/String;Lr20/u1;Lem0/p;Landroidx/compose/runtime/Composer;II)V + invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->b(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z diff --git a/patches/extension/radiant/SparkleContent.smali b/patches/extension/radiant/SparkleContent.smali index 1eb89ab..3446db9 100644 --- a/patches/extension/radiant/SparkleContent.smali +++ b/patches/extension/radiant/SparkleContent.smali @@ -3,7 +3,7 @@ .source "SourceFile" # interfaces -.implements Lem0/p; +.implements Lam0/p; # virtual methods @@ -35,7 +35,7 @@ invoke-static {v0, p2, v1, v2}, Landroidx/compose/runtime/ComposerKt;->traceEventStart(IIILjava/lang/String;)V :cond_0 - const p2, 0x7f080521 + const p2, 0x7f080522 const/4 v0, 0x0 diff --git a/patches/extension/radiant/SpvFactory.smali b/patches/extension/radiant/SpvFactory.smali index d259e5d..932b5b8 100644 --- a/patches/extension/radiant/SpvFactory.smali +++ b/patches/extension/radiant/SpvFactory.smali @@ -1,6 +1,6 @@ .class public final Lradiant/SpvFactory; .super Ljava/lang/Object; -.implements Lem0/l; +.implements Lam0/l; # static fields diff --git a/patches/home-backdrop.patch b/patches/home-backdrop.patch index 51ec9d0..1b27e05 100644 --- a/patches/home-backdrop.patch +++ b/patches/home-backdrop.patch @@ -1,16 +1,16 @@ --- a/com/tidal/android/feature/home/ui/k.smali +++ b/com/tidal/android/feature/home/ui/k.smali -@@ -427,7 +427,7 @@ +@@ -424,7 +424,7 @@ const/4 v6, 0x0 - .line 182 -- move-wide v7, v9 + .line 181 +- move-wide v7, v8 + const-wide/16 v7, 0x0 # transparent containerColor - .line 183 + .line 182 const-wide/16 v9, 0x0 ---- a/com/tidal/android/feature/home/ui/n.smali -+++ b/com/tidal/android/feature/home/ui/n.smali +--- a/com/tidal/android/feature/home/ui/o.smali ++++ b/com/tidal/android/feature/home/ui/o.smali @@ -187,6 +187,10 @@ .line 61 .line 62 @@ -22,8 +22,8 @@ invoke-interface {p1}, Landroidx/compose/foundation/layout/PaddingValues;->calculateTopPadding-D9Ej5fM()F .line 63 ---- a/com/tidal/android/feature/home/ui/composables/f.smali -+++ b/com/tidal/android/feature/home/ui/composables/f.smali +--- a/com/tidal/android/feature/home/ui/composables/g.smali ++++ b/com/tidal/android/feature/home/ui/composables/g.smali @@ -790,6 +790,8 @@ .line 104 move-result-wide v14 diff --git a/patches/integration-waze-playback.patch b/patches/integration-waze-playback.patch index 45c5dd5..dce7e3c 100644 --- a/patches/integration-waze-playback.patch +++ b/patches/integration-waze-playback.patch @@ -1,5 +1,5 @@ ---- a/ob/e.smali -+++ b/ob/e.smali +--- a/mb/f.smali ++++ b/mb/f.smali @@ -613,6 +613,25 @@ .line 236 @@ -52,4 +52,4 @@ + .line 306 .line 307 - iget-object v1, v0, Lob/e;->c:Ljava/util/Map; + iget-object v1, v0, Lmb/f;->c:Ljava/util/Map; diff --git a/patches/lyrics-disable-cover.patch b/patches/lyrics-disable-cover.patch index 09ea06e..7b29c4c 100644 --- a/patches/lyrics-disable-cover.patch +++ b/patches/lyrics-disable-cover.patch @@ -1,5 +1,5 @@ ---- a/com/tidal/android/feature/playerscreen/ui/v0.smali -+++ b/com/tidal/android/feature/playerscreen/ui/v0.smali +--- a/com/tidal/android/feature/playerscreen/ui/b0.smali ++++ b/com/tidal/android/feature/playerscreen/ui/b0.smali @@ -669,8 +669,23 @@ move-object v5, v1 @@ -8,7 +8,7 @@ + + invoke-interface {v7, v1}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open group around the cover + -+ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/v0;->b:Lcom/tidal/android/feature/playerscreen/ui/s$a; # player state ++ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/b0;->b:Lcom/tidal/android/feature/playerscreen/ui/s$a; # player state + + iget-object v1, v1, Lcom/tidal/android/feature/playerscreen/ui/s$a;->j:Lcom/tidal/android/feature/playerscreen/ui/g; # current view mode + @@ -16,7 +16,7 @@ + + if-eqz v1, :radiant_after_cover # lyrics/credits mode -> skip cover + - invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;->c(Lcom/tidal/android/feature/playerscreen/ui/d;Lem0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V + invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;->c(Lcom/tidal/android/feature/playerscreen/ui/d;Lam0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V + :radiant_after_cover # skip target + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group diff --git a/patches/lyrics-fade-region.patch b/patches/lyrics-fade-region.patch index bba0c2f..cac0c37 100644 --- a/patches/lyrics-fade-region.patch +++ b/patches/lyrics-fade-region.patch @@ -1,10 +1,10 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/l1.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/l1.smali +--- a/com/tidal/android/feature/playerscreen/ui/composables/o1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/o1.smali @@ -64,7 +64,7 @@ .line 16 .line 17 -- iget v2, p0, Lcom/tidal/android/feature/playerscreen/ui/composables/l1;->a:F +- iget v2, p0, Lcom/tidal/android/feature/playerscreen/ui/composables/o1;->a:F + const/high16 v2, 0x43200000 # 160f start dp .line 18 diff --git a/patches/lyrics-keep-controls-visible.patch b/patches/lyrics-keep-controls-visible.patch index 22e32df..96e0be5 100644 --- a/patches/lyrics-keep-controls-visible.patch +++ b/patches/lyrics-keep-controls-visible.patch @@ -1,21 +1,17 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1.smali -@@ -228,11 +228,11 @@ - .line 23 - .line 24 - iget-boolean p1, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1;->$isLyricsVisible:Z - +@@ -231,7 +231,7 @@ + .line 25 .line 26 - if-eqz p1, :cond_3 + goto :cond_3 # skip auto-hide branch - + .line 27 .line 28 - iput v2, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1;->label:I --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1299,6 +1299,14 @@ +@@ -1382,6 +1382,14 @@ .line 109 .line 110 move-result v1 @@ -24,7 +20,7 @@ + sput v1, Lradiant/LyricsReinitGuard;->lastMediaId:I + goto :rl_reinit_ok + :rl_skip_reinit -+ sget-object v4, Lkotlin/v;->a:Lkotlin/v; ++ sget-object v4, Lkotlin/u;->a:Lkotlin/u; + return-object v4 + :rl_reinit_ok diff --git a/patches/lyrics-progress-pill.patch b/patches/lyrics-progress-pill.patch index 979ff46..5923383 100644 --- a/patches/lyrics-progress-pill.patch +++ b/patches/lyrics-progress-pill.patch @@ -1,5 +1,5 @@ ---- a/com/tidal/android/feature/playerscreen/ui/s0.smali -+++ b/com/tidal/android/feature/playerscreen/ui/s0.smali +--- a/com/tidal/android/feature/playerscreen/ui/m0.smali ++++ b/com/tidal/android/feature/playerscreen/ui/m0.smali @@ -45,7 +45,7 @@ # virtual methods @@ -11,7 +11,7 @@ move-object/from16 v0, p0 @@ -460,6 +460,64 @@ .line 200 - invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->a(Lcom/tidal/android/feature/playerscreen/ui/g;Lem0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lem0/l;Landroidx/compose/runtime/Composer;II)V + invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->a(Lcom/tidal/android/feature/playerscreen/ui/g;Lam0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lam0/l;Landroidx/compose/runtime/Composer;II)V + sget-object v17, Lradiant/SpvFactory;->a:Lradiant/SpvFactory; # progress view factory + @@ -29,7 +29,7 @@ + + const/16 v24, 0x0 # synthetic null + -+ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lem0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # apply clickable ++ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lam0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # apply clickable + + move-result-object v23 # clickable modifier + @@ -69,7 +69,7 @@ + + const/16 v22, 0x4 # default mask + -+ invoke-static/range {v17 .. v22}, Landroidx/compose/ui/viewinterop/AndroidView_androidKt;->AndroidView(Lem0/l;Landroidx/compose/ui/Modifier;Lem0/l;Landroidx/compose/runtime/Composer;II)V # mount progress pill ++ invoke-static/range {v17 .. v22}, Landroidx/compose/ui/viewinterop/AndroidView_androidKt;->AndroidView(Lam0/l;Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/runtime/Composer;II)V # mount progress pill + .line 201 .line 202 diff --git a/patches/lyrics-replace-lyrics-button.patch b/patches/lyrics-replace-lyrics-button.patch index 026a1c7..7ea8ada 100644 --- a/patches/lyrics-replace-lyrics-button.patch +++ b/patches/lyrics-replace-lyrics-button.patch @@ -1,30 +1,30 @@ # rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 79 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5002,7 +5002,11 @@ - const/4 v13, 0x0 +@@ -5183,7 +5183,11 @@ + const/4 v12, 0x0 - .line 230 -- invoke-static {v13, v6, v4, v14, v11}, Lcom/tidal/android/feature/playerscreen/ui/composables/h1;->a(Landroidx/compose/ui/Modifier;Lem0/a;ZLandroidx/compose/runtime/Composer;I)V -+ const v13, 0x52414448 # empty group key + .line 259 +- invoke-static {v7, v8, v4, v15, v12}, Lcom/tidal/android/feature/playerscreen/ui/composables/k1;->a(Landroidx/compose/ui/Modifier;Lam0/a;ZLandroidx/compose/runtime/Composer;I)V ++ const v7, 0x52414448 # empty group key + -+ invoke-interface {v14, v13}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty ++ invoke-interface {v15, v7}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty + -+ invoke-interface {v14}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty ++ invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty - .line 231 - invoke-interface {v14}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V -@@ -5791,6 +5795,22 @@ + .line 260 + invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V +@@ -5967,6 +5971,22 @@ - invoke-static {v15, v7, v8, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/i3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V + invoke-static {v4, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/s3;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V -+ new-instance v74, Lcom/tidal/android/feature/playerscreen/ui/u0; # lyrics toggle lambda ++ new-instance v74, Landroidx/window/embedding/a2; # lyrics toggle lambda + -+ move-object/from16 v75, p5 # action dispatcher ++ move-object/from16 v75, p2 # action dispatcher + -+ const/16 v76, 0x0 # lyrics action disc ++ const/16 v76, 0x1 # lyrics action disc + -+ invoke-direct/range {v74 .. v76}, Lcom/tidal/android/feature/playerscreen/ui/u0;->(Ljava/lang/Object;I)V # build lambda ++ invoke-direct/range {v74 .. v76}, Landroidx/window/embedding/a2;->(Ljava/lang/Object;I)V # build lambda + + const/16 v71, 0x0 # changed flags + @@ -32,8 +32,8 @@ + + const/16 v73, 0x0 # null modifier + -+ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V # render sparkle button ++ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # render sparkle button + - .line 336 - iget-object v3, v10, Lcom/tidal/android/feature/playerscreen/ui/s$a;->l:Lcom/tidal/android/feature/playerscreen/ui/p; + .line 365 + iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; diff --git a/patches/lyrics-replace-share-button.patch b/patches/lyrics-replace-share-button.patch index eaf92e6..8b7e92d 100644 --- a/patches/lyrics-replace-share-button.patch +++ b/patches/lyrics-replace-share-button.patch @@ -1,46 +1,46 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5155,7 +5155,11 @@ - const/4 v13, 0x0 +@@ -5328,7 +5328,11 @@ + const/4 v12, 0x0 - .line 251 -- invoke-static {v6, v10, v13, v14, v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lem0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V -+ const v13, 0x52414244 # empty group key + .line 280 +- invoke-static {v8, v6, v12, v15, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V ++ const v3, 0x52414244 # empty group key + -+ invoke-interface {v14, v13}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty ++ invoke-interface {v15, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty + -+ invoke-interface {v14}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty ++ invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty - .line 252 - invoke-interface {v14}, Landroidx/compose/runtime/Composer;->endNode()V -@@ -5978,11 +5982,11 @@ - .line 356 - :cond_59 - :goto_29 -- new-instance v0, Lcom/tidal/android/feature/playerscreen/ui/i0; -+ new-instance v0, Lcom/squareup/ui/market/modal/o; # connect click lambda (was share i0) + .line 281 + invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endNode()V +@@ -6156,11 +6160,11 @@ + .line 385 + :cond_61 + :goto_2e +- new-instance v1, Lcom/tidal/android/feature/playerscreen/ui/e0; ++ new-instance v1, Landroidx/window/embedding/b2; # connect click lambda (was share e0) -- const/4 v15, 0x0 -+ const/4 v15, 0x1 # connect-clicked disc +- const/4 v6, 0x0 ++ const/4 v6, 0x1 # connect-clicked disc -- invoke-direct {v0, v11, v15}, Lcom/tidal/android/feature/playerscreen/ui/i0;->(Ljava/lang/Object;I)V -+ invoke-direct {v0, v11, v15}, Lcom/squareup/ui/market/modal/o;->(Ljava/lang/Object;I)V # build connect lambda +- invoke-direct {v1, v10, v6}, Lcom/tidal/android/feature/playerscreen/ui/e0;->(Ljava/lang/Object;I)V ++ invoke-direct {v1, v10, v6}, Landroidx/window/embedding/b2;->(Ljava/lang/Object;I)V # build connect lambda - .line 357 - invoke-interface {v7, v0}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V -@@ -5991,9 +5995,13 @@ - :goto_2a - check-cast v0, Lem0/a; + .line 386 + invoke-interface {v7, v1}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V +@@ -6169,9 +6173,13 @@ + :goto_2f + check-cast v1, Lam0/a; -- const/4 v8, 0x0 -+ iget-object v8, v10, Lcom/tidal/android/feature/playerscreen/ui/s$a;->d:Lcom/tidal/android/feature/playerscreen/ui/b; # broadcast state +- const/4 v3, 0x0 ++ iget-object v8, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->d:Lcom/tidal/android/feature/playerscreen/ui/b; # broadcast state + -+ const/4 v13, 0x0 # null modifier ++ const/4 v3, 0x0 # null modifier + -+ const/4 v15, 0x0 # changed flags ++ const/4 v6, 0x0 # changed flags -- invoke-static {v15, v7, v8, v0}, Lcom/tidal/android/feature/playerscreen/ui/composables/t4;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V -+ invoke-static {v8, v0, v13, v7, v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lem0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # render connect button +- invoke-static {v6, v1, v7, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/e5;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V ++ invoke-static {v8, v1, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # render connect button - if-ne v1, v2, :cond_5a + if-ne v0, v2, :cond_62 diff --git a/patches/lyrics-rl-api-observer.patch b/patches/lyrics-rl-api-observer.patch index 53d72ec..883b24b 100644 --- a/patches/lyrics-rl-api-observer.patch +++ b/patches/lyrics-rl-api-observer.patch @@ -1,8 +1,7 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a.smali -@@ -190,7 +190,14 @@ - goto :goto_0 - +@@ -191,6 +191,13 @@ + .line 67 :cond_3 + sget-boolean v6, Lradiant/RLAPILyricsHook;->isRlState:Z # read RL flag @@ -13,5 +12,5 @@ + + :radiant_skip if-gez v4, :cond_4 - + .line 68 diff --git a/patches/lyrics-rl-api.patch b/patches/lyrics-rl-api.patch index 31f88df..719f7e9 100644 --- a/patches/lyrics-rl-api.patch +++ b/patches/lyrics-rl-api.patch @@ -1,6 +1,6 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1291,6 +1291,8 @@ +@@ -1374,6 +1374,8 @@ .line 105 check-cast v1, Lcom/aspiro/wamp/model/Track; @@ -9,58 +9,58 @@ .line 106 .line 107 invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I -@@ -1564,7 +1566,7 @@ - .line 235 - .line 236 - .line 237 -- if-nez v9, :cond_a -+ goto :cond_a # RL: skip TIDAL O=false in the has-lyrics path - - .line 238 +@@ -1655,7 +1657,7 @@ .line 239 -@@ -2256,7 +2258,10 @@ + .line 240 + .line 241 +- if-nez v9, :cond_a ++ goto :cond_a # skip TIDAL P=false in the has-lyrics path (for some reason) - .line 568 + .line 242 + .line 243 +@@ -2347,7 +2349,10 @@ + + .line 572 :goto_c + sget-boolean v5, Lradiant/RLAPILyricsHook;->isRlState:Z + if-nez v5, :rl_keep_n2 # RL active -> keep worker content invoke-interface {v9, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_n2 - .line 569 - .line 570 -@@ -2305,7 +2310,10 @@ + .line 573 + .line 574 +@@ -2396,7 +2401,10 @@ - .line 591 - .line 592 + .line 595 + .line 596 + sget-boolean v7, Lradiant/RLAPILyricsHook;->isRlState:Z + if-nez v7, :rl_keep_o # RL active -> keep view-open flag invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_o - .line 593 - .line 594 -@@ -2334,7 +2342,10 @@ + .line 597 + .line 598 +@@ -2425,7 +2433,10 @@ - .line 606 - .line 607 + .line 610 + .line 611 + sget-boolean v7, Lradiant/RLAPILyricsHook;->isRlState:Z + if-nez v7, :rl_keep_n # RL active -> keep worker content invoke-interface {v1, v6}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_n - .line 608 - .line 609 + .line 612 + .line 613 --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali -@@ -2202,6 +2202,10 @@ - .line 1011 - .line 1012 - move-result v31 -+ sget-boolean v5, Lradiant/RLAPILyricsHook;->isRlState:Z -+ if-eqz v5, :rl_hl_done # not RL -> use TIDAL's hasLyrics -+ const/16 v31, 0x1 # RL lyrics active -> force hasLyrics so the sparkle stays +@@ -2256,6 +2256,10 @@ + .line 1040 + .line 1041 + move-result v34 ++ sget-boolean v4, Lradiant/RLAPILyricsHook;->isRlState:Z ++ if-eqz v4, :rl_hl_done # not RL = use TIDAL's hasLyrics ++ const/16 v34, 0x1 # RL lyrics active = force hasLyrics so the sparkle stays + :rl_hl_done - .line 1013 - iget-object v5, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; + .line 1042 + iget-object v4, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; diff --git a/patches/lyrics-sparkle-conditional-visibility.patch b/patches/lyrics-sparkle-conditional-visibility.patch index df76608..3d32e90 100644 --- a/patches/lyrics-sparkle-conditional-visibility.patch +++ b/patches/lyrics-sparkle-conditional-visibility.patch @@ -1,37 +1,37 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5795,6 +5795,14 @@ +@@ -5971,6 +5971,14 @@ - invoke-static {v15, v7, v8, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/i3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V + invoke-static {v4, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/s3;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V -+ iget-boolean v2, v10, Lcom/tidal/android/feature/playerscreen/ui/s$a;->i:Z # hasLyrics flag ++ iget-boolean v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->i:Z # hasLyrics flag + -+ if-eqz v2, :cond_sparkle_no_lyrics # branch when no lyrics ++ if-eqz v3, :cond_sparkle_no_lyrics # branch when no lyrics + -+ const v2, 0x30551b59 # group key (lyrics) ++ const v3, 0x30551b59 # group key (lyrics) + -+ invoke-interface {v7, v2}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open lyrics branch ++ invoke-interface {v7, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open lyrics branch + - new-instance v74, Lcom/tidal/android/feature/playerscreen/ui/u0; # lyrics toggle lambda + new-instance v74, Landroidx/window/embedding/a2; # lyrics toggle lambda - move-object/from16 v75, p5 # action dispatcher -@@ -5811,6 +5819,19 @@ + move-object/from16 v75, p2 # action dispatcher +@@ -5987,6 +5995,19 @@ - invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lem0/a;)V # render sparkle button + invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # render sparkle button + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close lyrics branch + + goto :goto_sparkle_done # skip empty branch + + :cond_sparkle_no_lyrics # no-lyrics branch -+ const v2, 0x3057f75c # group key (no lyrics) ++ const v3, 0x3057f75c # group key (no lyrics) + -+ invoke-interface {v7, v2}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty ++ invoke-interface {v7, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty + + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty + + :goto_sparkle_done # join target + - .line 336 - iget-object v3, v10, Lcom/tidal/android/feature/playerscreen/ui/s$a;->l:Lcom/tidal/android/feature/playerscreen/ui/p; + .line 365 + iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; diff --git a/patches/manifest.json b/patches/manifest.json index 865d806..25357e9 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -21,6 +21,8 @@ "LyricsKeepControlsVisible", "PlayerBackdrop", "QualityBadgeColors", + "PlayerMovePlayingFrom", + "PlayerOneHanded", "LyricsProgressPill", "MiniPlayerRedesign" ] @@ -39,49 +41,37 @@ { "id": "PlayerBackdrop", "order": 30, - "fileNames": [ - "player-backdrop.patch" - ], + "fileNames": [], "title": "Player Backdrop", - "description": "Restores the legacy translucent backdrop blur behind the player", + "description": "Lets you fully adjust how the player backdrop blur looks and behaves", "default": true, + "defaultVariantIndex": 2, + "variants": [ + { + "title": "Static", + "fileNames": [ + "player-backdrop-static.patch" + ] + }, + { + "title": "Animated", + "fileNames": [ + "player-backdrop-animated.patch" + ] + }, + { + "title": "Playback", + "fileNames": [ + "player-backdrop-playback.patch" + ] + } + ], "advancedOptions": [ - { - "type": "slider", - "key": "blur_strength", - "title": "Blur Strength", - "description": "How strongly the album art behind the player is blurred", - "default": 50, - "min": 0, - "max": 100, - "steps": 19, - "displayAsPercent": true, - "token": "RL_BLUR_BITS", - "encode": { - "kind": "floatBits", - "scale": 1.8 - } - }, - { - "type": "slider", - "key": "dimming", - "title": "Backdrop Dimming", - "description": "Darkens the backdrop so the foreground controls stay legible", - "default": 50, - "min": 0, - "max": 100, - "steps": 19, - "displayAsPercent": true, - "token": "RL_SCRIM_ARGB", - "encode": { - "kind": "argbAlpha" - } - }, { "type": "toggle", "key": "cover_everywhere", "title": "Cover Everywhere - WIP", - "description": "Applies the blurred backdrop to every Compose based page (Home & Collection)", + "description": "Applies TIDAL's native blurred album-art backdrop to every Compose based page (Home & Collection)", "default": false, "inline": true, "fileNames": [ @@ -283,7 +273,7 @@ "radiant/MiniPlayerTrackGestures$OffsetLayer.smali", "radiant/MiniPlayerTrackGestures$ResetAnimator.smali", "radiant/MiniPlayerTrackGestures$TextDraw.smali", - "com/tidal/android/feature/appscaffold/ui/s$c.smali" + "com/tidal/android/feature/appscaffold/ui/r$c.smali" ] } ] diff --git a/patches/mini-player-black.patch b/patches/mini-player-black.patch index f73c699..16b5d88 100644 --- a/patches/mini-player-black.patch +++ b/patches/mini-player-black.patch @@ -68,7 +68,7 @@ @@ -2487,6 +2495,10 @@ - invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lem0/p;)V + invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lam0/p;)V + const/4 v8, 0x0 # composer $changed flags + diff --git a/patches/mini-player-dynamic-bg.patch b/patches/mini-player-dynamic-bg.patch index e805167..6565961 100644 --- a/patches/mini-player-dynamic-bg.patch +++ b/patches/mini-player-dynamic-bg.patch @@ -15,41 +15,41 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1063,6 +1063,10 @@ +@@ -1146,6 +1146,10 @@ - iput-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->V:Lkotlinx/coroutines/flow/StateFlow; + iput-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->W:Lkotlinx/coroutines/flow/StateFlow; -+ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlin/i; ++ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->Q:Lkotlin/i; + + invoke-interface {v1}, Lkotlin/i;->getValue()Ljava/lang/Object; # init player bg color + return-void .end method -@@ -1620,6 +1624,8 @@ +@@ -1711,6 +1715,8 @@ :goto_6 invoke-interface {v9, v10}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v10}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # store player bg hex + - .line 263 - .line 264 - .line 265 -@@ -2319,6 +2325,8 @@ - .line 598 + .line 267 + .line 268 + .line 269 +@@ -2410,6 +2416,8 @@ + .line 602 invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v5}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # clear bg color + - .line 599 - .line 600 - .line 601 -@@ -2536,6 +2544,8 @@ - .line 704 + .line 603 + .line 604 + .line 605 +@@ -2627,6 +2635,8 @@ + .line 708 invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v5}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # clear bg color + - .line 705 - .line 706 - .line 707 + .line 709 + .line 710 + .line 711 diff --git a/patches/mini-player-floating-border.patch b/patches/mini-player-floating-border.patch index b7f32b8..17782b3 100644 --- a/patches/mini-player-floating-border.patch +++ b/patches/mini-player-floating-border.patch @@ -6,10 +6,10 @@ + sget-object v5, Lradiant/MiniSeekerFloating;->INSTANCE:Lradiant/MiniSeekerFloating; # draw lambda + -+ invoke-static {v2, v5}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; # overlay perimeter stroke ++ invoke-static {v2, v5}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # overlay perimeter stroke + + move-result-object v2 # updated modifier + .line 153 - sget-object v3, Lkotlin/v;->a:Lkotlin/v; + sget-object v3, Lkotlin/u;->a:Lkotlin/u; diff --git a/patches/mini-player-gestures-left-right.patch b/patches/mini-player-gestures-left-right.patch index 460df9c..890ea5e 100644 --- a/patches/mini-player-gestures-left-right.patch +++ b/patches/mini-player-gestures-left-right.patch @@ -4,7 +4,7 @@ move-result-object v6 -+ invoke-static {v6, v1}, Lradiant/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lem0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener ++ invoke-static {v6, v1}, Lradiant/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener + + move-result-object v6 + @@ -13,38 +13,41 @@ @@ -1352,6 +1356,8 @@ .line 56 - iget-object v6, v0, Lcom/tidal/android/feature/appscaffold/ui/u;->b:Lcom/tidal/android/feature/appscaffold/ui/r; + iget-object v11, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->b:Lcom/tidal/android/feature/appscaffold/ui/q; -+ invoke-static {v6}, Lradiant/MiniPlayerTrackGestures;->onRenderedItem(Ljava/lang/Object;)V # reset stale drag offset if track metadata changes mid-gesture ++ invoke-static {v11}, Lradiant/MiniPlayerTrackGestures;->onRenderedItem(Ljava/lang/Object;)V # reset stale drag offset if track metadata changes mid-gesture + .line 57 invoke-virtual/range {v16 .. v16}, Lcom/squareup/ui/market/core/theme/MarketStylesheet;->getBorderRadii()Lcom/squareup/ui/market/core/theme/MarketStylesheet$b; -@@ -1388,6 +1394,10 @@ +@@ -1390,6 +1396,10 @@ - move-result-object v4 + move-result-object v6 -+ invoke-static {v4}, Lradiant/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move the whole cover container with horizontal swipe ++ invoke-static {v6}, Lradiant/MiniPlayerTrackGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move the whole cover container with horizontal swipe + -+ move-result-object v4 ++ move-result-object v6 + .line 63 - invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lg20/a; + invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; -@@ -1499,6 +1509,10 @@ +@@ -1501,6 +1511,10 @@ - move-result-object v4 + move-result-object v5 -+ invoke-static {v4}, Lradiant/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist ++ invoke-static {v5}, Lradiant/MiniPlayerTrackGestures;->textFeedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist + -+ move-result-object v4 ++ move-result-object v5 + .line 72 - invoke-virtual/range {v31 .. v31}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; + invoke-virtual/range {v32 .. v32}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; --- a/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali +++ b/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali -@@ -595,10 +595,10 @@ +@@ -512,16 +512,16 @@ + .line 110 + invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z + .line 111 .line 112 .line 113 @@ -57,11 +60,17 @@ .line 115 .line 116 -@@ -778,6 +778,28 @@ + invoke-interface {v3}, Lbi/e;->i()Z + + .line 117 +@@ -695,12 +695,34 @@ + .line 194 + :cond_e + return-void .line 195 :cond_f -+ sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/s$c;->a:Lcom/tidal/android/feature/appscaffold/ui/s$c; # our synthetic previous-track event ++ sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # our synthetic previous-track event + + invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z # is this the swipe-previous event? + @@ -69,7 +78,7 @@ + + if-eqz p1, :unknown_event + -+ invoke-interface {v3}, Ldi/e;->canSkipToPreviousOrRewind()Z ++ invoke-interface {v3}, Lbi/e;->canSkipToPreviousOrRewind()Z + + move-result p1 + @@ -77,32 +86,41 @@ + + const/4 p1, 0x0 + -+ invoke-interface {v3, p1}, Ldi/e;->h(Z)V # false = previous/rewind ++ invoke-interface {v3, p1}, Lbi/e;->h(Z)V # false = previous/rewind + + :previous_done + return-void + + :unknown_event - invoke-static {}, Lcoil/util/i;->a()V + invoke-static {}, Landroidx/navigation/f0;->a()V .line 196 ---- a/com/aspiro/wamp/util/m.smali -+++ b/com/aspiro/wamp/util/m.smali -@@ -61,6 +61,17 @@ + .line 197 + .line 198 + return-void +--- a/com/tidal/android/feature/appscaffold/ui/composable/g.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/g.smali +@@ -24,12 +24,23 @@ + + + # virtual methods + .method public final invoke()Ljava/lang/Object; + .locals 2 - .line 15 - :pswitch_0 + invoke-static {}, Lradiant/MiniPlayerTrackGestures;->consumeTapOpenSuppression()Z # skip open-player if a horizontal skip-swipe just happened + + move-result v0 + + if-eqz v0, :rl_continue_open + -+ sget-object v0, Lkotlin/v;->a:Lkotlin/v; ++ sget-object v0, Lkotlin/u;->a:Lkotlin/u; + + return-object v0 + + :rl_continue_open - iget-object v0, p0, Lcom/aspiro/wamp/util/m;->b:Ljava/lang/Object; + .line 1 + iget-object v0, p0, Lcom/tidal/android/feature/appscaffold/ui/composable/g;->a:Lam0/l; - .line 16 + .line 2 + .line 3 + sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; diff --git a/patches/mini-player-gestures.patch b/patches/mini-player-gestures.patch index f9cddf6..3ef5a8e 100644 --- a/patches/mini-player-gestures.patch +++ b/patches/mini-player-gestures.patch @@ -11,7 +11,7 @@ + + const/16 v51, __RL_MINI_PLAYER_SWIPE_UP_DRAG__ # Enable Drag option + -+ invoke-static/range {v49 .. v51}, Lradiant/MiniPlayerGestures;->configure(Lem0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet ++ invoke-static/range {v49 .. v51}, Lradiant/MiniPlayerGestures;->configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet + .line 69 invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/ProvidableCompositionLocal; @@ -20,9 +20,9 @@ +++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali @@ -712,6 +712,22 @@ - iget-object v3, v0, Lcom/tidal/android/feature/appscaffold/ui/u;->c:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; + iget-object v3, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->c:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; -+ iget-object v5, v0, Lcom/tidal/android/feature/appscaffold/ui/u;->a:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # currently rendered mini player media type ++ iget-object v5, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->a:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # currently rendered mini player media type + + sget-object v6, Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;->Unknown:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType; # Unknown = no media playing + @@ -52,27 +52,27 @@ .line 38 sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; -@@ -1388,6 +1408,10 @@ +@@ -1390,6 +1410,10 @@ - move-result-object v4 + move-result-object v6 -+ invoke-static {v4}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) ++ invoke-static {v6}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move cover (swipe up feedback) + -+ move-result-object v4 ++ move-result-object v6 + .line 63 - invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lg20/a; + invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; -@@ -1499,6 +1523,10 @@ +@@ -1501,6 +1525,10 @@ - move-result-object v4 + move-result-object v5 -+ invoke-static {v4}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist (swipe up feedback) ++ invoke-static {v5}, Lradiant/MiniPlayerGestures;->feedbackModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # move title/artist (swipe up feedback) + -+ move-result-object v4 ++ move-result-object v5 + .line 72 - invoke-virtual/range {v31 .. v31}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; + invoke-virtual/range {v32 .. v32}, Landroidx/compose/foundation/layout/Arrangement;->getTop()Landroidx/compose/foundation/layout/Arrangement$Vertical; --- a/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali +++ b/androidx/compose/material3/ModalBottomSheetKt$ModalBottomSheet$4$1.smali @@ -99,19 +99,25 @@ :goto_0 --- a/androidx/compose/material3/ModalBottomSheetKt.smali +++ b/androidx/compose/material3/ModalBottomSheetKt.smali -@@ -1291,6 +1291,12 @@ +@@ -1288,12 +1288,18 @@ + + .line 33 + invoke-interface {v5, v12}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V .line 34 :cond_47 + move-object v14, v12 # settle callback + -+ check-cast v14, Lem0/l; # to Function1 ++ check-cast v14, Lam0/l; # to Function1 + -+ invoke-static {v13, v14}, Lradiant/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lem0/l;)V # reuse native settle animation on release ++ invoke-static {v13, v14}, Lradiant/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # reuse native settle animation on release + move-object/from16 v32, v12 - check-cast v32, Lem0/l; + check-cast v32, Lam0/l; + + .line 35 + invoke-interface {v5}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; --- a/androidx/compose/material3/SheetDefaultsKt.smali +++ b/androidx/compose/material3/SheetDefaultsKt.smali @@ -98,7 +98,7 @@ diff --git a/patches/mini-player-grey.patch b/patches/mini-player-grey.patch index 0da17ae..17b887c 100644 --- a/patches/mini-player-grey.patch +++ b/patches/mini-player-grey.patch @@ -55,7 +55,7 @@ @@ -2487,6 +2489,10 @@ - invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lem0/p;)V + invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lam0/p;)V + const/4 v8, 0x0 # composer $changed flags + diff --git a/patches/player-backdrop-animated.patch b/patches/player-backdrop-animated.patch new file mode 100644 index 0000000..eb9245d --- /dev/null +++ b/patches/player-backdrop-animated.patch @@ -0,0 +1,30 @@ +--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali ++++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +@@ -4433,6 +4433,14 @@ + + move-object/from16 v25, v10 + ++ sget-object v16, Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;->DARK_BLUR:Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle; # RL: force native Blur player background ++ ++ const/16 v21, 0x1 # RL: isPlaying=true (Animated — always rotate) ++ ++ const/16 v22, 0x0 # RL: isSeeking=false (Animated — ignore scrub) ++ ++ invoke-static {}, Lradiant/HomeBackdrop;->setModeAnimated()V # RL: mirror rotation to Cover Everywhere ++ + .line 171 + invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + +--- a/com/tidal/android/core/ui/composable/c0.smali ++++ b/com/tidal/android/core/ui/composable/c0.smali +@@ -16,7 +16,9 @@ + move-result p0 + + .line 5 +- invoke-virtual {p2, p0}, Landroid/view/Window;->setNavigationBarColor(I)V ++ const/4 v3, 0x0 # RL: force transparent nav bar so the native blur backdrop shows through (was p0 = extracted BG color; luminance below still uses p0 for icon light/dark) ++ ++ invoke-virtual {p2, v3}, Landroid/view/Window;->setNavigationBarColor(I)V + + .line 6 + .line 7 diff --git a/patches/player-backdrop-playback.patch b/patches/player-backdrop-playback.patch new file mode 100644 index 0000000..34847ca --- /dev/null +++ b/patches/player-backdrop-playback.patch @@ -0,0 +1,26 @@ +--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali ++++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +@@ -4433,6 +4433,10 @@ + + move-object/from16 v25, v10 + ++ sget-object v16, Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;->DARK_BLUR:Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle; # RL: force native Blur player background ++ ++ invoke-static {}, Lradiant/HomeBackdrop;->setModePlayback()V # RL: mirror rotation to Cover Everywhere ++ + .line 171 + invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + +--- a/com/tidal/android/core/ui/composable/c0.smali ++++ b/com/tidal/android/core/ui/composable/c0.smali +@@ -16,7 +16,9 @@ + move-result p0 + + .line 5 +- invoke-virtual {p2, p0}, Landroid/view/Window;->setNavigationBarColor(I)V ++ const/4 v3, 0x0 # RL: force transparent nav bar so the native blur backdrop shows through (was p0 = extracted BG color; luminance below still uses p0 for icon light/dark) ++ ++ invoke-virtual {p2, v3}, Landroid/view/Window;->setNavigationBarColor(I)V + + .line 6 + .line 7 diff --git a/patches/player-backdrop-static.patch b/patches/player-backdrop-static.patch new file mode 100644 index 0000000..db71d80 --- /dev/null +++ b/patches/player-backdrop-static.patch @@ -0,0 +1,30 @@ +--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali ++++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +@@ -4433,6 +4433,14 @@ + + move-object/from16 v25, v10 + ++ sget-object v16, Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;->DARK_BLUR:Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle; # RL: force native Blur player background ++ ++ const/16 v21, 0x0 # RL: isPlaying=false (Static — no rotation) ++ ++ const/16 v22, 0x0 # RL: isSeeking=false (Static — no scrub rotation) ++ ++ invoke-static {}, Lradiant/HomeBackdrop;->setModeStatic()V # RL: mirror rotation to Cover Everywhere ++ + .line 171 + invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + +--- a/com/tidal/android/core/ui/composable/c0.smali ++++ b/com/tidal/android/core/ui/composable/c0.smali +@@ -16,7 +16,9 @@ + move-result p0 + + .line 5 +- invoke-virtual {p2, p0}, Landroid/view/Window;->setNavigationBarColor(I)V ++ const/4 v3, 0x0 # RL: force transparent nav bar so the native blur backdrop shows through (was p0 = extracted BG color; luminance below still uses p0 for icon light/dark) ++ ++ invoke-virtual {p2, v3}, Landroid/view/Window;->setNavigationBarColor(I)V + + .line 6 + .line 7 diff --git a/patches/player-backdrop.patch b/patches/player-backdrop.patch deleted file mode 100644 index d7b1948..0000000 --- a/patches/player-backdrop.patch +++ /dev/null @@ -1,175 +0,0 @@ -# rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 71 ---- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -+++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -4221,6 +4221,153 @@ - - invoke-static {v6, v3, v4}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lem0/p;)V - -+ move-object/from16 v57, v6 # capture live composer into free reg -+ -+ const v58, 0x52414449 # slot table key -+ -+ invoke-interface/range {v57 .. v58}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open group -+ -+ move-object/from16 v3, p3 # player state -+ -+ iget-object v3, v3, Lcom/tidal/android/feature/playerscreen/ui/s$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; # cover pager -+ -+ iget-object v4, v3, Lcom/tidal/android/feature/playerscreen/ui/d;->a:Lzn0/b; # item list -+ -+ iget v5, v3, Lcom/tidal/android/feature/playerscreen/ui/d;->b:I # current index -+ -+ invoke-interface {v4}, Ljava/util/List;->size()I # list size -+ -+ move-result v6 # size value -+ -+ if-le v6, v5, :radiant_skip # bounds check -+ -+ if-ltz v5, :radiant_skip # negative check -+ -+ invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object; # current item -+ -+ move-result-object v4 # current item -+ -+ instance-of v6, v4, Lcom/tidal/android/feature/playerscreen/ui/c$a; # still album cover? -+ -+ if-eqz v6, :radiant_try_animated # if not, try animated album cover -+ -+ check-cast v4, Lcom/tidal/android/feature/playerscreen/ui/c$a; # narrow type -+ -+ iget v5, v4, Lcom/tidal/android/feature/playerscreen/ui/c$a;->b:I # album id -+ -+ iget-object v4, v4, Lcom/tidal/android/feature/playerscreen/ui/c$a;->c:Ljava/lang/String; # cover uuid -+ -+ goto :radiant_have_cover # cover resolved -+ -+ :radiant_try_animated # animated album cover (c$b) shares albumId/cover layout -+ instance-of v6, v4, Lcom/tidal/android/feature/playerscreen/ui/c$b; # animated album cover? -+ -+ if-eqz v6, :radiant_skip # neither -> skip (music video / unknown) -+ -+ check-cast v4, Lcom/tidal/android/feature/playerscreen/ui/c$b; # narrow type -+ -+ iget v5, v4, Lcom/tidal/android/feature/playerscreen/ui/c$b;->b:I # album id -+ -+ iget-object v4, v4, Lcom/tidal/android/feature/playerscreen/ui/c$b;->c:Ljava/lang/String; # still cover uuid (blur this) -+ -+ :radiant_have_cover # v5 = album id, v4 = cover uuid -+ new-instance v6, Lcom/tidal/android/feature/playerscreen/ui/composables/o0; # cover request lambda -+ -+ invoke-direct {v6, v5, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/o0;->(ILjava/lang/String;)V # build request -+ -+ sget-object v5, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; # base modifier -+ -+ const/4 v7, 0x0 # fraction unused -+ -+ const/4 v8, 0x1 # default fraction -+ -+ const/4 v3, 0x0 # synthetic null -+ -+ invoke-static {v5, v7, v8, v3}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; # fill the player root -+ -+ move-result-object v5 # filled modifier -+ -+ const v7, __RL_BLUR_BITS__ # blur dp bits (Advanced Options: Blur Strength) -+ -+ invoke-static {v7}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F # to Dp -+ -+ move-result v7 # blur dp value -+ -+ sget-object v8, Landroidx/compose/ui/draw/BlurredEdgeTreatment;->Companion:Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion; # blur edge companion -+ -+ invoke-virtual {v8}, Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion;->getRectangle---Goahg()Landroidx/compose/ui/graphics/Shape; # rectangle treatment -+ -+ move-result-object v8 # edge shape -+ -+ invoke-static {v5, v7, v8}, Landroidx/compose/ui/draw/BlurKt;->blur-F8QBwvs(Landroidx/compose/ui/Modifier;FLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; # apply blur -+ -+ move-result-object v5 # blurred modifier -+ -+ sget-object v7, Landroidx/compose/ui/layout/ContentScale;->Companion:Landroidx/compose/ui/layout/ContentScale$Companion; # scale companion -+ -+ invoke-virtual {v7}, Landroidx/compose/ui/layout/ContentScale$Companion;->getCrop()Landroidx/compose/ui/layout/ContentScale; # cover-crop scaling -+ -+ move-result-object v7 # crop scale -+ -+ move-object/from16 v61, v6 # request -+ -+ const/16 v62, 0x0 # contentDescription -+ -+ move-object/from16 v63, v5 # blurred modifier -+ -+ const/16 v64, 0x0 # colorFilter -+ -+ move-object/from16 v65, v7 # contentScale -+ -+ move-object/from16 v66, v4 # cover uuid -+ -+ const/16 v67, 0x0 # null onError -+ -+ move-object/from16 v68, v57 # composer -+ -+ const/16 v69, 0x0 # changed flags -+ -+ const/16 v70, 0x48 # default mask -+ -+ invoke-static/range {v61 .. v70}, Lee0/e;->a(Lem0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lem0/a;Landroidx/compose/runtime/Composer;II)V # render blurred cover -+ -+ sget-object v3, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; # scrim chain start -+ -+ const/4 v4, 0x0 # fraction unused -+ -+ const/4 v5, 0x1 # default mask -+ -+ const/4 v6, 0x0 # null obj -+ -+ invoke-static {v3, v4, v5, v6}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; # fill screen -+ -+ move-result-object v3 # fullscreen modifier -+ -+ const v6, __RL_SCRIM_ARGB__ # scrim ARGB (Advanced Options: Backdrop Dimming) -+ -+ invoke-static {v6}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J # pack color long -+ -+ move-result-wide v6 # color long -+ -+ invoke-static {}, Landroidx/compose/ui/graphics/RectangleShapeKt;->getRectangleShape()Landroidx/compose/ui/graphics/Shape; # rect shape -+ -+ move-result-object v4 # rect shape -+ -+ invoke-static {v3, v6, v7, v4}, Landroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; # tint with scrim -+ -+ move-result-object v3 # tinted modifier -+ -+ move-object/from16 v58, v3 # scrim modifier -+ -+ move-object/from16 v59, v57 # composer -+ -+ const/16 v60, 0x0 # changed flags -+ -+ invoke-static/range {v58 .. v60}, Landroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # draw scrim -+ -+ :radiant_skip # skip target -+ invoke-interface/range {v57 .. v57}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group -+ - .line 142 - sget-object v3, Landroidx/compose/foundation/layout/BoxScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/BoxScopeInstance; - ---- a/com/tidal/android/core/ui/composable/z.smali -+++ b/com/tidal/android/core/ui/composable/z.smali -@@ -13,13 +13,15 @@ - .line 2 - .line 3 - .line 4 - move-result p0 - - .line 5 -- invoke-virtual {p2, p0}, Landroid/view/Window;->setNavigationBarColor(I)V -+ const/4 v3, 0x0 -+ -+ invoke-virtual {p2, v3}, Landroid/view/Window;->setNavigationBarColor(I)V # RL: force transparent nav bar so the player backdrop shows through (was p0 = TIDAL's extracted single-color BG). Luminance below still uses p0 so the light/dark icon choice adapts to the backdrop behind the now-transparent bar. - - .line 6 - .line 7 - .line 8 - sget p1, Landroid/os/Build$VERSION;->SDK_INT:I diff --git a/patches/player-favorite-heart.patch b/patches/player-favorite-heart.patch index 82f9548..fb577b6 100644 --- a/patches/player-favorite-heart.patch +++ b/patches/player-favorite-heart.patch @@ -1,24 +1,24 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/z0.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/z0.smali -@@ -91,7 +91,7 @@ +--- a/com/tidal/android/feature/playerscreen/ui/composables/c1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/c1.smali +@@ -300,7 +300,7 @@ - .line 32 - .line 33 -- sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_circle_checked:I -+ sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_filled_medium:I # favorited: filled heart (was circle-check) + .line 128 + .line 129 +- sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_circle_checked:I ++ sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_filled_medium:I # favorited: filled heart (was circle-check) - .line 34 - .line 35 -@@ -99,11 +99,7 @@ + .line 130 + .line 131 +@@ -308,11 +308,7 @@ - .line 36 - :cond_1 -- sget-object p2, Lb30/b;->O:Lb30/a; + .line 132 + :cond_5 +- sget-object v0, La30/b;->O:La30/a; - -- .line 37 -- .line 38 -- iget p2, p2, Lb30/a;->a:I -+ sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_medium:I # not favorited: outline heart (was market plus) +- .line 133 +- .line 134 +- iget v0, v0, La30/a;->a:I ++ sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_medium:I # not favorited: outline heart (was market plus) - .line 39 - .line 40 + .line 135 + .line 136 diff --git a/patches/player-hide-playing-from.patch b/patches/player-hide-playing-from.patch index f200073..f98bdb7 100644 --- a/patches/player-hide-playing-from.patch +++ b/patches/player-hide-playing-from.patch @@ -1,11 +1,11 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5794,6 +5794,8 @@ - .line 336 - iget-object v3, v10, Lcom/tidal/android/feature/playerscreen/ui/s$a;->l:Lcom/tidal/android/feature/playerscreen/ui/p; +@@ -5970,6 +5970,8 @@ + .line 365 + iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; + const/4 v3, 0x0 # Never show the "Playing from" source at the bottom (relocated above the title, or hidden when off) + - if-nez v3, :cond_52 + if-nez v3, :cond_5a const v3, 0x26ba353b diff --git a/patches/player-move-playing-from.patch b/patches/player-move-playing-from.patch index 1678363..b338736 100644 --- a/patches/player-move-playing-from.patch +++ b/patches/player-move-playing-from.patch @@ -1,66 +1,68 @@ -# rl-locals: com/tidal/android/feature/playerscreen/ui/composables/k2.smali a( 42 +# rl-locals: com/tidal/android/feature/playerscreen/ui/composables/n2.smali a( 45 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5023,6 +5023,20 @@ - - .line 233 - :goto_1d -+ iget-object v0, v3, Lcom/tidal/android/feature/playerscreen/ui/s$a;->l:Lcom/tidal/android/feature/playerscreen/ui/p; # RL move-playing-from: SourceLabel — published in BOTH cover & lyrics view (may be null) +@@ -5202,6 +5202,20 @@ + + .line 262 + :goto_21 ++ iget-object v7, v5, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; # RL move-playing-from: SourceLabel — published in BOTH cover & lyrics view (may be null) + -+ if-eqz v0, :rl_pf_null # no source -> clear ++ if-eqz v7, :rl_pf_null # no source -> clear + -+ iget-object v0, v0, Lcom/tidal/android/feature/playerscreen/ui/p;->a:Ljava/lang/String; # sourceName ++ iget-object v7, v7, Lcom/tidal/android/feature/playerscreen/ui/p;->a:Ljava/lang/String; # sourceName + + goto :rl_pf_set + + :rl_pf_null -+ const/4 v0, 0x0 ++ const/4 v7, 0x0 + + :rl_pf_set -+ sput-object v0, Lradiant/PlayingFrom;->a:Ljava/lang/String; # publish for k2 (rendered above the title) ++ sput-object v7, Lradiant/PlayingFrom;->a:Ljava/lang/String; # publish for n2 (rendered above the title) + - iget-object v0, v3, Lcom/tidal/android/feature/playerscreen/ui/s$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; - - .line 234 ---- a/com/tidal/android/feature/playerscreen/ui/composables/k2.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/k2.smali -@@ -632,6 +632,39 @@ - .line 42 - :cond_1c - check-cast v5, Lr20/c2; -+ sget-object v30, Lradiant/PlayingFrom;->a:Ljava/lang/String; # RL: published "Playing from" source name + iget-object v7, v5, Lcom/tidal/android/feature/playerscreen/ui/s$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; + + .line 263 +--- a/com/tidal/android/feature/playerscreen/ui/composables/n2.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/n2.smali +@@ -674,6 +674,41 @@ + :cond_1e + check-cast v3, Lq20/c2; + ++ move-object/from16 v33, v1 # RL: composer held stable for the conditional group + -+ const v13, 0x52414450 # RL group key (v13 is dead here; the title setup below resets it) ++ const v34, 0x52414450 # RL group key + -+ invoke-interface {v1, v13}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V ++ invoke-interface/range {v33 .. v34}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + -+ if-eqz v30, :rl_pf_skip # no source -> render nothing above the title ++ sget-object v34, Lradiant/PlayingFrom;->a:Ljava/lang/String; # RL: published "Playing from" source name + -+ sget-object v31, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; ++ if-eqz v34, :rl_pf_skip # no source -> render nothing above the title + -+ const/16 v32, 0x1 # maxLines = 1 ++ sget-object v35, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + -+ const/16 v33, 0x0 ++ const/16 v36, 0x1 # maxLines = 1 + -+ const/16 v34, 0x0 ++ const/16 v37, 0x0 + -+ const/16 v35, 0x0 -+ -+ const/16 v36, 0x0 -+ -+ move-object/from16 v37, v5 # reuse the artist PARAGRAPH_30 style (same colour + size as the artist names) -+ -+ move-object/from16 v38, v1 # composer ++ const/16 v38, 0x0 + + const/16 v39, 0x0 + -+ const/16 v40, 0x78 # default-arg mask (matches the artist MarketLabel.e call) ++ const/16 v40, 0x0 + -+ invoke-static/range {v30 .. v40}, Lcom/squareup/ui/market/components/MarketLabelKt;->e(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lem0/l;Lr20/c2;Landroidx/compose/runtime/Composer;II)V ++ move-object/from16 v41, v3 # reuse the artist PARAGRAPH_30 style (same colour + size) ++ ++ move-object/from16 v42, v1 # composer ++ ++ const/16 v43, 0x0 ++ ++ const/16 v44, 0x78 # default-arg mask (matches the artist MarketLabel.e call) ++ ++ invoke-static/range {v34 .. v44}, Lcom/squareup/ui/market/components/MarketLabelKt;->e(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lam0/l;Lq20/c2;Landroidx/compose/runtime/Composer;II)V + + :rl_pf_skip -+ invoke-interface {v1}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V ++ invoke-interface/range {v33 .. v33}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V + - .line 43 - sget-object v13, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + sget-object v17, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + diff --git a/patches/player-one-handed.patch b/patches/player-one-handed.patch index cb953ab..7e98231 100644 --- a/patches/player-one-handed.patch +++ b/patches/player-one-handed.patch @@ -1,9 +1,9 @@ # rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 80 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5579,6 +5579,20 @@ +@@ -5755,6 +5755,20 @@ - const/4 v9, 0x0 + const/4 v8, 0x0 + invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalLayoutDirection()Landroidx/compose/runtime/ProvidableCompositionLocal; # layout-direction local + @@ -19,15 +19,15 @@ + + invoke-interface/range {v76 .. v77}, Landroidx/compose/runtime/Composer;->startProvider(Landroidx/compose/runtime/ProvidedValue;)V # open Rtl scope (mirror row) + - .line 306 - invoke-static {v0, v9, v14, v8}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; + .line 335 + invoke-static {v1, v8, v14, v3}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; -@@ -6049,6 +6063,8 @@ - .line 364 +@@ -6221,6 +6235,8 @@ + .line 393 invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endNode()V + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endProvider()V # close Rtl scope (end mirror) + - .line 365 - invoke-static/range {v27 .. v27}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F + .line 394 + invoke-static/range {v41 .. v41}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F diff --git a/patches/player-quality-badge-colors.patch b/patches/player-quality-badge-colors.patch index d3a20f5..7e4a6f7 100644 --- a/patches/player-quality-badge-colors.patch +++ b/patches/player-quality-badge-colors.patch @@ -2,7 +2,7 @@ +++ b/com/tidal/android/feature/playerscreen/ui/composables/SeekbarAndTimeKt.smali @@ -372,6 +372,10 @@ .line 158 - sget v4, Lcom/tidal/android/feature/playerscreen/ui/composables/m4;->g:F + sget v4, Lcom/tidal/android/feature/playerscreen/ui/composables/t4;->g:F + const/high16 v11, 0x40000000 # 2.0f + @@ -30,7 +30,7 @@ + + move-object/from16 v3, p1 + -+ invoke-static {v13, v3}, Lradiant/QualityBadge;->style(ILr20/c2;)Lr20/c2; ++ invoke-static {v13, v3}, Lradiant/QualityBadge;->style(ILq20/c2;)Lq20/c2; + + move-result-object v8 + @@ -72,46 +72,46 @@ return-void --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali -@@ -1399,7 +1399,15 @@ - .line 634 - .line 635 - .line 636 -- move-result v9 -+ move-result v9 # isCurrentStreamHiResLosslessQuality() result +@@ -1452,7 +1452,15 @@ + .line 662 + .line 663 + .line 664 +- move-result v8 ++ move-result v8 # isCurrentStreamHiResLosslessQuality() result + + const/16 v31, 0x0 # LOW / HIGH quality + -+ if-eqz v9, :radiant_qbc_not_hires ++ if-eqz v8, :radiant_qbc_not_hires + + const/16 v31, 0x2 # HI_RES_LOSSLESS quality + + :radiant_qbc_not_hires - .line 637 - if-nez v9, :cond_1e -@@ -1411,7 +1419,13 @@ - .line 640 - .line 641 - .line 642 -- move-result v9 -+ move-result v9 # isCurrentStreamLossless() result + .line 665 + if-nez v8, :cond_1f +@@ -1464,7 +1472,13 @@ + .line 668 + .line 669 + .line 670 +- move-result v8 ++ move-result v8 # isCurrentStreamLossless() result + -+ if-eqz v9, :radiant_qbc_not_lossless ++ if-eqz v8, :radiant_qbc_not_lossless + + const/16 v31, 0x1 # LOSSLESS quality + + :radiant_qbc_not_lossless - .line 643 - if-eqz v9, :cond_1d -@@ -1740,7 +1754,9 @@ + .line 671 + if-eqz v8, :cond_1e +@@ -1793,7 +1807,9 @@ - .line 790 - .line 791 -- invoke-direct {v7, v5}, Lcom/tidal/android/feature/playerscreen/ui/i$a;->(Ljava/lang/String;)V + .line 818 + .line 819 +- invoke-direct {v5, v4}, Lcom/tidal/android/feature/playerscreen/ui/i$a;->(Ljava/lang/String;)V + move/from16 v9, v31 # quality + -+ invoke-direct {v7, v5, v9}, Lcom/tidal/android/feature/playerscreen/ui/i$a;->(Ljava/lang/String;I)V ++ invoke-direct {v5, v4, v9}, Lcom/tidal/android/feature/playerscreen/ui/i$a;->(Ljava/lang/String;I)V - .line 792 - .line 793 + .line 820 + .line 821 diff --git a/tidal-apk/com.aspiro.tidal_2.198.1-10002_4arch_4dpi_24lang_f4139250246bb04a45f240f47462e0bc_apkmirror.com.apkm b/tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm similarity index 82% rename from tidal-apk/com.aspiro.tidal_2.198.1-10002_4arch_4dpi_24lang_f4139250246bb04a45f240f47462e0bc_apkmirror.com.apkm rename to tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm index 815bb94..8e19155 100644 Binary files a/tidal-apk/com.aspiro.tidal_2.198.1-10002_4arch_4dpi_24lang_f4139250246bb04a45f240f47462e0bc_apkmirror.com.apkm and b/tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm differ