package Ġcom . se ank . kotlin flow playground . gallery Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . se ank . kotlin flow playground . data . Cards Repository Ċ import Ġcom . se ank . kotlin flow playground . domain . Card Ċ import Ġcom . se ank . kotlin flow playground . util . test . id ling resource . Background TaskId ling Resource Ċ import Ġkotlinx . coroutines . flow . catch Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . flow . on Completion Ċ import Ġkotlinx . coroutines . flow . onStart Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠGallery ViewModel ( private Ġval Ġrepository : ĠC ards Repository ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ cards Ġ= ĠMutable LiveData < List < Card >>() ĊĠĠĠ Ġval Ġcards : ĠLive Data < List < Card >> Ġget () Ġ= Ġ_ cards ĊĊĠĠĠ Ġprivate Ġval Ġ_ show Content Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġshow Content : ĠLive Data < Boolean > Ġget () Ġ= Ġ_ show Content ĊĊĠĠĠ Ġprivate Ġval Ġ_ show Loading Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġshow Loading : ĠLive Data < Boolean > Ġget () Ġ= Ġ_ show Loading ĊĊĠĠĠ Ġprivate Ġval Ġ_ error Ġ= ĠMutable LiveData < String ?> () ĊĠĠĠ Ġval Ġerror : ĠLive Data < String ?> Ġget () Ġ= Ġ_ error ĊĊĠĠĠ Ġfun Ġfetch Card () Ġ{ ĊĠĠĠĠĠĠĠ ĠBackground TaskId ling Resource . task Started () ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Cards () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onStart Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Content . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Loading . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. catch Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Content . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Loading . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . value Ġ= Ġexception . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Completion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBackground TaskId ling Resource . task Ended () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Content . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ show Loading . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ error . value Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ cards . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }