package Ġ{{ Ġcook iecutter . package _ name Ġ}} . networking Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġ{{ Ġcook iecutter . package _ name Ġ}} . Build Config Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠAdds Ġ` User - Agent ` Ġand Ġ` Accept - Language ` Ġheaders Ġto Ġevery Ġrequest . Ċ Ġ*/ Ċ class ĠUser Agent Interceptor Ġ@ Inject Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġuser Agent : ĠString ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= ĠBuild Config . APPLICATION _ ID ĊĠĠĠĠĠĠĠ Ġval Ġversion Code Ġ= ĠBuild Config . VERSION _ CODE ĊĠĠĠĠĠĠĠ Ġval Ġplatform Version Ġ= ĠBuild . VERSION . RELEASE ĊĠĠĠĠĠĠĠ Ġval Ġsdk Int Ġ= ĠBuild . VERSION . SDK _ INT ĊĠĠĠĠĠĠĠ Ġval Ġversion Name Ġ= ĠBuild Config . VERSION _ NAME ĊĊĠĠĠĠĠĠĠ Ġuser Agent Ġ= Ġ"$ packageName /$ version Code Ġ($ PLATFORM ; Ġ$ platform Version ; Ġ$ sdk Int ) ĠVersion /$ version Name " ĊĊĠĠĠĠĠĠĠ ĠTim ber . i (" Initialized Ġuser Ġagent Ġas Ġ`$ userAgent ` ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( HEADER _ USER _ AGENT , Ġuser Agent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( HEADER _ ACCEPT _ LANGUAGE , Ġread User Languages ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠHEADER _ ACCEPT _ LANGUAGE Ġ= Ġ" Accept - Language " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠHEADER _ USER _ AGENT Ġ= Ġ" User - Agent " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPLATFORM Ġ= Ġ" Android " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġread User Languages ( context : ĠContext ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . configuration . locales . to Language Tags () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . configuration . locale . to Language Tag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ