package Ġcom . shal atan . ent ert ain ment app . ui . movie section Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġcom . shal atan . ent ert ain ment app . database . Movie DAO Ċ import Ġcom . shal atan . ent ert ain ment app . model . Movie Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠSaved Content ViewModel ( val Ġdatabase : ĠMovie DAO ) Ġ: ĊĠĠĠ ĠViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġw atched Movies Ġ= Ġdatabase . getAll W atched Movies () ĊĠĠĠ Ġval Ġwatch Later Movies Ġ= Ġdatabase . getAll Watch Later Movies () ĊĊĠĠĠ Ġprivate Ġval Ġ_ navigate To Selected Movie Ġ= ĠMutable LiveData < Movie >() ĊĠĠĠ Ġval Ġnavigate To Selected Movie : ĠLive Data < Movie > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ navigate To Selected Movie ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġto Ġnavigate Ġto Ġclicked Ġmovie Ġdetail Ġfragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdisplay Movie Details ( movie : ĠMovie ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ navigate To Selected Movie . value Ġ= Ġmovie ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisplay Movie Details Completed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ navigate To Selected Movie . value Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġmovie Ġfrom Ġwatch Ġlater Ġmovies Ġlist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove From Watch Later ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Watch Later Movie ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġdelete Watch Later Movie ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Later Movies . value ?. get ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . delete ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġmovie Ġfrom Ġw atched Ġmovies Ġlist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove From W atched ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete W atched Movie ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġdelete W atched Movie ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw atched Movies . value ?. get ( position )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . delete ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }