/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠC EX . âĢĭ IO ĠLtd Ġ( UK ) Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġcom . c ex direct . lib . di Ċ Ċ import Ġcom . c ex direct . lib . Build Config Ċ import Ġcom . c ex direct . lib . Open ForTesting Ċ import Ġcom . c ex direct . lib . buy . Calc Api Ċ import Ġcom . c ex direct . lib . check . Placement Api Ċ import Ġcom . c ex direct . lib . network .* Ċ import Ġcom . c ex direct . lib . network . de serializers . Order Status Deserializer Ċ import Ġcom . c ex direct . lib . network . models . Order Status Ċ import Ġcom . c ex direct . lib . network . serializers . Date Deserializer Ċ import Ġcom . c ex direct . lib . network . webview . Client Ċ import Ġcom . c ex direct . lib . network . ws . Live Socket Ċ import Ġcom . c ex direct . lib . network . ws . Messenger Ċ import Ġcom . c ex direct . lib . network . ws . Ws Url Provider Ċ import Ġcom . c ex direct . lib . order . Order Processing Api Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġdagger . Lazy Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Call Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Open ForTesting Ċ @ Module Ċ class ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Gson (): ĠGson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠ Ġ. register Type Adapter ( Date :: class . java , ĠDate Deserializer ()) ĊĠĠĠĠĠĠĠ Ġ. register Type Adapter ( Order Status :: class . java , ĠOrder Status Deserializer ()) ĊĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( client : ĠLazy < Ok HttpClient >, Ġgson : ĠGson ): ĠRet rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Build Config . REST _ URL ) ĊĠĠĠĠĠĠĠ Ġ. call Factory ( object Ġ: ĠCall . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Call ( request : ĠRequest ): ĠCall Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġclient . get (). new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Merchant Repo ( ret rofit : ĠRet rofit ) Ġ= ĊĠĠĠĠĠĠĠ ĠMer chant Flow ( ret rofit . create ( Merchant Service :: class . java )) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Payment Repo ( ret rofit : ĠRet rofit ) Ġ= ĊĠĠĠĠĠĠĠ ĠPayment Flow ( ret rofit . create ( Payment Service :: class . java )) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Order Service ( ret rofit : ĠRet rofit ) Ġ= ĊĠĠĠĠĠĠĠ ĠOrder Flow ( ret rofit . create ( Order Service :: class . java )) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Analytics Api ( ret rofit : ĠRet rofit ) Ġ= ĊĠĠĠĠĠĠĠ ĠAnalytics Flow ( ret rofit . create ( Analytics Service :: class . java )) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Calc Api ( ĊĠĠĠĠĠĠĠ Ġanalytics Flow : ĠAnalytics Flow , ĊĠĠĠĠĠĠĠ Ġmerchant Flow : ĠMer chant Flow , ĊĠĠĠĠĠĠĠ Ġpayment Flow : ĠPayment Flow , ĊĠĠĠĠĠĠĠ Ġmess enger : ĠMess enger ĊĠĠĠ Ġ): ĠCalc Api Ġ= ĊĠĠĠĠĠĠĠ ĠCalc Api ( analytics Flow , Ġmerchant Flow , Ġpayment Flow , Ġmess enger ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Placement Api ( ĊĠĠĠĠĠĠĠ Ġmerchant Flow : ĠMer chant Flow , ĊĠĠĠĠĠĠĠ Ġpayment Flow : ĠPayment Flow ĊĠĠĠ Ġ): ĠPl acement Api Ġ= ĊĠĠĠĠĠĠĠ ĠPl acement Api ( merchant Flow , Ġpayment Flow ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Order Api ( ĊĠĠĠĠĠĠĠ Ġpayment Flow : ĠPayment Flow , ĊĠĠĠĠĠĠĠ Ġorder Flow : ĠOrder Flow , ĊĠĠĠĠĠĠĠ Ġmess enger : ĠMess enger ĊĠĠĠ Ġ): ĠOrder Processing Api Ġ= ĊĠĠĠĠĠĠĠ ĠOrder Processing Api ( payment Flow , Ġorder Flow , Ġmess enger ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ws Url Provider () Ġ= ĠW s Url Provider () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide C ex d Socket ( client : ĠOk HttpClient , Ġws Url Provider : ĠW s Url Provider , Ġgson : ĠGson ) Ġ= ĊĠĠĠĠĠĠĠ ĠLive Socket ( client , Ġws Url Provider , Ġgson ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Messenger ( socket : ĠLive Socket , Ġgson : ĠGson ) Ġ= ĠMess enger ( socket , Ġgson ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide WebView Client () Ġ= ĠClient () Ċ } Ċ