package Ġnet . dub lin . bus . data . realtime . remote Ċ Ċ import Ġio . reactivex . Observable Ċ import Ġnet . dub lin . bus . common . Constants Ċ import Ġnet . dub lin . bus . data . realtime . mapper . Real Time Mapper Ċ import Ġnet . dub lin . bus . model . Stop Data Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . RequestBody Ċ import Ġjava . io . IOException Ċ Ċ class ĠReal Time DataSource Ġ{ ĊĠĠĠ Ġfun ĠgetData ( stop Number : ĠString ): ĠObservable < List < Stop Data >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠString . format ( Constants . API _ URL _ REAL _ TIME _ CONTENT , Ġstop Number ) ĊĠĠĠĠĠĠĠ Ġval Ġmedia Type Ġ= ĠMediaType . parse ( Constants . CONTENT _ TYPE _ XML ) ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠRequest Body . create ( media Type , Ġcontent ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient () ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( Constants . SOAP _ ACTION , ĠConstants . NAMESPACE Ġ+ ĠConstants . API _ URL _ REAL _ TIME _ SOAP _ METHOD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( Constants . CONTENT _ TYPE , ĠConstants . CONTENT _ TYPE _ XML ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( Constants . API _ URL _ BASE _ SERVICE Ġ+ ĠConstants . API _ URL _ REAL _ TIME _ SOAP _ METHOD Ġ+ Ġ"& n =$ stop Number ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . create Ġ{ Ġsubscriber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . new Call ( request ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onNext ( Real Time Mapper . map From ( response . body () !!. string ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onComplete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onError ( IOException ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . localized Message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! subscriber . is Disposed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscriber . onError ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ