package Ġes . np atar ino . android . got challenge . data . datasource . network Ċ Ċ import Ġes . np atar ino . android . got challenge . data . datasource . network . model . Server Address Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Single Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ class ĠNetwork Service ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġserver Address : ĠServer Address ) Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġget Api Builder (): ĠRet rofit Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( server Address . baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( Ok HttpClient . Builder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġfun Ġ< DATA Ġ: ĠAny , ĠT > Ġmake Api Call For Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Class : ĠClass < T >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Call : Ġ(( api : ĠT ) Ġ-> ĠSingle < DATA >) ĊĠĠĠ Ġ): ĠSingle < DATA > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Call ( get Api Builder (). create ( api Class )) Ċ }