Refactor Backdrop <3

This commit is contained in:
meowarex
2026-08-14 16:55:27 +00:00
parent 79ea2e512d
commit 5d8e52ce9f
12 changed files with 97 additions and 126 deletions
+35 -17
View File
@@ -34,12 +34,12 @@
.field private volatile coverToken:I
.field private volatile darkenBrightness:F
.field private volatile dithering:F
.field private lastFrameUptime:J
.field private volatile nextDarken:F
.field private volatile nextShader:Landroid/graphics/BitmapShader;
.field private final paint:Landroid/graphics/Paint;
@@ -50,6 +50,8 @@
.field private volatile playing:Z
.field private volatile prevDarken:F
.field private volatile prevShader:Landroid/graphics/BitmapShader;
.field private volatile saturation:F
@@ -155,7 +157,9 @@
iput-object v1, p0, Ldev/kawarp/KawarpEngine;->paint:Landroid/graphics/Paint;
iput v0, p0, Ldev/kawarp/KawarpEngine;->darkenBrightness:F
iput v0, p0, Ldev/kawarp/KawarpEngine;->prevDarken:F
iput v0, p0, Ldev/kawarp/KawarpEngine;->nextDarken:F
iput v0, p0, Ldev/kawarp/KawarpEngine;->speedFactor:F
@@ -163,7 +167,7 @@
move-result v0
if-eqz v0, :cond_55
if-eqz v0, :cond_57
new-instance v0, Landroid/graphics/RuntimeShader;
@@ -175,7 +179,7 @@
return-void
:cond_55
:cond_57
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "KawarpEngine needs API 33+ (AGSL)"
@@ -738,11 +742,15 @@
iput-object v1, v0, Ldev/kawarp/KawarpEngine;->nextShader:Landroid/graphics/BitmapShader;
iget v1, v0, Ldev/kawarp/KawarpEngine;->nextDarken:F
iput v1, v0, Ldev/kawarp/KawarpEngine;->prevDarken:F
invoke-direct {v0, v12}, Ldev/kawarp/KawarpEngine;->brightnessFor(F)F
move-result v1
iput v1, v0, Ldev/kawarp/KawarpEngine;->darkenBrightness:F
iput v1, v0, Ldev/kawarp/KawarpEngine;->nextDarken:F
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
@@ -760,19 +768,19 @@
iget-object v0, p0, Ldev/kawarp/KawarpEngine;->nextShader:Landroid/graphics/BitmapShader;
if-eqz v0, :cond_ee
if-eqz v0, :cond_f5
const/4 v1, 0x0
cmpg-float v2, p2, v1
if-lez v2, :cond_ee
if-lez v2, :cond_f5
cmpg-float v2, p3, v1
if-gtz v2, :cond_f
goto/16 :goto_ee
goto/16 :goto_f5
:cond_f
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
@@ -976,17 +984,27 @@
invoke-virtual {v0, v1, v2}, Landroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;F)V
iget-object v0, p0, Ldev/kawarp/KawarpEngine;->shader:Landroid/graphics/RuntimeShader;
iget v0, p0, Ldev/kawarp/KawarpEngine;->prevDarken:F
iget v1, p0, Ldev/kawarp/KawarpEngine;->brightness:F
iget v1, p0, Ldev/kawarp/KawarpEngine;->nextDarken:F
iget v2, p0, Ldev/kawarp/KawarpEngine;->darkenBrightness:F
iget v2, p0, Ldev/kawarp/KawarpEngine;->prevDarken:F
mul-float/2addr v1, v2
sub-float/2addr v1, v2
const-string v2, "uBright"
mul-float/2addr v1, v6
invoke-virtual {v0, v2, v1}, Landroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;F)V
add-float/2addr v0, v1
iget-object v1, p0, Ldev/kawarp/KawarpEngine;->shader:Landroid/graphics/RuntimeShader;
iget v2, p0, Ldev/kawarp/KawarpEngine;->brightness:F
mul-float/2addr v2, v0
const-string v0, "uBright"
invoke-virtual {v1, v0, v2}, Landroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;F)V
iget-object v0, p0, Ldev/kawarp/KawarpEngine;->shader:Landroid/graphics/RuntimeShader;
@@ -1020,8 +1038,8 @@
return p1
:cond_ee
:goto_ee
:cond_f5
:goto_f5
const/4 p1, 0x0
return p1
+1 -25
View File
@@ -5,9 +5,6 @@
# static fields
.field public static volatile currentAlbumId:I
# 2 = Stock (TIDAL's blurred cover, follows live play state), 3 = Kawarp (AGSL shader)
.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;
@@ -38,10 +35,6 @@
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
@@ -73,16 +66,6 @@
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.<init>) whenever play state changes.
.method public static onPlayState(Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;)V
.locals 2
@@ -358,13 +341,7 @@
move-object v9, v1 # v9 = cover uuid
# v10 = isPlaying, mirrored from the Player Backdrop variant
sget v10, Lradiant/HomeBackdrop;->mode:I
const/4 v11, 0x2
if-ne v10, v11, :rl_mode_done
# v10 = isPlaying, straight from the live mini-player state (both modes follow it)
sget-object v10, Lradiant/HomeBackdrop;->isPlayingState:Landroidx/compose/runtime/MutableState;
invoke-interface {v10}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object;
@@ -377,7 +354,6 @@
move-result v10
:rl_mode_done
const/4 v11, 0x0 # v11 = isSeeking = false
const/4 v12, 0x0 # v12 = progress callback = null (unused while not seeking)
+13 -21
View File
@@ -22,7 +22,7 @@
.field private static frameScheduled:Z
.field private static final frameState:Landroidx/compose/runtime/MutableState;
.field private static final frameState:Landroidx/compose/runtime/MutableIntState;
.field private static frameTick:I
@@ -53,23 +53,19 @@
const/4 v0, 0x0
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
invoke-static {v0}, Landroidx/compose/runtime/SnapshotIntStateKt;->mutableIntStateOf(I)Landroidx/compose/runtime/MutableIntState;
move-result-object v1
const/4 v2, 0x0
const/4 v3, 0x2
invoke-static {v1, v2, v3, v2}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState;
move-result-object v1
sput-object v1, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableState;
sput-object v1, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableIntState;
sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-static {v1, v2, v3, v2}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState;
const/4 v2, 0x2
const/4 v3, 0x0
invoke-static {v1, v3, 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 v1
@@ -77,7 +73,7 @@
new-instance v1, Lradiant/Kawarp;
invoke-direct {v1, v2, v0}, Lradiant/Kawarp;-><init>(Ljava/lang/String;I)V
invoke-direct {v1, v3, v0}, Lradiant/Kawarp;-><init>(Ljava/lang/String;I)V
sput-object v1, Lradiant/Kawarp;->DRAW:Lradiant/Kawarp;
@@ -107,9 +103,9 @@
.method private static draw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V
.registers 6
sget-object v0, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableState;
sget-object v0, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableIntState;
invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object;
invoke-interface {v0}, Landroidx/compose/runtime/MutableIntState;->getIntValue()I
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
@@ -610,7 +606,7 @@
return-void
:cond_11
sget-object p1, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableState;
sget-object p1, Lradiant/Kawarp;->frameState:Landroidx/compose/runtime/MutableIntState;
sget p2, Lradiant/Kawarp;->frameTick:I
@@ -618,11 +614,7 @@
sput p2, Lradiant/Kawarp;->frameTick:I
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p2
invoke-interface {p1, p2}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V
invoke-interface {p1, p2}, Landroidx/compose/runtime/MutableIntState;->setIntValue(I)V
invoke-static {}, Lradiant/Kawarp;->schedule()V