package Ġcom . a osh en f eng yu . and roi dex ercise Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . paging . Live Paged List Builder Ċ import Ġandroidx . paging . Paged List Ċ Ċ class ĠMain ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList ĊĠĠĠĠ Ġ* Ġ**/ ĊĠĠĠ Ġprivate Ġvar Ġtotal Github Users LiveData : ĠLive Data < Paged List < Github User >> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠdataSource Factory Ġ= ĠGithub Users Paging DataSource . Factory () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStatus ĊĠĠĠĠ Ġ* Ġ**/ ĊĠĠĠ Ġprivate Ġval Ġstatus LiveData Ġ= ĠMutable LiveData < Int >() ĊĊĠĠĠ Ġfun Ġget Github Users LiveData (): ĠLive Data < Paged List < Github User >> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( total Github Users LiveData Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage d List Config Ġ= ĠP aged List . Config . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pref etch Distance ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Github Users LiveData Ġ= ĠLive Paged List Builder ( dataSource Factory , Ġpage d List Config ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtotal Github Users LiveData Ġas ĠLive Data < Paged List < Github User >> ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetStatus ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== ĠGithub Repository . STATUS _ ON _ NO _ RESULT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstatus LiveData . post Value ( status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetStatus LiveData (): ĠMutable LiveData < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstatus LiveData ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ