package Ġz bi . trunk st rop . core . network Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġio . reactivex . schedul ers . Schedulers . io Ċ import Ġokhttp 3 . Cache Ċ 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 . mos hi . M oshi Converter Factory Ċ import Ġz bi . trunk st rop . core . Build Config Ċ import Ġjava . io . File Ċ Ċ fun Ġcache ( application : ĠApplication ): ĠCache ? Ġ{ ĊĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Prefs Ġ= Ġapplication . get SharedPreferences (" local - config ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! config Prefs . getBoolean (" enable _ cache ", Ġfalse )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠCache ( File ( application . cacheDir , Ġ" cache - default "), Ġ 1 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ) ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġokhttp Builder ( ĊĠĠĠ Ġapplication : ĠApplication , ĊĠĠĠ Ġcache : ĠCache ? Ġ= Ġcache ( application ) Ċ ): ĠOk HttpClient . Builder Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĊĠĠĠ Ġcustomize Ok http Builder ( builder ) ĊĊĠĠĠ Ġreturn Ġbuilder Ċ } Ċ Ċ fun Ġm oshi (): ĠM oshi Ġ{ ĊĠĠĠ Ġreturn ĠM oshi . Builder () ĊĠĠĠĠĠĠĠ Ġ. add ( Z onedDateTime Adapter ()) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ Ċ fun Ġretrofit Builder ( ĊĠĠĠ Ġapplication : ĠApplication , ĊĠĠĠ Ġokhttp : ĠOk HttpClient Ġ= Ġokhttp Builder ( application ). build (), ĊĠĠĠ Ġm oshi : ĠM oshi Ġ= Ġm oshi () Ċ ): ĠRet rofit . Builder Ġ{ ĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. client ( okhttp ) ĊĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create With Scheduler ( io ())) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Unit Converter Factory ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ( mos hi )) Ċ }