package Ġcom . example . tracker . di . module Ċ Ċ import Ġcom . example . tracker . data . remote . ret rofit . ApiClient Ċ import Ġcom . example . tracker . data . remote . ret rofit . ApiService Ċ import Ġcom . example . tracker . data . remote . ret rofit . Api URL Ċ 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 ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Interceptor (): ĠHttp Logging Interceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHttp Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ok HttpClient ( interceptor : ĠHttp Logging Interceptor ): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Interceptor ( interceptor ) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( httpClient : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Api URL . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide ApiService ( ret rofit : ĠRet rofit ): ĠApi Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( ApiService :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ }