package Ġcom . transform ations . sample . data . remote Ċ Ċ import Ġcom . transform ations . sample . Build Config Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . k oin . dsl . module Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ val Ġnetwork Module Ġ= Ġmodule Ġ{ ĊĊĠĠĠ Ġfactory Ġ{ Ġprovides Http logging () Ġ} ĊĊĠĠĠ Ġfactory Ġ{ Ġprovides Ok HttpClient ( get ()) Ġ} Ċ } Ċ Ċ fun Ġprovide Ret rofit ( ok HttpClient : ĠOk HttpClient , Ġurl : ĠString ): ĠRet rofit Ġ{ ĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( url ) ĊĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()). build () Ċ } Ċ Ċ fun Ġprovides Ok HttpClient ( interceptor : ĠHttp Logging Interceptor ): ĠOk HttpClient Ġ{ ĊĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( 6 0 L , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( 6 0 L , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( interceptor ). build () Ċ } Ċ Ċ fun Ġprovides Http logging (): ĠHttp Logging Interceptor Ġ{ ĊĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠ Ġinterceptor . level Ġ= Ġif Ġ( Build Config . DEBUG ) ĊĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠ Ġreturn Ġinterceptor Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > Ġcreate WebService ( ret rofit : ĠRet rofit ): ĠT Ġ= Ġretrofit . create ( T :: class . java ) Ċ