package Ġcom . example . sv book market . activities . data Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . example . sv book market . activities . common . App Util Ċ import Ġcom . example . sv book market . activities . common . Constants Ċ import Ġcom . example . sv book market . activities . model . Book Ċ import Ġcom . example . sv book market . activities . model . Cart Ċ import Ġcom . google . firebase . firestore .* Ċ import Ġcom . google . firebase . firestore . EventListener Ċ import Ġjava . util .* Ċ import Ġkotlin . math . round ToInt Ċ Ċ public Ġclass ĠFull Book List Ġprivate Ġconstructor ( var Ġlst Full Book : ĠMutable List < Book > Ġ= Ġmutable ListOf ()) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠgetData By Snapshot () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetData By Snapshot () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġref Ġ= ĠFirebase Fire store . getInstance (). collection (" books ") ĊĠĠĠĠĠĠĠ Ġref . add Snapshot Listener Ġ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Listener < Query Snapshot > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Event ( value : ĠQuery Snapshot ?, Ġerror : ĠFirebase Fire store Exception ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( Constants . V MT AG , Ġ" Listen Ġfailed .", Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook List : ĠMutable List < Book > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( doc Ġin Ġvalue !! ) Ġ{ Ċ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( doc . data [" Name "] Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbook Item Ġ= Ġdoc . toObject ( Book :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Item . id Ġ= Ġdoc . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook List . add ( book Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" V MT AG ", Ġ(" ${ book Item . Name } Ġ${ book Item . Price } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" V MT AG ", Ġ"$ doc ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst Full Book Ġ= Ġbook List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġobject ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠINSTANCE Ġ= ĠFull Book List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠFull Book List Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠH older . INSTANCE ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetData From Db (): ĠMutable List < Book > Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlst Full Book : ĠMutable List < Book > Ġ= Ġmutable ListOf () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb : ĠFirebase Fire store Ġ= ĠFirebase Fire store . getInstance () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġref Ġ= Ġdb . collection (" books ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġresult Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( document Ġin Ġresult ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= Ġdocument . data ; Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauthors : ĠString Ġ= Ġdocument . get (" Author "). toString (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount : ĠLong Ġ= Ġdocument . get (" Counts "). toString (). to Long (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString Ġ= Ġdocument . get (" Description "). toString (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage : ĠUri Ġ= ĠUri . parse ( document . get (" Image "). toString ()); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkind : ĠString Ġ= Ġdocument . get (" Kind "). toString (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString Ġ= Ġdocument . get (" Name "). toString (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrate : ĠDouble Ġ= Ġdocument . get (" rate "). toString (). toDouble (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprice : ĠLong Ġ= Ġdocument . get (" Price "). toString (). to Long (); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook : ĠBook Ġ= ĠBook ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . id , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthors , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprice , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst Full Book . add ( book ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlst Full Book Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }