package Ġio . ex zo coin . wallet . modules . markdown Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . ex zo coin . wallet . core . managers . Connectivity Manager Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . common mark . parser . Parser Ċ Ċ class ĠMarkdown ViewModel ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconnectivity Manager : ĠConnect ivity Manager , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontent Provider : ĠMarkdown Module . IM ark down Content Provider ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġstatus LiveData Ġ= ĠMutable LiveData < Load Status >() ĊĠĠĠ Ġval Ġblocks Ġ= ĠMutable LiveData < List < Markdown Block >>() ĊĊĠĠĠ Ġprivate Ġvar Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġprivate Ġvar Ġstatus : ĠLoad Status Ġ= ĠLoad Status . Initial ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus LiveData . post Value ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Content () ĊĊĠĠĠĠĠĠĠ Ġconnectivity Manager . network Availability Signal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( connectivity Manager . isConnected Ġ&& Ġstatus Ġis ĠLoad Status . Failed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Content () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdid Fetch Content ( content : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠParser . builder (). build () ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġparser . parse ( content ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmarkdown Visitor Ġ= ĠMarkdown Visitor Block ( content Provider . markdown Url ) ĊĊĠĠĠĠĠĠĠ Ġdocument . accept ( markdown Visitor ) ĊĊĠĠĠĠĠĠĠ Ġblocks . post Value ( markdown Visitor . blocks Ġ+ ĠMarkdown Block . Footer ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Provider . getContent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠLoad Status . Loading ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠLoad Status . Loaded ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdid Fetch Content ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠLoad Status . Failed ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ