package Ġcom . mov ied b . view model Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . mov ied b . model . repositories . Api Repository Ċ import Ġcom . mov ied b . model . response . discover . Discover Movies Ċ import Ġcom . mov ied b . model . response . genre . Genre Ċ import Ġcom . mov ied b . model . response . home . Home Movie Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠHome ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġapi Repository Ġ= ĠApi Repository () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠData Ġresponse Ġlists ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġ_ trend ing Response List Ġ= ĠMutable LiveData < ArrayList < Home Movie >>() ĊĠĠĠ Ġval Ġhome Response List : ĠLive Data < ArrayList < Home Movie >> Ġ= Ġ_ trend ing Response List ĊĊĠĠĠ Ġprivate Ġval Ġ_ discover Movies Response List Ġ= ĠMutable LiveData < ArrayList < Discover Movies >>() ĊĠĠĠ Ġval Ġdiscover Movies Response List : ĠLive Data < ArrayList < Discover Movies >> Ġ= Ġ_ discover Movies Response List ĊĊĠĠĠ Ġprivate Ġval Ġ_ discover Genre Response List Ġ= ĠMutable LiveData < ArrayList < Home Movie >>() ĊĠĠĠ Ġval Ġdiscover Genre Response List : ĠLive Data < ArrayList < Home Movie >> Ġ= Ġ_ discover Genre Response List ĊĊĠĠĠ Ġprivate Ġval Ġ_ genre Response List Ġ= ĠMutable LiveData < List < Genre >>() ĊĠĠĠ Ġval Ġgenre Response List : ĠLive Data < List < Genre >> Ġ= Ġ_ genre Response List ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFunctions Ġto Ġget Ġa de qu ate Ġdata Ġfrom ĠAPI ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġget Trend ing () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Repository . get Trend ing () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrend ing Response Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ trend ing Response List . post Value ( trend ing Response . results ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . error Body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ErrorCode :", Ġresponse . code (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Discover Movies () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Repository . get Discover Movies () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscover Response Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ discover Movies Response List . post Value ( discover Response . results ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . error Body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ErrorCode :", Ġresponse . code (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Discover Genre ( genre Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Repository . get Discover Selected Genre ( genre ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscover Genre Response Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ discover Genre Response List . post Value ( discover Genre Response . results ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . error Body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ErrorCode :", Ġresponse . code (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Genre List () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġapi Repository . get Genre List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenre ListResponse Ġ= Ġresponse . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ genre Response List . post Value ( genre ListResponse . genres ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Response ", Ġresponse . error Body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ErrorCode :", Ġresponse . code (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }