package Ġcom . sar aha . p aws . Repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Settings Ċ import Ġcom . google . firebase . firestore . k tx . firestore Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġcom . sar aha . p aws . Model . Vendor Ċ Ċ class ĠV et Repository Ġ{ ĊĊĠĠĠ Ġvar Ġdb Fire store : ĠFirebase Fire store ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġcreate DB Fire store (){ ĊĠĠĠĠĠĠĠ Ġdb Fire store Ġ= ĠFirebase . firestore ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠFirebase Fire store Settings . Builder (). set Persistence Enabled ( true ). build () ĊĠĠĠĠĠĠĠ Ġdb Fire store !!. firestore Settings Ġ= Ġsettings ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll (): ĠLive Data < Pair < List < Vendor > ?, ĠException ? >> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( db Fire store Ġ== Ġnull ) Ġcreate DB Fire store () ĊĊĠĠĠĠĠĠĠ Ġval Ġlive Data V et Ġ= ĠMutable LiveData < Pair < List < Vendor > ?, ĠException ? >>() ĊĊĠĠĠĠĠĠĠ Ġdb Fire store ?. collection (" V ets ") ?. get ()?. add On Complete Listener Ġ{ snapshot Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( snapshot . is Successful Ġ&& Ġsnapshot . result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠlistOf V ets Ġ= Ġmutable ListOf < Vendor >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( vet Ġin Ġsnapshot . result !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vet . data . isNotEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġvet . get (" name ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġabout Ġ= Ġvet . get (" about ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbranch Ġ= Ġvet . get (" branch ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlatitude Ġ= Ġvet . get (" latitude ") Ġas ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlongitude Ġ= Ġvet . get (" longitude ") Ġas ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġvet . get (" link ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphone Ġ= Ġvet . get (" phone ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġvet . get (" email ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġvet . get (" type ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto Ġ= Ġvet . get (" photo ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb V et Ġ= ĠVendor ( vet . id , Ġname , Ġbranch , Ġabout , Ġlatitude , Ġlongitude , Ġlink , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphone , Ġemail , Ġtype , Ġphoto ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf V ets . add ( db V et ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data V et . post Value ( Pair ( listOf V ets , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ?. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data V et . post Value ( Pair ( null , Ġit )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlive Data V et ĊĠĠĠ Ġ} Ċ }