package Ġeu . kan ade . t ach iy omi . data . track . manga updates Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . annotation . String Res Ċ import Ġeu . kan ade . t ach iy omi . R Ċ import Ġeu . kan ade . t ach iy omi . data . database . models . Track Ċ import Ġeu . kan ade . t ach iy omi . data . track . Track Service Ċ import Ġeu . kan ade . t ach iy omi . data . track . manga updates . dto . copy To Ċ import Ġeu . kan ade . t ach iy omi . data . track . manga updates . dto . to Track Search Ċ import Ġeu . kan ade . t ach iy omi . data . track . model . Track Search Ċ Ċ class ĠM anga Updates ( private Ġval Ġcontext : ĠContext , Ġid : ĠInt ) Ġ: ĠTrack Service ( id ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREAD ING _ LIST Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠW ISH _ LIST Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOMP LETE _ LIST Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUN FINISHED _ LIST Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠON _ H OLD _ LIST Ġ= Ġ 4 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinterceptor Ġby Ġlazy Ġ{ ĠM anga Updates Interceptor ( this ) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġapi Ġby Ġlazy Ġ{ ĠM anga Updates Api ( interceptor , Ġclient ) Ġ} ĊĊĠĠĠ Ġ@ String Res ĊĠĠĠ Ġoverride Ġfun Ġname Res (): ĠInt Ġ= ĠR . string . tracker _ manga _ updates ĊĊĠĠĠ Ġoverride Ġfun Ġget Logo (): ĠInt Ġ= ĠR . drawable . ic _ manga _ updates ĊĊĠĠĠ Ġoverride Ġfun Ġget Logo Color (): ĠInt Ġ= ĠColor . rgb ( 1 4 6 , Ġ 1 6 0 , Ġ 1 7 3 ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetStatus List (): ĠList < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( READ ING _ LIST , ĠCOMP LETE _ LIST , ĠON _ H OLD _ LIST , ĠUN FINISHED _ LIST , ĠW ISH _ LIST ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetStatus ( status : ĠInt ): ĠString Ġ= Ġwith ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREAD ING _ LIST Ġ-> ĠgetString ( R . string . reading _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW ISH _ LIST Ġ-> ĠgetString ( R . string . wish _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCOMP LETE _ LIST Ġ-> ĠgetString ( R . string . complete _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠON _ H OLD _ LIST Ġ-> ĠgetString ( R . string . on _ hold _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUN FINISHED _ LIST Ġ-> ĠgetString ( R . string . un finished _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Reading Status (): ĠInt Ġ= ĠREAD ING _ LIST ĊĊĠĠĠ Ġoverride Ġfun Ġget R ere ading Status (): ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun Ġget Completion Status (): ĠInt Ġ= ĠCOMP LETE _ LIST ĊĊĠĠĠ Ġprivate Ġval Ġ_ score List Ġ= Ġ( 0 .. 9 ). flatMap Ġ{ Ġi Ġ-> Ġ( 0 .. 9 ). map Ġ{ Ġj Ġ-> Ġ"$ i .$ j " Ġ} Ġ} Ġ+ ĠlistOf (" 1 0 . 0 ") ĊĊĠĠĠ Ġoverride Ġfun Ġget Score List (): ĠList < String > Ġ= Ġ_ score List ĊĊĠĠĠ Ġoverride Ġfun Ġindex To Score ( index : ĠInt ): ĠFloat Ġ= Ġ_ score List [ index ]. toFloat () ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Score ( track : ĠTrack ): ĠString Ġ= Ġtrack . score . toString () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate ( track : ĠTrack , Ġdid Read Chapter : ĠBoolean ): ĠTrack Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( track . status Ġ!= ĠCOMP LETE _ LIST Ġ&& Ġdid Read Chapter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrack . status Ġ= ĠREAD ING _ LIST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapi . update Series ListItem ( track ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrack ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġbind ( track : ĠTrack , Ġhas Read Chapter s : ĠBoolean ): ĠTrack Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( series , Ġrating ) Ġ= Ġapi . get Series ListItem ( track ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseries . copy To ( track ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrating ?. copy To ( track ) Ġ?: Ġtrack ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . add Series ToList ( track , Ġhas Read Chapter s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrack ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch ( query : ĠString ): ĠList < Track Search > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi . search ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Track Search ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrefresh ( track : ĠTrack ): ĠTrack Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( series , Ġrating ) Ġ= Ġapi . get Series ListItem ( track ) ĊĠĠĠĠĠĠĠ Ġseries . copy To ( track ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrating ?. copy To ( track ) Ġ?: Ġtrack ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġlogin ( username : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauthenticated Ġ= Ġapi . authenticate ( username , Ġpassword ) Ġ?: Ġthrow ĠThrowable (" Unable Ġto Ġlogin ") ĊĠĠĠĠĠĠĠ Ġsave Credentials ( authenticated . uid . toString (), Ġauthenticated . session Token ) ĊĠĠĠĠĠĠĠ Ġinterceptor . new Auth ( authenticated . session Token ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestore Session (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . track Password ( this ) ĊĠĠĠ Ġ} Ċ } Ċ