package Ġcom . ar tp ro fici ency app . rest api Ċ Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġadmin Ġon Ġ 5 / 1 2 / 2 0 1 6 . Ċ Ġ*/ Ċ object ĠApi Initialize Ġ{ ĊĊĠĠĠ Ġ// var ĠMAIN _ UR l _ API Ġ= Ġ" http :// 1 9 2 . 1 6 8 . 1 . 1 0 / art app / public / api /" ĠĠĠ Ġ// Ġlocal ĊĊĠĠĠ Ġvar ĠMAIN _ UR l _ API Ġ= Ġ" http :// www . mock y . io / v 2 /" ĠĠĠ Ġ// ĠLive ĊĠĠ Ġ// Ġvar ĠMAIN _ UR l _ API Ġ= Ġ" http :// 1 9 2 . 1 6 8 . 1 . 3 4 / art compass / public / api /" ĠĠĠ Ġ// Ġlocal ĊĠĠĠ Ġ// var ĠMAIN _ UR l _ API _ LOCAL Ġ= Ġ Ġ" http :// 1 9 2 . 1 6 8 . 1 . 3 4 / art compass / public / api " Ġ// local ĊĠĠĠ Ġprivate Ġvar Ġretrofit : ĠRet rofit ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġapi In It : ĠApi Interface ĊĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun Ġget Api In It (): ĠApi Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi In It ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinitialize (): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ret rofit Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( MAIN _ UR l _ API ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( request Header ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġinitializes (): ĠApi Interface Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĊĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( MAIN _ UR l _ API ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( request Header ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġapi In It Ġ= Ġretrofit !!. create ( Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġapi In It ĊĠĠĠ Ġ} ĊĠĠ Ġ// Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġinitialize ( baseUrl : ĠString ): ĠApi Interface Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĊĠĠĠĠĠĠĠ Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( request Header ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġapi In It Ġ= Ġretrofit !!. create ( Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġapi In It ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġrequest Header : ĠOk HttpClient ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 6 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 6 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ } Ċ