package Ġcom . android . sample . common . base Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Transform ations . switch Map Ċ import Ġandroidx . paging . Paged List Ċ import Ġcom . android . sample . common . paging . Listing Ċ import Ġcom . android . sample . common . paging . Network State Ċ import Ġcom . android . sample . common . util . Disposable Manager Ċ Ċ abstract Ġclass ĠBase Paging ViewModel < T >( ĊĠĠĠ Ġapp : ĠApplication Ċ ) Ġ: ĠAndroid ViewModel ( app ) Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġrepo Result : ĠLive Data < Listing < T >> ĊĊĠĠĠ Ġval Ġnetwork State : ĠLive Data < Network State > Ġby Ġlazy Ġ{ Ġswitch Map ( repo Result ) Ġ{ Ġit . network State Ġ} Ġ} ĊĠĠĠ Ġval Ġpage d List : ĠLive Data < Paged List < T >> Ġby Ġlazy Ġ{ Ġswitch Map ( repo Result ) Ġ{ Ġit . page d List Ġ} Ġ} ĊĊĠĠĠ Ġfun Ġretry () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo Result . value ?. retry ?. invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe ĠViewModel Ġis Ġdis m ant led . ĊĠĠĠĠ Ġ* ĠAt Ġthis Ġpoint , Ġwe Ġwant Ġto Ġcancel Ġall Ġdis pos ables ; ĊĠĠĠĠ Ġ* Ġotherwise Ġwe Ġend Ġup Ġwith Ġprocesses Ġthat Ġhave Ġnow here Ġto Ġreturn Ġto ĊĠĠĠĠ Ġ* Ġusing Ġmemory Ġand Ġresources . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ ĠDis posable Manager . clear () ĊĠĠĠ Ġ} Ċ }