package Ġcom . pat lo ew . countries . injection . modules Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . pat lo ew . countries . Build Config Ċ import Ġcom . pat lo ew . countries . data . model . Country Ċ import Ġcom . pat lo ew . countries . data . model . Realm String Map Entry Ċ import Ġcom . pat lo ew . countries . data . remote . Country Api Ċ import Ġcom . pat lo ew . countries . injection . scopes . Per Application Ċ import Ġcom . pat lo ew . countries . util . Country Type Adapter Ċ import Ġcom . pat lo ew . countries . util . Realm String ListType Adapter Ċ import Ġcom . pat lo ew . countries . util . Realm String Map Entry ListType Adapter Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġio . realm . Realm List Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ 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 Ċ Ċ /* ĠCopyright Ġ 2 0 1 6 ĠPat rick ĠL Ã¶ wen stein Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* Ġ------ Ċ Ġ* Ċ Ġ* ĠFILE ĠMO DI FIED Ġ 2 0 1 7 ĠT ai lo red ĠMedia ĠGmbH Ċ Ġ* Ġ*/ Ċ @ Module Ċ class ĠNet Module () Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Per Application ĊĠĠĠ Ġinternal Ġfun Ġprovide Gson (): ĠGson Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCustom Ġtype Ġadapters Ġfor Ġmodels Ġare Ġnot Ġneeded Ġwhen Ġusing ĠGson , Ġbut Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtype Ġadapter Ġis Ġa Ġgood Ġexample Ġif Ġyou Ġwant Ġto Ġwrite Ġone Ġyourself . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Type Adapter ( Country :: class . java , ĠCountry Type Adapter . INSTANCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThese Ġtype Ġadapters Ġfor ĠRealm Lists Ġare Ġneeded , Ġsince ĠRealm String Ġand ĠRealm String Map Entry ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwrappers Ġare Ġnot Ġrecognized Ġby ĠGson Ġin Ġthe Ġdefault Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Type Adapter ( object Ġ: ĠType Token < Realm List < String >>() Ġ{} . type , ĠRealm String ListType Adapter . INSTANCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Type Adapter ( object Ġ: ĠType Token < Realm List < Realm String Map Entry >>() Ġ{} . type , ĠRealm String Map Entry ListType Adapter . INSTANCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Per Application ĊĠĠĠ Ġinternal Ġfun Ġprovide Ok HttpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Per Application ĊĠĠĠ Ġinternal Ġfun Ġprovide Country Api ( gson : ĠGson , Ġok HttpClient : ĠOk HttpClient ): ĠCountry Api Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠhttpClient Builder Ġ= Ġok HttpClient . newBuilder () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient Builder . add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Build Config . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create With Scheduler ( Schedulers . io ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. call Factory ( httpClient Builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). create ( Country Api :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ