/* čĊ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . čĊ Ġ* ĠJo Ã£o ĠP au lo ĠS ena Ġ< jo aop au lo 7 6 1 @ gmail . com > čĊ Ġ* čĊ Ġ* ĠThis Ġfile Ġis Ġpart Ġof Ġthe ĠUN ES ĠOpen ĠSource ĠProject . čĊ Ġ* čĊ Ġ* ĠUN ES Ġis Ġlicensed Ġunder Ġthe ĠMIT ĠLicense čĊ Ġ* čĊ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy čĊ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal čĊ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights čĊ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell čĊ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis čĊ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : čĊ Ġ* čĊ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall čĊ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . čĊ Ġ* čĊ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR čĊ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , čĊ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE čĊ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER čĊ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , čĊ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE čĊ Ġ* ĠSOFTWARE . čĊ Ġ*/ čĊč Ċ package Ġcom . for c et ower . ue fs . feature . services follow up čĊč Ċ import Ġandroidx . lifecycle . LiveData č Ċ import Ġandroidx . lifecycle . Mediator LiveData č Ċ import Ġandroidx . lifecycle . Mutable LiveData č Ċ import Ġandroidx . lifecycle . ViewModel č Ċ import Ġcom . for c et ower . s ag res . database . model . S Requested Service č Ċ import Ġcom . for c et ower . ue fs . core . model . unes . Service Request č Ċ import Ġcom . for c et ower . ue fs . core . storage . repository . Services Follow Up Repository č Ċ import Ġcom . for c et ower . ue fs . core . storage . resource . Resource č Ċ import Ġcom . for c et ower . ue fs . core . storage . resource . Status č Ċ import Ġcom . for c et ower . ue fs . core . vm . Event č Ċ import Ġjavax . inject . Inject čĊč Ċ class ĠServices Follow Up ViewModel Ġ@ Inject Ġconstructor ( čĊĠĠĠ Ġprivate Ġval Ġrepository : ĠServices Follow Up Repository č Ċ ) Ġ: ĠViewModel () Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġ_ refresh ing Ġ= ĠMutable LiveData < Boolean >() čĊĠĠĠ Ġval Ġrefresh ing : ĠLive Data < Boolean > čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ refresh ing čĊčĊĠĠĠ Ġprivate Ġval Ġ_ pending Services Ġ= ĠMed iator LiveData < Event < Resource < List < S Requested Service >>>> () čĊĠĠĠ Ġval Ġpending Services : ĠLive Data < Event < Resource < List < S Requested Service >>>> čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ pending Services čĊčĊĠĠĠ Ġfun Ġon Refresh () Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ(_ refresh ing . value Ġ!= Ġtrue ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh ing . value Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġrepository . get Pending Services () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ pending Services . add Source ( data ) Ġ{ Ġchange Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ pending Services . value Ġ= ĠEvent ( change ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( change . status Ġ== ĠStatus . ERROR Ġ|| Ġchange . status Ġ== ĠStatus . SUCCESS ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ pending Services . remove Source ( data ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh ing . value Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget Requested Services ( filter : ĠString ?): ĠLive Data < List < Service Request >> Ġ= Ġrepository . get Requested Services ( filter ) č Ċ }