package Ġcom . next gen broadcast . mobile . tv android . services Guide . decorator Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . next gen broadcast . mobile . tv android . services Guide . Service Guide Adapter Ċ import Ġcom . next gen broadcast . mobile . tv android . services Guide . items . Guide Data Item Ċ import Ġcom . next gen broadcast . mobile . tv android . services Guide . items . IG u ide Item Ċ Ċ class ĠCurrent Time Indicator ( ĊĠĠĠ Ġindicator Color : ĠInt , ĊĠĠĠ Ġindicator Width : ĠFloat , ĊĠĠĠ Ġprivate Ġval Ġtimeline Step : ĠInt Ċ ) Ġ: ĠRecyclerView . Item Decoration () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpaint Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor Ġ= Ġindicator Color ĊĠĠĠĠĠĠĠ ĠstrokeWidth Ġ= Ġindicator Width ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Draw Over ( canvas : ĠCanvas , Ġparent : ĠRecyclerView , Ġstate : ĠRecyclerView . State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġparent . adapter Ġas ? ĠService Guide Adapter Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval ĠcurrentTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġval Ġinterval Position Ġ= Ġadapter . find Position Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . type Ġ== ĠI Guide Item . TYPE _ DATA Ġ&& Ġwith ( item Ġas ĠGuide Data Item ) Ġ{ ĠcurrentTime Ġin ĠstartTime .. endTime Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( interval Position Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( adapter . getItem ( interval Position ) Ġas ? ĠGuide Data Item )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercent Ġ= Ġ( currentTime Ġ- Ġit . range StartTime ) Ġ/ Ġ( timeline Step . toFloat () Ġ* Ġit . size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . find ViewHolder For Adapter Position ( interval Position )?. item View ?. let Ġ{ Ġtime View Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . save () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset X Ġ= Ġtime View . x Ġ+ Ġtime View . width Ġ* Ġpercent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġparent . top . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Y Ġ= Ġparent . bottom . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Line ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset X , Ġstart Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset X , Ġstop Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparent . post Invalidate Delayed ( 1 0 0 0 ) ĊĠĠĠ Ġ} Ċ }