This commit is contained in:
2026-05-20 19:47:33 +10:00
commit dbb6302bd1
313 changed files with 17869 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
+++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
@@ -2966,7 +2966,7 @@
.end method
.method public static final e(ILandroidx/compose/runtime/Composer;Lcom/tidal/android/feature/playerscreen/ui/k;Lcom/tidal/android/feature/playerscreen/ui/r$a;Ltl0/a;Ltl0/l;Z)V
- .locals 61
+ .locals 89 # extra regs for blur + sparkle
.annotation build Landroidx/compose/runtime/Composable;
.end annotation
@@ -4164,6 +4164,103 @@
invoke-static {v5, v3, v4}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Ltl0/p;)V
+ const v3, 0x52414449 # group key for slot table
+
+ invoke-interface {v10, v3}, 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/r$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; # cover pager
+
+ iget-object v4, v3, Lcom/tidal/android/feature/playerscreen/ui/d;->a:Lon0/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
+
+ move-result v6
+
+ if-le v6, v5, :radiant_skip # index out of bounds -> skip
+
+ if-ltz v5, :radiant_skip
+
+ invoke-interface {v4, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
+
+ move-result-object v4
+
+ instance-of v6, v4, Lcom/tidal/android/feature/playerscreen/ui/c$a; # only album covers
+
+ if-eqz v6, :radiant_skip
+
+ check-cast v4, Lcom/tidal/android/feature/playerscreen/ui/c$a;
+
+ 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
+
+ new-instance v6, Lcom/tidal/android/feature/playerscreen/ui/composables/p0; # tidal's cover request
+
+ invoke-direct {v6, v5, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/p0;-><init>(ILjava/lang/String;)V
+
+ sget-object v5, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion;
+
+ const/4 v7, 0x0
+
+ const/4 v8, 0x1
+
+ const/4 v3, 0x0
+
+ 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
+
+ const/high16 v7, 0x42c00000 # 96f (blur radius dp)
+
+ invoke-static {v7}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
+
+ move-result v7
+
+ sget-object v8, Landroidx/compose/ui/draw/BlurredEdgeTreatment;->Companion:Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion;
+
+ invoke-virtual {v8}, Landroidx/compose/ui/draw/BlurredEdgeTreatment$Companion;->getRectangle---Goahg()Landroidx/compose/ui/graphics/Shape;
+
+ move-result-object v8
+
+ 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
+
+ sget-object v7, Landroidx/compose/ui/layout/ContentScale;->Companion:Landroidx/compose/ui/layout/ContentScale$Companion;
+
+ invoke-virtual {v7}, Landroidx/compose/ui/layout/ContentScale$Companion;->getCrop()Landroidx/compose/ui/layout/ContentScale; # cover-crop scaling
+
+ move-result-object v7
+
+ move-object/from16 v61, v6 # request
+
+ const/16 v62, 0x0 # contentDescription
+
+ move-object/from16 v63, v5 # modifier (blurred + fillMaxSize)
+
+ const/16 v64, 0x0 # colorFilter
+
+ move-object/from16 v65, v7 # contentScale
+
+ move-object/from16 v66, v4 # cover uuid
+
+ const/16 v67, 0x0
+
+ move-object/from16 v68, v10 # composer
+
+ const/16 v69, 0x0
+
+ const/16 v70, 0x48
+
+ invoke-static/range {v61 .. v70}, Lsd0/f;->a(Ltl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Ltl0/a;Landroidx/compose/runtime/Composer;II)V # render blurred cover
+
+ :radiant_skip
+ invoke-interface {v10}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group
+
.line 138
sget-object v3, Landroidx/compose/foundation/layout/BoxScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/BoxScopeInstance;
+5
View File
@@ -0,0 +1,5 @@
{
"tidalVersionCode": 9089,
"tidalApkUrl": "",
"patchesVersion": "0.5.0"
}
+39
View File
@@ -0,0 +1,39 @@
.class public final Lradiant/NoOp;
.super Ljava/lang/Object;
.implements Ltl0/a;
# static fields
.field public static final a:Lradiant/NoOp;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lradiant/NoOp;
invoke-direct {v0}, Lradiant/NoOp;-><init>()V
sput-object v0, Lradiant/NoOp;->a:Lradiant/NoOp;
return-void
.end method
.method private constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final invoke()Ljava/lang/Object;
.locals 1
sget-object v0, Lkotlin/u;->a:Lkotlin/u;
return-object v0
.end method
@@ -0,0 +1,200 @@
.class public final Lradiant/SparkleButton;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V
.locals 21
.annotation build Landroidx/compose/runtime/Composable;
.end annotation
.annotation build Landroidx/compose/runtime/ComposableTarget;
applier = "androidx.compose.ui.UiComposable"
.end annotation
move/from16 v0, p0
move-object/from16 v1, p3
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
const v2, 0x5c08c0ab
move-object/from16 v3, p1
invoke-interface {v3, v2}, Landroidx/compose/runtime/Composer;->startRestartGroup(I)Landroidx/compose/runtime/Composer;
move-result-object v11
and-int/lit8 v3, v0, 0x6
if-nez v3, :cond_1
invoke-interface {v11, v1}, Landroidx/compose/runtime/Composer;->changedInstance(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_0
const/4 v3, 0x4
goto :goto_0
:cond_0
const/4 v3, 0x2
:goto_0
or-int/2addr v3, v0
goto :goto_1
:cond_1
move v3, v0
:goto_1
or-int/lit8 v3, v3, 0x30
and-int/lit8 v4, v3, 0x13
const/16 v5, 0x12
const/4 v6, 0x0
if-eq v4, v5, :cond_2
const/4 v4, 0x1
goto :goto_2
:cond_2
move v4, v6
:goto_2
and-int/lit8 v5, v3, 0x1
invoke-interface {v11, v4, v5}, Landroidx/compose/runtime/Composer;->shouldExecute(ZI)Z
move-result v4
if-eqz v4, :cond_6
sget-object v14, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion;
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z
move-result v4
if-eqz v4, :cond_3
const/4 v4, -0x1
const-string v5, "radiant.SparkleButton"
invoke-static {v2, v3, v4, v5}, Landroidx/compose/runtime/ComposerKt;->traceEventStart(IIILjava/lang/String;)V
:cond_3
sget-object v2, Lcom/squareup/ui/market/core/theme/k;->e:Lcom/squareup/ui/market/core/theme/k$a;
const/4 v4, 0x6
invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/w;->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
invoke-interface {v11, v15}, Landroidx/compose/runtime/Composer;->changed(Ljava/lang/Object;)Z
move-result v2
invoke-interface {v11}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object;
move-result-object v4
if-nez v2, :cond_4
sget-object v2, Landroidx/compose/runtime/Composer;->Companion:Landroidx/compose/runtime/Composer$Companion;
invoke-virtual {v2}, Landroidx/compose/runtime/Composer$Companion;->getEmpty()Ljava/lang/Object;
move-result-object v2
if-ne v4, v2, :cond_5
:cond_4
sget-object v16, Lcom/squareup/ui/market/core/components/properties/IconButton$Size;->MEDIUM:Lcom/squareup/ui/market/core/components/properties/IconButton$Size;
sget-object v17, Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;->SECONDARY:Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;
const/16 v19, 0x4
const/16 v20, 0x0
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;)Ll20/v1;
move-result-object v4
invoke-interface {v11, v4}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V
:cond_5
move-object v9, v4
check-cast v9, Ll20/v1;
sget v2, Lcom/tidal/android/feature/playerscreen/ui/R$string;->lyrics:I
invoke-static {v2, v11, v6}, Landroidx/compose/ui/res/StringResources_androidKt;->stringResource(ILandroidx/compose/runtime/Composer;I)Ljava/lang/String;
move-result-object v2
move v4, v3
invoke-static {v14}, Lcom/tidal/android/feature/playerscreen/ui/composables/anim/BouncePressKt;->a(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;
move-result-object v3
new-instance v10, Lradiant/SparkleContent;
invoke-direct {v10}, Ljava/lang/Object;-><init>()V
and-int/lit8 v12, v4, 0xe
const/16 v13, 0xf8
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->c(Ltl0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Ltl0/a;Ljava/lang/String;Ll20/v1;Ltl0/p;Landroidx/compose/runtime/Composer;II)V
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z
move-result v2
if-eqz v2, :cond_7
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->traceEventEnd()V
goto :goto_3
:cond_6
invoke-interface {v11}, Landroidx/compose/runtime/Composer;->skipToGroupEnd()V
:cond_7
:goto_3
invoke-interface {v11}, Landroidx/compose/runtime/Composer;->endRestartGroup()Landroidx/compose/runtime/ScopeUpdateScope;
move-result-object v2
goto :cond_8
:cond_8
return-void
.end method
@@ -0,0 +1,58 @@
.class public final Lradiant/SparkleContent;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ltl0/p;
# virtual methods
.method public final invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.locals 3
check-cast p1, Landroidx/compose/runtime/Composer;
check-cast p2, Ljava/lang/Integer;
invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I
move-result p2
const v0, 0x7fdc5692
invoke-interface {p1, v0}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z
move-result v1
if-eqz v1, :cond_0
const/4 v1, -0x1
const-string v2, "radiant.SparkleContent.<anonymous>"
invoke-static {v0, p2, v1, v2}, Landroidx/compose/runtime/ComposerKt;->traceEventStart(IIILjava/lang/String;)V
:cond_0
const p2, 0x7f08051d
const/4 v0, 0x0
invoke-static {p2, p1, v0}, Landroidx/compose/ui/res/PainterResources_androidKt;->painterResource(ILandroidx/compose/runtime/Composer;I)Landroidx/compose/ui/graphics/painter/Painter;
move-result-object p2
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z
move-result v0
if-eqz v0, :cond_1
invoke-static {}, Landroidx/compose/runtime/ComposerKt;->traceEventEnd()V
:cond_1
invoke-interface {p1}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
return-object p2
.end method
@@ -0,0 +1,49 @@
.class public final Lradiant/SpvFactory;
.super Ljava/lang/Object;
.implements Ltl0/l;
# static fields
.field public static final a:Lradiant/SpvFactory;
# direct methods
.method static constructor <clinit>()V
.locals 1
new-instance v0, Lradiant/SpvFactory;
invoke-direct {v0}, Lradiant/SpvFactory;-><init>()V
sput-object v0, Lradiant/SpvFactory;->a:Lradiant/SpvFactory;
return-void
.end method
.method private constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final invoke(Ljava/lang/Object;)Ljava/lang/Object;
.locals 2
check-cast p1, Landroid/content/Context;
new-instance v0, Lcom/aspiro/wamp/nowplaying/widgets/secondaryProgressView/SecondaryProgressView;
const/4 v1, 0x0
invoke-direct {v0, p1, v1}, Lcom/aspiro/wamp/nowplaying/widgets/secondaryProgressView/SecondaryProgressView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/view/View;->setClickable(Z)V
return-object v0
.end method
+30
View File
@@ -0,0 +1,30 @@
--- a/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali
+++ b/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali
@@ -110,16 +110,18 @@
.line 36
move-result-wide v6
- .line 37
- sget-object v5, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->b:[F
+ add-int/lit8 v8, v3, -0xa # i - 10 (10 = active line index)
- .line 38
- .line 39
- rsub-int/lit8 v8, v3, 0xa
-
- .line 40
- .line 41
- aget v8, v5, v8
+ if-nez v8, :radiant_alpha_zero # not active line -> hide
+
+ const/high16 v8, 0x3f800000 # alpha 1.0 (visible)
+
+ goto :radiant_alpha_done
+
+ :radiant_alpha_zero
+ const/4 v8, 0x0 # alpha 0.0 (hidden)
+
+ :radiant_alpha_done
.line 42
.line 43
+26
View File
@@ -0,0 +1,26 @@
--- a/com/tidal/android/feature/playerscreen/ui/g0.smali
+++ b/com/tidal/android/feature/playerscreen/ui/g0.smali
@@ -666,8 +666,23 @@
move-object v5, v1
.line 288
+ const v1, 0x52414443 # group key
+
+ 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/g0;->b:Lcom/tidal/android/feature/playerscreen/ui/r$a; # player state
+
+ iget-object v1, v1, Lcom/tidal/android/feature/playerscreen/ui/r$a;->j:Lcom/tidal/android/feature/playerscreen/ui/g; # current view mode
+
+ instance-of v1, v1, Lcom/tidal/android/feature/playerscreen/ui/g$a; # only render when on cover mode
+
+ 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;Ltl0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V
+ :radiant_after_cover
+ invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group
+
.line 289
.line 290
.line 291
+11
View File
@@ -0,0 +1,11 @@
--- a/com/tidal/android/feature/playerscreen/ui/composables/k1.smali
+++ b/com/tidal/android/feature/playerscreen/ui/composables/k1.smali
@@ -64,7 +64,7 @@
.line 16
.line 17
- iget v2, p0, Lcom/tidal/android/feature/playerscreen/ui/composables/k1;->a:F
+ const/high16 v2, 0x43480000 # hardcode top fade region to 200dp (decouple from contentPadding)
.line 18
.line 19
+64
View File
@@ -0,0 +1,64 @@
--- a/com/tidal/android/feature/playerscreen/ui/b0.smali
+++ b/com/tidal/android/feature/playerscreen/ui/b0.smali
@@ -45,7 +45,7 @@
# virtual methods
.method public final invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- .locals 17
+ .locals 26 # extra regs for the pill AndroidView call
.line 1
move-object/from16 v0, p0
@@ -460,6 +460,52 @@
.line 200
invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->a(Lcom/tidal/android/feature/playerscreen/ui/g;Ltl0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Ltl0/l;Landroidx/compose/runtime/Composer;II)V
+ sget-object v17, Lradiant/SpvFactory;->a:Lradiant/SpvFactory; # factory that builds the legacy progress view
+
+ sget-object v18, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion;
+
+ const/16 v19, 0x0
+
+ const/16 v20, 0x0
+
+ const/16 v21, 0x0
+
+ sget-object v22, Lradiant/NoOp;->a:Lradiant/NoOp; # swallow taps so lyrics behind don't trigger
+
+ const/16 v23, 0xe
+
+ const/16 v24, 0x0
+
+ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Ltl0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier;
+
+ move-result-object v23
+
+ const/high16 v24, 0x41800000 # 16f (horizontal padding dp)
+
+ invoke-static/range {v24 .. v24}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
+
+ move-result v24
+
+ const/high16 v25, 0x42a00000 # 80f (vertical padding dp)
+
+ invoke-static/range {v25 .. v25}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
+
+ move-result v25
+
+ invoke-static/range {v23 .. v25}, Landroidx/compose/foundation/layout/PaddingKt;->padding-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;
+
+ move-result-object v18
+
+ const/16 v19, 0x0
+
+ move-object/from16 v20, v7 # composer
+
+ const/16 v21, 0x0
+
+ const/16 v22, 0x4
+
+ invoke-static/range {v17 .. v22}, Landroidx/compose/ui/viewinterop/AndroidView_androidKt;->AndroidView(Ltl0/l;Landroidx/compose/ui/Modifier;Ltl0/l;Landroidx/compose/runtime/Composer;II)V # mount the progress pill on top of the lyrics
+
.line 201
.line 202
.line 203
+38
View File
@@ -0,0 +1,38 @@
--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
+++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
@@ -4931,7 +4931,11 @@
const/4 v10, 0x0
.line 226
- invoke-static {v10, v9, v4, v2, v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/h1;->a(Landroidx/compose/ui/Modifier;Ltl0/a;ZLandroidx/compose/runtime/Composer;I)V
+ const v10, 0x52414448 # empty group replaces removed top-right lyrics pill
+
+ invoke-interface {v2, v10}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V
+
+ invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
.line 227
invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
@@ -5707,6 +5707,22 @@
:cond_51
check-cast v4, Ltl0/a;
+ new-instance v74, Lc8/j; # build lyrics-toggle lambda (same one h1 used)
+
+ move-object/from16 v75, p5
+
+ const/16 v76, 0x1 # discriminator 1 = lyrics action
+
+ invoke-direct/range {v74 .. v76}, Lc8/j;-><init>(Ljava/lang/Object;I)V
+
+ const/16 v71, 0x0 # $$changed flags
+
+ move-object/from16 v72, v7 # composer
+
+ const/16 v73, 0x0 # modifier (null -> Companion)
+
+ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V # render bottom-left sparkle
+
const/4 v2, 0x0
invoke-static {v13, v7, v2, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/h3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V