package Ġru . ax che b . spotify api . data . network . interceptor Ċ Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġru . ax che b . spotify api . data . AccessToken Provider Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . IOException Ċ Ċ class ĠAuth Interceptor ( private Ġval ĠaccessToken Provider : ĠAccess Token Provider ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= ĠaccessToken Provider . getToken () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠACCESS _ TOKEN _ HEADER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ BE AR ER Ġ$ accessToken " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ ĠTim ber . d ( request . url . toString ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACCESS _ TOKEN _ HEADER Ġ= Ġ" Authorization " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBE AR ER Ġ= Ġ" Bearer " ĊĠĠĠ Ġ} Ċ }