package Ġcom . g ork em . github repo . di . module Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . g ork em . github repo . Build Config Ċ import Ġcom . g ork em . github repo . data . api . Github Service Ċ import Ġcom . g ork em . github repo . data . api . Github ServiceImpl Ċ import Ġcom . g ork em . github repo . data . local . Github Repo DB Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠData Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Db ( app : ĠApplication ) Ġ= ĠGithub Repo DB . get AppData Base ( app ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide F avour ite Dao ( db : ĠGithub Repo DB ) Ġ= Ġdb . fav our ite Dao () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Ok HttpClient ( interceptor : ĠHttp Logging Interceptor ): ĠOk HttpClient Ġ= ĊĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). add Interceptor ( interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Logging Interceptor () Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) ĠHttp Logging Interceptor . Level . BODY Ġelse ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Gson (): ĠGson Ġ= ĠGson () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( ĊĠĠĠĠĠĠĠ Ġok httpClient : ĠOk HttpClient , ĊĠĠĠĠĠĠĠ Ġconverter Factory : ĠGson Converter Factory ĊĠĠĠ Ġ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Github Service . ENDPOINT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( converter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Gson Converter Factory ( gson : ĠGson ): ĠGson Converter Factory Ġ= ĊĠĠĠĠĠĠĠ ĠGson Converter Factory . create ( gson ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide News Service ( ret rofit : ĠRet rofit ): ĠGithub Service Ġ= ĊĠĠĠĠĠĠĠ ĠGithub ServiceImpl ( ret rofit ) Ċ }