package Ġk ate . tutorial . tur tle soup . pu zzle Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġk ate . tutorial . tur tle soup . Repository Ċ import Ġk ate . tutorial . tur tle soup . request Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠK ate Ġon Ġ 2 0 2 1 / 6 / 1 2 Ċ Ġ*/ Ċ class ĠP uzz les ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġvar Ġp uzz les : ĠMutable LiveData < ArrayList < P uzzle >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar ĠisLoading : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġis Refresh ing : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġrequest Error : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġno P uzzle : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġfun Ġfetch P uzz les () Ġ= ĠviewModel Scope . request Ġ( ĊĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Error . post Value ( it . message ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġexecute Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp uzz les . post Value ( Repository . getP uzz les ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno P uzzle . post Value ( pu zz les . value ?. isEmpty () ?: true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġrefresh P uzz les () Ġ= ĠviewModel Scope . request Ġ( ĊĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh ing . post Value ( Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Error . post Value ( it . message ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġexecute Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh ing . post Value ( Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp uzz les . post Value ( Repository . getP uzz les ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh ing . post Value ( Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno P uzzle . post Value ( pu zz les . value ?. isEmpty () ?: true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ