package Ġbe . app wise . networking . intercept ors Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . os . Build Ċ import Ġbe . app wise . networking . Network Constants Ċ import Ġbe . app wise . networking . Networking Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġjava . util .* Ċ Ċ class ĠHeader Interceptor ( ĊĠĠĠ Ġprivate Ġval ĠappName : ĠString , ĊĠĠĠ Ġprivate Ġval Ġversion Name : ĠString , ĊĠĠĠ Ġprivate Ġval Ġversion Code : ĠString , ĊĠĠĠ Ġprivate Ġval ĠapiVersion : ĠString , ĊĠĠĠ Ġprivate Ġval Ġapplication Id : ĠString , ĊĠĠĠ Ġprivate Ġval Ġprotected : ĠBoolean Ċ ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĊĠĠĠĠĠĠĠ ĠLocale . getDefault () ĊĠĠĠĠĠĠĠ Ġval Ġsystem Configuration Ġ= ĠResources . getSystem (). configuration ĊĠĠĠĠĠĠĠ Ġval Ġlocale Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 4 ) Ġsystem Configuration . locales . get ( 0 ) Ġelse ĠLocale . getDefault () ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Code Ġ= Ġlocale . language ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= Ġrequest . newBuilder () ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ KEY _ USER _ AGENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ appName /$ version Name /$ version Code Ġ(${ Build . MODEL }; ĠAndroid /${ Build . VERSION . SDK _ INT })" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ KEY _ ACCEPT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ VALUE _ ACCEPT _ APPLICATION _ JSON ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( Network Constants . HEADER _ KEY _ ACCEPT _ LANGUAGE , Ġlanguage Code ) ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( Network Constants . HEADER _ KEY _ API _ VERSION , ĠapiVersion ) ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ KEY _ APP _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ VALUE _ PLATFORM _ ANDROID ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( Network Constants . HEADER _ KEY _ APP _ ID , Ġapplication Id ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( protected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork ing . get AccessToken ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Constants . HEADER _ KEY _ AUTHORIZATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ it . token _ type } Ġ${ it . access _ token }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Request Ġ= Ġrequest Builder . build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( new Request ) ĊĠĠĠ Ġ} Ċ } Ċ