package Ġcn . hao hao . db book . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġcn . hao hao . db book . Build Config Ċ import Ġcn . hao hao . db book . data . Book Service Ċ import Ġcn . hao hao . db book . data . D mz j Service Ċ import Ġcn . hao hao . db book . data . datasource . Book DataSource Ċ import Ġcn . hao hao . db book . data . datasource . D mz j DataSource Ċ import Ġcn . hao hao . db book . data . datasource . cloud . Cloud Book DataSource Ċ import Ġcn . hao hao . db book . data . datasource . cloud . Cloud D mz j DataSource Ċ import Ġcn . hao hao . db book . data . net . Request Interceptor Ċ import Ġcn . hao hao . db book . data . net . Response Interceptor Ċ import Ġcn . hao hao . db book . di . qual ifier . Application Qualifier Ċ import Ġcn . hao hao . db book . di . qual ifier . Cloud Data Qualifier Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java . Rx Java Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠH ao hao Ch ang Ġon Ġ 2 0 1 7 / 6 / 1 0 . Ċ Ġ*/ Ċ @ Module Ċ class ĠData Module Ġ{ ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Cache (@ Application Qualifier Ġcontext : ĠContext ) Ġ= ĠCache ( context . cacheDir , Ġ 1 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 . to Long ()) ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Request Interceptor () Ġ= ĠRequest Interceptor () ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Response Interceptor () Ġ= ĠResponse Interceptor () ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ok HttpClient ( cache : ĠCache , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Interceptor : ĠRequest Interceptor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Interceptor : ĠResponse Interceptor ): ĠOk HttpClient Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( request Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Network Interceptor ( response Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġif Ġ( Build Config . DEBUG ) ĠHttp Logging Interceptor . Level . BODY Ġelse ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). build () Ċ Ċ // ĠĠĠ Ġ@ Provides Ġ@ Singleton Ċ // ĠĠĠ Ġfun Ġprovide Rest Adapter ( client : ĠOk HttpClient ): ĠRet rofit Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit ( client , Book Service . BASE _ URL ) ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Book Service ( client : ĠOk HttpClient ): ĠBook Service Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit ( client , ĠBook Service . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( Book Service :: class . java ) ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton Ġ@ Cloud Data Qualifier ĊĠĠĠ Ġfun Ġprovide Book DataSource ( book Service : ĠBook Service ): ĠBook DataSource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCloud Book DataSource ( book Service ) ĊĊĠĠĠ Ġ/** åĬ¨ æ¼ « ä¹ĭ å®¶ , æ¯ı ä¸Ģä¸ª éĢļè¿ĩ d agger æıĲä¾Ľ çļĦ å¯¹è±¡ , éĥ½ åı¯ä»¥éĢļè¿ĩ d agger å®ļä¹ī æĸ¹æ³ķ åľ¨ åıĤæķ° ä¸Ń åıĸ åĪ° Provides **/ ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide D mz j Service ( dm zj Client : ĠOk HttpClient ): ĠD mz j Service Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit ( dm zj Client , ĠD mz j Service . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( D mz j Service :: class . java ) ĊĊĠĠĠ Ġ@ Provides Ġ@ Singleton Ġ@ Cloud Data Qualifier ĊĠĠĠ Ġfun Ġprovide D mz j DataSource ( dm zj Service : ĠD mz j Service ): ĠD mz j DataSource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCloud D mz j DataSource ( dm zj Service ) ĊĊĠĠĠ Ġprivate Ġfun Ġretrofit ( client : ĠOk HttpClient , ĠbaseUrl : ĠString ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }