package Ġcom . pus at ru q . mut tab aa h . di . module Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . facebook . ste tho . okhttp 3 . St eth o Interceptor Ċ import Ġcom . pus at ru q . mut tab aa h . data . remote . Menu Service Ċ import Ġcom . pus at ru q . mut tab aa h . data . remote . News Service Ċ import Ġcom . pus at ru q . mut tab aa h . util . Memory Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ 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 . gson . Gson Converter Factory Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠH ACK ER _ NE WS _ URL Ġ= Ġ" http :// pus at ru qy ah . com / api /" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Ok HttpClient ( application : ĠApplication ): ĠOk HttpClient Ġ= ĊĠĠĠĠĠĠĠ ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Network Interceptor ( St eth o Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 0 L , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( 1 0 L , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 3 0 L , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cache ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCache ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( application . cacheDir , Ġ" BL Cache "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMemory . calc Cache Size ( application , Ġ. 2 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ok HttpClient ( application : ĠApplication ): ĠOk HttpClient Ġ= Ġbuild Ok HttpClient ( application ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( ok HttpClient : ĠOk HttpClient ): ĠRet rofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( H ACK ER _ NE WS _ URL ) ĊĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide News Service ( ret rofit : ĠRet rofit ): ĠNews Service Ġ= ĊĠĠĠĠĠĠĠ Ġretrofit . create ( News Service :: class . java ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Menu Service ( ret rofit : ĠRet rofit ): ĠMenu Service Ġ= ĊĠĠĠĠĠĠĠ Ġretrofit . create ( Menu Service :: class . java ) Ċ Ċ } Ċ