package Ġcom . solar . movie . presentation . favorite Ċ Ċ import Ġandroidx . h ilt . lifecycle . ViewModel Inject Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . solar . movie . Network State Ċ import Ġcom . solar . movie . domain . repository . model . Movie Ċ import Ġcom . solar . movie . domain . repository . use case . Favorite UseCase Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠK enne th Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ**/ Ċ class ĠF avorite ViewModel Ġ@ ViewModel Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġfavorite UseCase : ĠF avorite UseCase Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ favorite Movie List LiveData Ġ= ĠMutable LiveData < Network State < List < Favorite Movie View >> >() ĊĠĠĠ Ġval Ġfavorite Movie List LiveData : ĠLive Data < Network State < List < Favorite Movie View >>> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ favorite Movie List LiveData ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġfavorite UseCase . get Favorite Movie List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠNetwork State . Success ( result . map (:: transform Movie To Favorite Movie View )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ favorite Movie List LiveData . post Value ( map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Movie To Favorite Movie View ( movie : ĠMovie ) Ġ= Ġmovie . run Ġ{ ĊĠĠĠĠĠĠĠ ĠF avorite Movie View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposter Ġ= Ġposter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Ġ= Ġrelease Date ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }