package Ġac ul ix . channel ify . app . view model Ċ Ċ import Ġac ul ix . channel ify . app . model . Comment Reply Ċ import Ġac ul ix . channel ify . app . paging . Network State Ċ import Ġac ul ix . channel ify . app . paging . datasource factory . Comment Rep lies DataSource Factory Ċ import Ġac ul ix . channel ify . app . repository . Comment Rep lies Repository Ċ import Ġac ul ix . channel ify . app . utils . Constants Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Transform ations Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġandroidx . paging . Live Paged List Builder Ċ import Ġandroidx . paging . Paged List Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠComment Rep lies ViewModel ( private Ġval Ġcomment Rep lies Repository : ĠComment Rep lies Repository ) Ġ: ĊĠĠĠ ĠViewModel () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġcomment Rep lies DataSource Factory : ĠComment Rep lies DataSource Factory ĊĠĠĠ Ġvar Ġcomment Rep lies LiveData : ĠLive Data < Paged List < Comment Reply . Item >> ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnetwork State LiveData : ĠLive Data < Network State >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġget Comment Rep lies ( comment Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( comment Rep lies LiveData Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Rep lies DataSource Factory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComment Rep lies DataSource Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Rep lies Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Scope , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Rep lies LiveData Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLive Paged List Builder ( comment Rep lies DataSource Factory , Ġpage d List Config ()). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork State LiveData Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform ations . switch Map ( comment Rep lies DataSource Factory . comment Rep lies DataSource LiveData ) Ġ{ Ġit . get Network State () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRetry Ġpossible Ġlast Ġpage d Ġrequest Ġ( ie : Ġnetwork Ġissue ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrefresh Failed Request () Ġ= ĊĠĠĠĠĠĠĠ Ġcomment Rep lies DataSource Factory . getSource ()?. retry Failed Query () ĊĊĠĠĠ Ġprivate Ġfun Ġpage d List Config () Ġ= ĠP aged List . Config . Builder () ĊĠĠĠĠĠĠĠ Ġ. setInitial Load Size Hint ( Constants . INITIAL _ PAGE _ LOAD _ SIZE ) ĊĠĠĠĠĠĠĠ Ġ. set Enable Place holders ( false ) ĊĠĠĠĠĠĠĠ Ġ. set PageSize ( Constants . PAGE _ SIZE ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ }