package Ġcom . st ol z . places search . details Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . st ol z . places search . database . Place Dao Ċ import Ġcom . st ol z . places search . model . Place Ċ import Ġcom . st ol z . places search . model . places . Venue Ċ import Ġcom . st ol z . places search . util . Utils Ċ import Ġkotlinx . coroutines .* Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġstores Ġthe Ġrelevant Ġdata Ġfor Ġthe ĠDetail Fragment Ġas ĠLive Data Ġand Ġhandles Ġthe Ġretrieval Ċ Ġ* Ġof Ġven ue Ġinformation Ġand Ġthe Ġstatic ĠGoogle ĠMap Ġby Ġlever aging Ġthe ĠDetail Repository . ĠIt Ġalso Ġhas Ċ Ġ* Ġlogic Ġfor Ġupdating Ġthe Ġis Favorite Ġstatus Ġfor Ġthe Ġcurrent Ġplace . Ċ Ġ*/ Ċ class ĠDetail ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġfavor ites Database : ĠPlace Dao , ĊĠĠĠ Ġprivate Ġval Ġdetail Repository : ĠDetail Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ// ĠLive Data Ġcontaining Ġdetailed Ġven ue Ġinformation ĊĠĠĠ Ġprivate Ġval Ġ_ venue Information Ġ= ĠMutable LiveData < Venue >() ĊĠĠĠ Ġval Ġven ue Information : ĠLive Data < Venue > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ venue Information ĊĊĠĠĠ Ġ// ĠLive Data Ġcontaining Ġthe Ġstatic Ġmap Ġimage ĊĠĠĠ Ġprivate Ġval Ġ_ static Map Ġ= ĠMutable LiveData < Bitmap >() ĊĠĠĠ Ġval Ġstatic Map : ĠLive Data < Bitmap > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ static Map ĊĊĠĠĠ Ġprivate Ġvar Ġdetails Job Ġ= ĠJob () ĊĠĠĠ Ġprivate Ġval Ġdetails Scope Ġ= ĠCor outine Scope ( details Job Ġ+ ĠDispatch ers . Main ) ĊĊĠĠĠ Ġfun ĠgetStatic Map ( place : ĠPlace ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdetails Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= Ġdetail Repository . fetch Static Map ( place , ĠUtils . generate Static Map Dimensions ( context . resources )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ static Map . value Ġ= Ġbitmap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Venue Information ( venue Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdetails Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġven ue With Info Ġ= Ġdetail Repository . fetch Venue Information ( venue Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( venue With Info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ venue Information . value Ġ= Ġven ue With Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Favorite For Place ( place : ĠPlace ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdetails Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Entity Ġ= ĠPlace . to Place Entity ( place ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace In Db Ġ= Ġfavor ites Database . get Place ( place . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( place In Db Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavor ites Database . insert ( place Entity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfavor ites Database . update Place ( place Entity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġdetails Job . cancel () ĊĠĠĠ Ġ} Ċ }