package Ġar . com . wo lox . android . bootstrap . di Ċ Ċ import Ġar . com . wo lox . android . bootstrap . Build Config Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ 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 Ċ @ Install In ( Singleton Component :: class ) Ċ class ĠServices Modules Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide HttpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) ĠHttp Logging Interceptor . Level . BODY Ġelse ĠHttp Logging Interceptor . Level . BASIC ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġprovide Ret rofit ( httpClient : ĠOk HttpClient ): ĠRet rofit Ġ= ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL Ġ?: ĠBuild Config . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠBASE _ URL : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ