package Ġapp . nex d . android . ui . helper . request Overview Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . LiveData Reactive Streams Ċ import Ġapp . nex d . android . api Ċ import Ġapp . nex d . android . api . model . Help List Ċ import Ġapp . nex d . android . api . model . Help Request Ċ import Ġapp . nex d . android . api . model . Help Request Status Ċ import Ġapp . nex d . android . ui . common . Constants . Companion . USER _ ME Ċ import Ġio . reactivex . Back pressure Strategy Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ Ċ class ĠHelper Overview ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġreload Accepted Ġ= ĠBehavior Subject . create < Unit >() ĊĠĠĠ Ġprivate Ġval Ġreload Near by Ġ= ĠBehavior Subject . create < Unit >() ĊĊĠĠĠ Ġvar Ġzip Code : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ// Ġmb Ġdifferent Ġway Ġto Ġget Ġactive Ġrequests ?? ĊĠĠĠ Ġfun Ġget My Accepted Requests (): ĠLive Data < List < Help Request >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Ġ= Ġreload Accepted . flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . help Lists Controller GetUser Lists ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġhelp Lists Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelp Lists . filter Ġ{ Ġit . status Ġ== ĠHelp List . Status Enum . ACTIVE Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. max By Ġ{ Ġit . createdAt Ġ} ?. help Requests ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. or Empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠLive Data Reactive Streams . from Publisher ( observable . to Flow able ( Back pressure Strategy . BUFFER )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Other Open Requests (): ĠLive Data < List < Help Request >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobservable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . user Controller Find Me () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĠcurrentUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzip Code Ġ= ĠcurrentUser . zip Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreload Near by . flatMap Ġ{ Ġ// Ġget Ġall Ġrequests Ġcreated Ġby Ġother Ġpeople ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . help Requests Controller GetAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ ME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( zip Code , Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelp Request Status . PENDING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠLive Data Reactive Streams . from Publisher ( observable . to Flow able ( Back pressure Strategy . BUFFER )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġreload Accepted . onNext ( Unit ) ĊĠĠĠĠĠĠĠ Ġreload Near by . onNext ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfilter by Zip Code ( zip Code : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . zip Code Ġ= Ġzip Code ĊĠĠĠĠĠĠĠ Ġreload Near by . onNext ( Unit ) ĊĠĠĠ Ġ} Ċ } Ċ