package Ġcom . rav n ner der y . clean photo challenge . view Models Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . rav n ner der y . data . use Cases . GetAll Photos UseCase Ċ import Ġcom . rav n ner der y . domain . models . Photo Info Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠPhoto List ViewModel ( ĊĠĠĠ Ġprivate Ġval ĠgetAll Photos : ĠGetAll Photos UseCase Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġall Photos () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmutable All Photos Ġ= ĠMutable LiveData < List < Photo Info >>( emptyList ()) ĊĠĠĠ Ġprivate Ġval Ġ_ navigate To Snapshot Ġ= ĠMutable LiveData < Long ?> () ĊĠĠĠ Ġvar Ġcurrent Position : ĠInt ? Ġ= Ġ 0 ĊĊĠĠĠ Ġval Ġnavigate To Snapshot ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ navigate To Snapshot ĊĊĠĠĠ Ġfun Ġon Photo Clicked ( id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ navigate To Snapshot . value Ġ= Ġid ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Snapshot Navig ated () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ navigate To Snapshot . value Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġall Photos () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable All Photos . post Value ( getAll Photos . execute ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }