package Ġcom . ha om ins . reader . view Models Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . ha om ins . domain . model . entities . Article Entity Ċ import Ġcom . ha om ins . domain . use case . article details . Load Article Data Ċ import Ġcom . ha om ins . reader . utils . Dark Mode Manager Ċ import Ġcom . ha om ins . reader . view . fragments . Article Detail Fragment Ċ import Ġio . reactivex . ob servers . Disposable Single Observer Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠArticle Detail ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġload Article Data : ĠLoad Article Data , ĊĠĠĠ Ġprivate Ġval Ġdark Mode Manager : ĠDark Mode Manager Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Article Detail ViewModel " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġ_ content Data For Display Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMutable LiveData < Article Detail Fragment . Article Detail Ui Item >() ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġcontent Data For Display : ĠLive Data < Article Detail Fragment . Article Detail Ui Item > Ġ= Ġ_ content Data For Display ĊĊĠĠĠ Ġfun Ġload Article Detail ( itemId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Article Data . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDis posable Single Observer < Article Entity >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠArticle Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ content Data For Display . post Value ( map Article Entity To Ui Item ( t )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" load Article Data Ġ:: ĠonError ${ e . printStackTrace () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠLoad Article Data . for Load Article Content ( article Id Ġ= ĠitemId ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Dark Mode Enabled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdark Mode Manager . check Is Current Dark Mode Enabled () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġload Article Data . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap Article Entity To Ui Item ( article Entity : ĠArticle Entity ): ĠArticle Detail Fragment . Article Detail Ui Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠArticle Detail Fragment . Article Detail Ui Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġarticle Entity . item Title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Time Ġ= Ġarticle Entity . updated Time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġarticle Entity . author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Html Data Ġ= Ġarticle Entity . content ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }