package Ġ` in `. dim igo . dim ig oin . data . util Ċ Ċ import Ġ` in `. dim igo . dim ig oin . data . util . Token Authenticator . Companion . AUTHORIZATION _ HEADER Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ Ċ class ĠAuthorization Interceptor ( private Ġval Ġshared Preferences Manager : ĠSharedPreferences Manager ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġif Ġ( is Auth Header Exists ( request )) Ġreturn Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġauthorized Request Ġ= Ġget Authorized Request ( request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( authorized Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Authorized Request ( request : ĠRequest ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= Ġshared Preferences Manager . accessToken ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( accessToken Ġ== Ġnull ) Ġrequest ĊĠĠĠĠĠĠĠ Ġelse Ġrequest . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header ( AUTHORIZATION _ HEADER , Ġ" Bearer Ġ$ accessToken ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Auth Header Exists ( request : ĠRequest ) Ġ= Ġrequest . header ( AUTHORIZATION _ HEADER ) Ġ!= Ġnull Ċ } Ċ