package Ġcom . for n to h . mv vm templates . recipes . web service . src Ċ Ċ fun Ġbase Interceptor ( ĊĠĠĠ ĠpackageName : ĠString Ċ ) Ġ= Ġ""" package Ġ$ packageName Ċ Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠBase Interceptor Ġ@ Inject Ġconstructor () Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Request Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Url Ġ= Ġoriginal Request . url ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Url Ġ= Ġoriginal Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add QueryParameter (" lang ", ĠLocale . getDefault (). to Language Tag ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġoriginal Request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Accept ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Connection ", Ġ" Keep - Alive ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Content - Type ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( new Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ """ Ċ Ċ fun Ġtoken Interceptor ( ĊĠĠĠ ĠpackageName : ĠString , ĊĠĠĠ Ġcommon PackageName : ĠString Ċ ) Ġ= Ġ""" package Ġ$ packageName Ċ Ċ import Ġ$ common PackageName . pref . Preference Repository Ċ import Ġokhttp 3 . Interceptor Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠToken Interceptor Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġpreference Repository : ĠPreference Repository , Ċ ) Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ) Ġ= Ġchain . proceed ( ĊĠĠĠĠĠĠĠ Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Authorization ", Ġ" Bearer Ġ+ { preference Repository . user Token }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ) Ċ } Ċ """. replace ('+ ', Ġ'$ ') ĊĊ