package Ġcom . mo un ache ik h na . near by . api Ċ Ċ import Ġcom . squareup . okhttp . Headers Ċ import Ġcom . squareup . okhttp . Interceptor Ċ import Ġcom . squareup . okhttp . Response Ċ import Ġorg . th reet en . bp . Clock Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . IOException Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠInter ceptor Ġto Ġlog Ġnetwork Ġcalls Ġwith Ġtheir Ġpath , Ġheaders Ġand Ġtimes . Ċ Ġ*/ Ċ @ Singleton Ċ class ĠLogging Interceptor ĊĠĠĠ Ġ@ Inject Ġconstructor ( private Ġval Ġclock : ĠClock ) Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġval Ġstart Ms Ġ= Ġclock . millis () ĊĠĠĠĠĠĠĠ ĠTim ber . v (" Sending Ġrequest Ġ% s % s ", Ġrequest . url (), Ġpretty Headers ( request . headers ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġchain . proceed ( request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtook Ms Ġ= Ġclock . millis () Ġ- Ġstart Ms ĊĠĠĠĠĠĠĠ ĠTim ber . v (" Received Ġresponse Ġ(% s ) Ġfor Ġ% s Ġin Ġ% sms % s ", Ġresponse . code (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . request (). url (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtook Ms , Ġpretty Headers ( response . headers ())) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpretty Headers ( headers : ĠHeaders ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( headers . size () Ġ== Ġ 0 ) Ġreturn Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbuilder . append ("\ n Ġ ĠHeaders :") ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. headers . size () Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("\ n ĠĠĠ Ġ"). append ( headers . name ( i )). append (": Ġ"). append ( headers . value ( i )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} Ċ } Ċ