package Ġcom . stock me . home . ui . stock Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . google . firebase . firestore . Query Document Snapshot Ċ import Ġcom . google . firebase . firestore . k tx . firestore Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . stock me . model . Product Ċ Ċ class ĠStock ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġfire store DB Ġ= ĠFirebase . firestore ĊĊĠĠĠ Ġprivate Ġval Ġ_ fetch Products LiveData Ġ= ĠMutable LiveData < List < Product > ?> () ĊĠĠĠ Ġval Ġfetch Products LiveData : ĠMutable LiveData < List < Product > ?> Ġget () Ġ= Ġ_ fetch Products LiveData ĊĊĠĠĠ Ġfun Ġfetch Products () Ġ{ ĊĠĠĠĠĠĠĠ Ġfire store DB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collection (" products ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġdocuments Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproducts Ġ= ĠArrayList < Product >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( document Ġin Ġdocuments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= Ġmap DataTo Product ( document ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproducts . add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fetch Products LiveData . value Ġ= Ġproducts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fetch Products LiveData . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmap DataTo Product ( snapshot : ĠQuery Document Snapshot ): ĠProduct Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Map Ġ= Ġsnapshot . data Ġas ĠHashMap < String , ĠAny > ĊĠĠĠĠĠĠĠ Ġreturn ĠProduct ( image Ġ= Ġhash Map [" image "] Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġhash Map [" code "] Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Stock Ġ= Ġ( hash Map [" current Stock "] Ġas ĠLong ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Stock Ġ= Ġ( hash Map [" max Stock "] Ġas ĠLong ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Stock Ġ= Ġ( hash Map [" min Stock "] Ġas ĠLong ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice Ġ= Ġhash Map [" price "] Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enable Ġ= Ġhash Map [" enable "] Ġas ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġhash Map [" description "] Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġsnapshot . id ) ĊĠĠĠ Ġ} Ċ }