package Ġio . github . br un og ab riel . dog g ie app . pet details Ċ Ċ import Ġio . github . br un og ab riel . dog g ie app . shared . models . Pet Ċ import Ġio . github . br un og ab riel . dog g ie app . shared . models . User Authenticated Ċ import Ġio . github . br un og ab riel . dog g ie app . shared . network . Pet Services Service Ċ import Ġio . github . br un og ab riel . dog g ie app . shared . network . Ret rofit Manager Ċ import Ġrx . Scheduler Ċ import Ġrx . android . schedul ers . Android Schedulers Ċ import Ġrx . schedul ers . Schedulers Ċ Ċ class ĠPet Details Presenter ( private Ġval Ġview : ĠPet Details Contract . View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpet : ĠPet , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Authenticated : ĠUser Authenticated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpet Services Service : ĠPet Services Service Ġ= ĠRet rofit Manager . create Service ( Pet Services Service :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġsubscribe On Scheduler : ĠScheduler Ġ= ĠS chedulers . io (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġobserve On Scheduler : ĠScheduler Ġ= ĠAndroid Schedulers . main Thread ()) Ġ: ĠPet Details Contract . Presenter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show Pet Details ( pet . name , Ġpet . type , Ġpet . g ait ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pet . images Ġ!= Ġnull Ġ&& Ġpet . images . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Pet Images ( pet . images ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pet . all erg ies Ġ!= Ġnull Ġ&& Ġpet . all erg ies . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Pet All erg ies ( pet . all erg ies ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pet . preferences Ġ!= Ġnull Ġ&& Ġpet . preferences . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Pet Preferences ( pet . preferences ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pet . hab its Ġ!= Ġnull Ġ&& Ġpet . hab its . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Pet H ab its ( pet . hab its ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrequest Services () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Selected Try Again () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Services () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Services () Ġ{ ĊĠĠĠĠĠĠĠ Ġpet Services Service . find Services ( user Authenticated . token , Ġpet . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( subscribe On Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( observe On Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġview . show Loading () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do After Terminate Ġ{ Ġview . dismiss Loading () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful Ġ&& Ġit . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . body () !!. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Empty Result () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Services ( it . body () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Try Again () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Try Again () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ