package Ġcom . a ok ur . bit co int icker . ui . home . favorite Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . a ok ur . bit co int icker . data . model . F avour ite Coin Model Ċ import Ġcom . a ok ur . bit co int icker . ui . base . Base ViewModel Ċ import Ġcom . a ok ur . bit co int icker . util . Constants Ċ import Ġcom . google . firebase . firestore . k tx . firestore Ċ import Ġcom . google . firebase . k tx . Firebase Ċ Ċ class ĠF avour ite Coins ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ fav our ite Coins Ġ= ĠMutable LiveData < List < F avour ite Coin Model >>() ĊĠĠĠ Ġval Ġfavour ite Coins : ĠLive Data < List < F avour ite Coin Model >> Ġ= Ġ_ fav our ite Coins ĊĊĠĠĠ Ġprivate Ġval Ġ_ coin State Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġcoin State : ĠLive Data < Boolean > Ġ= Ġ_ coin State ĊĊĠĠĠ Ġprivate Ġval Ġfavour ite Coins List : ĠMutable List < F avour ite Coin Model > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġprivate Ġval Ġdb Ġ= ĠFirebase . firestore ĊĠĠĠĠĠĠĠ Ġ. collection ( Constants . BASE _ COLLECTION _ NAME ) ĊĠĠĠĠĠĠĠ Ġ. document ( firebase Auth . currentUser . uid ) ĊĠĠĠĠĠĠĠ Ġ. collection ( Constants . DETAIL _ COLLECTION _ NAME ) ĊĊĠĠĠ Ġfun ĠgetAll F avour ites () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġdocument Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġdocument . documents ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcoin Market Item Ġ= Ġit . toObject ( F avour ite Coin Model :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoin Market Item ?. let Ġ{ Ġfavour ite Coin Model Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavour ite Coins List . add ( fav our ite Coin Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coin State . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fav our ite Coins . value Ġ= Ġfavour ite Coins List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coin State . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v (" exception F avour ites ", Ġexception . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }