package Ġcom . kar th ik . delivery . base . network . interceptor Ċ Ċ import Ġcom . kar th ik . delivery . base . network . Connection Handler Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response ĊĊ Ċ /** Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠInter ceptor Ġwhich Ġrequest Ġto Ġfetch Ġresult Ġfrom Ġcache Ġif Ġthere Ġis Ġno Ġinternet Ċ Ġ* Ċ Ġ* Ġcreated Ġby ĠK arth ik ĠA Ġon Ġ 1 2 / 0 3 / 1 9 Ċ Ġ*/ Ċ class ĠCache Interceptor ( var Ġconnection Handler : ĠConnection Handler ) Ġ: ĠInter ceptor Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĊĠĠĠĠĠĠĠ Ġrequest Ġ= Ġwhen Ġ( connection Handler . isConnected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġrequest . newBuilder (). header (" Cache - Control ", Ġ" public , Ġmax - age =" Ġ+ Ġ 5 ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . newBuilder (). header (" Cache - Control ", Ġ" public , Ġonly - if - cached , Ġmax - st ale =$ CACHE _ SIN CE "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCACHE _ SIN CE Ġ= Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 2 4 Ġ* Ġ 7 Ġ Ġ// Ġ 7 Ġdays ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ