package Ġio . ex zo coin . wallet . modules . settings . faq Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . ex zo coin . wallet . entities . F aq Ċ import Ġio . ex zo coin . views . List Position Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ Ċ class ĠF aq ViewModel ( private Ġval Ġrepository : ĠF aq Repository ): ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġfa q ItemList Ġ= ĠMutable LiveData < List < F aq Item >>() ĊĠĠĠ Ġval Ġloading Ġ= ĠMutable LiveData < Boolean >( false ) ĊĠĠĠ Ġval Ġerror Ġ= ĠMutable LiveData < Throwable ?> () ĊĊĠĠĠ Ġprivate Ġvar Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . faq List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading . post Value ( it Ġis ĠData State . Loading ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠData State . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdid Fetch F aq List ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . post Value (( it Ġas ? ĠData State . Error )?. throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdis pos ables . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis pos ables . dispose () ĊĊĠĠĠĠĠĠĠ Ġrepository . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdid Fetch F aq List ( faq Array : ĠArray < F aq >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfa q Items Ġ= Ġfa q Array . map Indexed Ġ{ Ġindex , Ġfa q Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF aq Item ( faq , ĠList Position . getList Position ( faq Array . size , Ġindex )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfa q ItemList . post Value ( faq Items ) ĊĠĠĠ Ġ} Ċ } Ċ