package Ġcom . ig or wo j da . show case . feature . album . data Ċ Ċ import Ġcom . ig or wo j da . show case . feature . album . data . database . Album Dao Ċ import Ġcom . ig or wo j da . show case . feature . album . data . database . model . to Domain Model Ċ import Ġcom . ig or wo j da . show case . feature . album . data . network . model . to Domain Model Ċ import Ġcom . ig or wo j da . show case . feature . album . data . network . model . to Entity Ċ import Ġcom . ig or wo j da . show case . feature . album . data . network . service . Album Ret rofit Service Ċ import Ġcom . ig or wo j da . show case . feature . album . domain . model . Album Ċ import Ġcom . ig or wo j da . show case . feature . album . domain . repository . Album Repository Ċ import Ġjava . net . Unknown Host Exception Ċ Ċ internal Ġclass ĠAlbum Repository Impl ( ĊĠĠĠ Ġprivate Ġval Ġalbum Ret rofit Service : ĠAlbum Ret rofit Service , ĊĠĠĠ Ġprivate Ġval Ġalbum Dao : ĠAlbum Dao Ċ ) Ġ: ĠAlbum Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Album Info ( artist Name : ĠString , Ġalbum Name : ĠString , Ġmb Id : ĠString ?): ĠAlbum ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Ret rofit Service . get Album Info Async ( artist Name , Ġalbum Name , Ġmb Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . album ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . to Domain Model () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnknown Host Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Dao . get Album ( artist Name , Ġalbum Name , Ġmb Id ). to Domain Model () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġsearch Album ( phrase : ĠString ): ĠList < Album > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Album Response Ġ= Ġalbum Ret rofit Service . search Album Async ( phrase ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum List Ġ= Ġsearch Album Response . results . album Matches . album ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Entity () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġalbum Dao . insert Album s ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum List . map Ġ{ Ġit . to Domain Model () Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnknown Host Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Dao . getAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Domain Model () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ