package Ġcom . nic olas . image gallery . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . nic olas . image gallery . api . Response Parser Ċ import Ġcom . nic olas . image gallery . api . response . Image ListResponse Ċ import Ġcom . nic olas . image gallery . domain . Picture Ċ import Ġcom . nic olas . image gallery . repository . App Repo Ċ Ċ class ĠImage List ViewModel Ġ: ĠCor outine ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġlist ViewModel Ġ= ĠMutable LiveData < Mutable List < Picture >>() ĊĊĠĠĠ Ġprivate Ġvar ĠcurrentPage Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġhas More Ġ= Ġfalse ĊĊĊĠĠĠ Ġfun ĠonLoad More Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hasMore ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetImage List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetSelected Position ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠApp Repo . selected Position Ġ= Ġpos ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetImage List () Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute In Background ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Background Task Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Parser . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Repo . getImage List ( currentPage ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage ListResponse :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġis ĠImage ListResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . let Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Repo . addAll ( response . pictures . to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ViewModel . value Ġ= ĠApp Repo . picture List ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . hasMore ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentPage ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas More Ġ= Ġresponse . hasMore ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} Ċ Ċ }