package Ġcom . re putation overflow . network Ċ Ċ import Ġcom . re putation overflow . Build Config Ċ import Ġcom . re putation overflow . logger . Logger Ċ import Ġcom . re putation overflow . network . intercept ors . AccessToken Interceptor Ċ import Ġcom . re putation overflow . network . intercept ors . App Key Interceptor Ċ import Ġcom . re putation overflow . session . Session Dao Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . android . components . Application Component Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . scal ars . Scalars Converter Factory Ċ import Ġjavax . inject . Singleton ĊĊ Ċ private Ġconst Ġval ĠBASE _ URL Ġ= Ġ" https :// api . stack exchange . com / 2 . 2 /" Ċ private Ġconst Ġval ĠKEY Ġ= ĠBuild Config . STACK _ EX CHANGE _ KEY Ċ Ċ @ Install In ( Application Component :: class ) Ċ @ Module Ċ object ĠNetwork Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Ret rofit ( ĊĠĠĠĠĠĠĠ Ġsession Dao : ĠSession Dao ĊĠĠĠ Ġ): ĠStack Exchange ApiService Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Requests Ġ= ĠInter ceptor Ġ{ Ġchain Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . log ( chain . request (). url (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( chain . request ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġprovide Ret rofit ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBASE _ URL , ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Key Interceptor ( KEY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccess Token Interceptor ( session Dao . getSession ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Requests ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġprovide Ret rofit ( ĊĠĠĠ Ġurl : ĠString , ĊĠĠĠ Ġintercept ors : ĠArray < Interceptor > Ċ ): ĠStack Exchange ApiService Ġ{ ĊĊĠĠĠ Ġval Ġok HttpClient Ġ= ĠOk HttpClient . Builder () ĊĊĠĠĠ Ġintercept ors . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġok HttpClient . add Interceptor ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġval Ġm oshi Ġ= ĠM oshi . Builder () ĊĠĠĠĠĠĠĠ Ġ. add ( Kotlin Json Adapter Factory ()) ĊĠĠĠĠĠĠĠ Ġ. build () Ġ*/ ĊĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient . build ()) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Scalars Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( url ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ. create ( Stack Exchange ApiService :: class . java ) Ċ }