Files
rl-mobile/patches/extension/radiant/MiniSeekerLine.smali
T

201 lines
6.3 KiB
Smali

.class public final Lradiant/MiniSeekerLine;
.super Ljava/lang/Object;
# static fields
.field public static progressState:Landroidx/compose/runtime/MutableFloatState;
.field public static volatile vm:Ljh/h;
.field public static volatile sub:Lio/reactivex/disposables/Disposable;
# direct methods
.method static constructor <clinit>()V
.locals 1
const/4 v0, 0x0 # initial progress
invoke-static {v0}, Landroidx/compose/runtime/PrimitiveSnapshotStateKt;->mutableFloatStateOf(F)Landroidx/compose/runtime/MutableFloatState; # state holder
move-result-object v0 # state instance
sput-object v0, Lradiant/MiniSeekerLine;->progressState:Landroidx/compose/runtime/MutableFloatState; # publish state
return-void
.end method
.method private constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static dlog(Ljava/lang/String;)V
.locals 1
const-string v0, "RLProgressLine" # log tag
invoke-static {v0, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I # info log
return-void
.end method
.method public static start()V
.locals 3
sget-object v0, Lradiant/MiniSeekerLine;->sub:Lio/reactivex/disposables/Disposable; # current sub
if-eqz v0, :start_block # only run once
return-void
:start_block
:try_start
sget-object v0, Lradiant/MiniSeekerLine;->vm:Ljh/h; # cached vm
if-nez v0, :got_vm # reuse if present
invoke-static {}, Lcom/aspiro/wamp/App$a;->a()Lcom/aspiro/wamp/App; # app singleton
move-result-object v0 # app
invoke-virtual {v0}, Lcom/aspiro/wamp/App;->e()Lf5/c; # dagger component
move-result-object v0 # component
check-cast v0, Lf5/d0$n2; # narrow type
iget-object v0, v0, Lf5/d0$n2;->z0:Ldagger/internal/j; # playqueue provider
invoke-interface {v0}, Lol0/a;->get()Ljava/lang/Object; # resolve
move-result-object v0 # playqueue
check-cast v0, Lcom/aspiro/wamp/playqueue/z0; # narrow type
new-instance v1, Ljh/h; # build vm
invoke-direct {v1, v0}, Ljh/h;-><init>(Lcom/aspiro/wamp/playqueue/z0;)V # ctor
sput-object v1, Lradiant/MiniSeekerLine;->vm:Ljh/h; # cache
:got_vm
sget-object v0, Lradiant/MiniSeekerLine;->vm:Ljh/h; # vm ref
invoke-virtual {v0}, Ljh/h;->a()V # activate emission
iget-object v0, v0, Ljh/h;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject
invoke-static {}, Lio/reactivex/android/schedulers/AndroidSchedulers;->mainThread()Lio/reactivex/Scheduler; # main scheduler
move-result-object v1 # scheduler
invoke-virtual {v0, v1}, Lio/reactivex/Observable;->observeOn(Lio/reactivex/Scheduler;)Lio/reactivex/Observable; # observe main
move-result-object v0 # observable
new-instance v1, Lradiant/SeekerConsumer; # consumer
invoke-direct {v1}, Lradiant/SeekerConsumer;-><init>()V # ctor
invoke-virtual {v0, v1}, Lio/reactivex/Observable;->subscribe(Lio/reactivex/functions/Consumer;)Lio/reactivex/disposables/Disposable; # subscribe
move-result-object v0 # disposable
sput-object v0, Lradiant/MiniSeekerLine;->sub:Lio/reactivex/disposables/Disposable; # cache
const-string v0, "started" # log msg
invoke-static {v0}, Lradiant/MiniSeekerLine;->dlog(Ljava/lang/String;)V # info log
return-void
:try_end
.catch Ljava/lang/Throwable; {:try_start .. :try_end} :swallow
:swallow
move-exception v0 # error
const-string v1, "start failed" # log msg
invoke-static {v1}, Lradiant/MiniSeekerLine;->dlog(Ljava/lang/String;)V # info log
return-void
.end method
.method public static render(Landroidx/compose/runtime/Composer;I)V
.locals 5
.annotation build Landroidx/compose/runtime/Composable;
.end annotation
invoke-static {}, Lradiant/MiniSeekerLine;->start()V # lazy subscribe
sget-object v0, Lradiant/MiniSeekerLine;->progressState:Landroidx/compose/runtime/MutableFloatState; # state
invoke-interface {v0}, Landroidx/compose/runtime/MutableFloatState;->getFloatValue()F # read tracked
move-result v0 # raw progress
const/4 v1, 0x0 # lower bound
invoke-static {v0, v1}, Ljava/lang/Math;->max(FF)F # clamp low
move-result v0 # clamped low
const/high16 v1, 0x3f800000 # 1.0f upper
invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F # clamp high
move-result v0 # final progress
const v1, 0x52414c49 # 'RALI' slot key
invoke-interface {p0, v1}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open group
sget-object v1, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; # base modifier
invoke-static {v1, v0}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier; # width fraction
move-result-object v0 # filled modifier
const/4 v1, 0x2 # 2 dp
int-to-float v1, v1 # to float
invoke-static {v1}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F # box as Dp
move-result v1 # dp value
invoke-static {v0, v1}, Landroidx/compose/foundation/layout/SizeKt;->height-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier; # 2dp tall
move-result-object v0 # sized modifier
const v1, -0x1 # 0xFFFFFFFF white
invoke-static {v1}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J # pack color
move-result-wide v1 # color long
invoke-static {}, Landroidx/compose/ui/graphics/RectangleShapeKt;->getRectangleShape()Landroidx/compose/ui/graphics/Shape; # rect shape
move-result-object v3 # shape
invoke-static {v0, v1, v2, v3}, Landroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; # white bg
move-result-object v0 # final modifier
const/4 v1, 0x0 # composer $changed
invoke-static {v0, p0, v1}, Landroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # draw line
invoke-interface {p0}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group
return-void
.end method