package Ġio . github . z mun m . insight . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Saved State Handle Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġio . github . z mun m . insight . Params Ċ import Ġio . github . z mun m . insight . entity . Game Ċ import Ġio . github . z mun m . insight . use case . Get Game Detail Ċ import Ġkotlinx . coroutines . flow . State Flow Ċ import Ġkotlinx . coroutines . flow . collect Latest Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠSingle Detail ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġget Game Detail : ĠGet Game Detail , ĊĠĠĠ Ġsaved State Handle : ĠSaved State Handle , ĊĠĠĠ Ġprivate Ġval Ġgame ViewModel : ĠGame ViewModel , Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġval Ġgame Detail : ĠState Flow < Game ?> Ġ= Ġgame ViewModel . game ĊĠĠĠ Ġval Ġlike : ĠLive Data < Boolean > Ġget () Ġ= Ġgame ViewModel . like ĊĊĠĠĠ Ġprivate Ġval Ġdetail Flow Ġ= Ġget Game Detail ( ĊĠĠĠĠĠĠĠ Ġsaved State Handle . get < Long >( Params . GAME _ ID ) Ġ?: Ġerror ( Params . GAME _ ID ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail Flow . collect Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame ViewModel . bind Book ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Like () Ġ{ ĊĠĠĠĠĠĠĠ Ġgame ViewModel . toggle Like () ĊĠĠĠ Ġ} Ċ } Ċ