package Ġcom . rock lob stre . cool Recycler view . ui . colors Ċ Ċ import Ġcom . rock lob stre . cool Recycler view . data . remote . response . Response Ċ import Ġcom . rock lob stre . cool Recycler view . data . remote . response . Status Ċ import Ġcom . rock lob stre . cool Recycler view . domain . model . Color Ċ import Ġcom . rock lob stre . cool Recycler view . domain . repository . Color Repository Ċ import Ġcom . rock lob stre . cool Recycler view . ui . base . Base ViewModel Ċ import Ġcom . rock lob stre . cool Recycler view . util . schedul ers . Base Scheduler Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMat in ĠSale hi Ġon Ġ 3 1 / 1 2 / 2 0 1 7 . Ċ Ġ*/ Ċ class ĠList Colors ViewModel Ċ @ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġscheduler : ĠBase Scheduler , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcolor Repository : ĠColor Repository Ċ ) Ġ: ĠBase ViewModel < Void , ĠList < Color >>() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġload Data ( params : ĠVoid ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor Repository . get Colors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( scheduler . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( scheduler . ui ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġloading Status . setValue ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do After Terminate Ġ{ Ġloading Status . setValue ( false ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ-> Ġresponse . setValue ( Response ( Status . SUCCESS , Ġresult . data , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable Ġ-> Ġresponse . setValue ( Response ( Status . ERROR , Ġnull , Ġthrowable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }