package Ġkr . ac . g ach on . sw . saf eno ise cancel ing Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . we ar . tiles .* Ċ import Ġandroidx . we ar . tiles . Dimension Builders . dp Ċ import Ġandroidx . we ar . tiles . Dimension Builders . expand Ċ import Ġandroidx . we ar . tiles . Request Builders . Tile Request Ċ import Ġandroidx . we ar . tiles . Request Builders . Resources Request Ċ import Ġcom . google . android . gms . tasks . Task Ċ import Ġcom . google . android . gms . tasks . Tasks Ċ import Ġcom . google . android . gms . we arable .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . gu ava . future Ċ Ċ private Ġconst Ġval ĠRES O URCES _ VERSION Ġ= Ġ" 1 " Ċ private Ġconst Ġval ĠID _ IMAGE _ ENABLE Ġ= Ġ" img _ enable " Ċ private Ġconst Ġval ĠID _ IMAGE _ DISABLE Ġ= Ġ" img _ disable " Ċ private Ġconst Ġval ĠEVENT _ ON _ BTN Ġ= Ġ" event _ on " Ċ private Ġconst Ġval ĠEVENT _ OFF _ BTN Ġ= Ġ" event _ off " Ċ private Ġconst Ġval ĠBT N _ SIZE Ġ= Ġ 1 5 0 f Ċ Ċ class ĠSN CT ile Service : ĠTile Service () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġkey Ġ= Ġ" kr . ac . g ach on . sw . saf eno ise cancel ing . sn c enable " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdata Client : ĠData Client ĊĠĠĠ Ġprivate Ġval Ġservice Scope Ġ= ĠCor outine Scope ( Dispatch ers . IO ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Tile Request ( request Params : ĠTile Request ) Ġ= Ġservice Scope . future Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate ( request Params . state ?. last Clickable Id Ġ== ĠEVENT _ ON _ BTN ) ĊĊĠĠĠĠĠĠĠ ĠTile Builders . Tile . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Resources Version ( RESOURCES _ VERSION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Timeline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeline Builders . Timeline . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Timeline Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeline Builders . Timeline Entry . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setLayout ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Element Builders . Layout . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Root ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout ( request Params ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resources Request ( request Params : ĠResources Request ) Ġ= Ġservice Scope . future Ġ{ ĊĠĠĠĠĠĠĠ ĠResource Builders . Resources . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Version ( RESOURCES _ VERSION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Id To Image Mapping ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠID _ IMAGE _ DISABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Builders . Image Resource . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Android Resource By Res Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Builders . Android Image Resource By Res Id . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ResourceId ( R . drawable . we arable _ disable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Id To Image Mapping ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠID _ IMAGE _ ENABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Builders . Image Resource . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Android Resource By Res Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Builders . Android Image Resource By Res Id . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ResourceId ( R . drawable . we arable _ enable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġdata Client Ġ= ĠW ear able . getData Client ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġservice Scope . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlayout ( request Params : ĠTile Request ) Ġ= ĊĠĠĠĠĠĠĠ ĠLayout Element Builders . Box . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setWidth ( expand ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Height ( expand ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request Params . state !!. last Clickable Id Ġ== ĠEVENT _ ON _ BTN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Element Builders . Column . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Content ( enable Btn ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Element Builders . Column . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Content ( disable Btn ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun Ġenable Btn () Ġ= ĊĠĠĠĠĠĠĠ ĠLayout Element Builders . Image . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setWidth ( dp ( BTN _ SIZE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Height ( dp ( BTN _ SIZE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ResourceId ( ID _ IMAGE _ ENABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Modifiers ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMod ifiers Builders . Modifiers . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Clickable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMod ifiers Builders . Clickable . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( EVENT _ OFF _ BTN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Click ( Action Builders . Load Action . Builder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠ Ġprivate Ġfun Ġdisable Btn () Ġ= ĊĠĠĠĠĠĠĠ ĠLayout Element Builders . Image . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setWidth ( dp ( BTN _ SIZE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Height ( dp ( BTN _ SIZE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ResourceId ( ID _ IMAGE _ DISABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Modifiers ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMod ifiers Builders . Modifiers . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Clickable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMod ifiers Builders . Clickable . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setId ( EVENT _ ON _ BTN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Click ( Action Builders . Load Action . Builder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠ Ġprivate Ġfun Ġupdate ( enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġput Data Req : ĠPut Data Request Ġ= ĠPut DataMap Request . create ("/ sn c _ enable "). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Map . put Boolean ( key , Ġenable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġas Put Data Request () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġput Data Task : ĠTask < Data Item > Ġ= Ġdata Client . put Data Item ( put Data Req ) ĊĠĠĠĠĠĠĠ Ġput Data Task . add On Success Listener Ġ{ ĠLog . d (" TEST ", Ġ" OK Ġwith Ġ${ it }") Ġ} ĊĠĠĠ Ġ} Ċ }