package Ġcom . sz h ua . page demo . db . repository Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġcom . sz h ua . page demo . db . dao . F avour ite Sh oe Dao Ċ import Ġcom . sz h ua . page demo . db . data . F avour ite Sh oe Ċ import Ġkotlinx . coroutines . Dispatch ers . IO Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjava . util .* Ċ Ċ class ĠF avour ite Sh oe Repository Ġprivate Ġconstructor ( private Ġval Ġfavour ite Sh oe Dao : ĠF avour ite Sh oe Dao ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥ çľĭ æŁĲä¸ª çĶ¨æĪ· æĺ¯åĲ¦ æľī åĸľ æ¬¢ è®°å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfind F avour ite Sh oe ( userId : Long , sh oe Id : Long ): LiveData < F avour ite Sh oe ?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġfavour ite Sh oe Dao . find F avour ite Sh oe By UserId And Sh oe Id ( userId , Ġsh oe Id ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¶ èĹı ä¸Ģ åıĮ é ŀ ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġcreate F avour ite Sh oe ( userId : Long , sh oe Id : ĠLong ){ ĊĠĠĠĠĠĠĠ Ġwith Context ( IO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavour ite Sh oe Dao . insert F avour ite Sh oe ( F avour ite Sh oe ( sh oe Id , userId , ĠCalendar . getInstance ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠF avour ite Sh oe Repository ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( fav our ite Sh oe Dao : ĠF avour ite Sh oe Dao ): ĠF avour ite Sh oe Repository Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ?: Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠF avour ite Sh oe Repository ( fav our ite Sh oe Dao ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }