package Ġio . horizontal systems . bank wallet . modules . settings . faq Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġio . horizontal systems . bank wallet . entities . F aq Map Ċ import Ġio . horizontal systems . core . IL anguage Manager Ċ import Ġio . horizontal systems . views . List Position Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ Ċ class ĠF aq ViewModel ( private Ġval Ġrepository : ĠF aq Repository , Ġprivate Ġval Ġlanguage Manager : ĠI Language Manager ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġfa q ItemList Ġ= ĠMutable LiveData < List < F aq Data >>() ĊĠĠĠ Ġval Ġloading Ġ= ĠMutable LiveData ( 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 Map : ĠArray < F aq Map >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Lang Ġ= Ġlanguage Manager . current Locale . language ĊĠĠĠĠĠĠĠ Ġval Ġfallback Lang Ġ= Ġlanguage Manager . fallback Locale . language ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġmutable ListOf < F aq Data >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( map Ġin Ġfa q Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsection Ġ= Ġmap . section [ current Lang ] Ġ?: Ġmap . section [ fallback Lang ] Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsection Items Ġ= Ġmap . items . map NotNull Ġ{ Ġit [ current Lang ] Ġ?: Ġit [ fallback Lang ] Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( F aq Section ( section )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection Items . forEach Indexed Ġ{ Ġindex , Ġfa q Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( F aq Item ( faq , ĠList Position . getList Position ( section Items . size , Ġindex ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfa q ItemList . post Value ( items ) ĊĠĠĠ Ġ} Ċ } Ċ