package Ġcom . k ang ra oo . base kt lib . tools . okhttp Ċ Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġcom . k ang ra oo . base kt lib . app . S Application Ċ import Ġcom . k ang ra oo . base kt lib . tools . log . UL og Ċ import Ġjava . nio . charset . Charset Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġokhttp 3 .* Ċ import Ġokhttp 3 . MediaType . Companion . to MediaType OrNull Ċ import Ġokhttp 3 . ResponseBody . Companion . to ResponseBody Ċ import Ġok io . Buffer Ċ Ċ /** Ċ Ġ* Ġ åģĩ æķ°æį® ä»£çĲĨ Ċ Ġ*/ Ċ class ĠMock Interceptor Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! S Application . instance (). s Config er . debug Static ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Result ( chain , Ġrequest ) Ġ?: Ġsave Result ( chain , Ġrequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġproxy Ġ= Ġ" content :// com . q ded u . Proxy Uri /* " ĊĊĠĠĠ Ġprivate Ġfun Ġmock Result ( chain : ĠInter ceptor . Chain , Ġrequest : ĠRequest ): ĠResponse ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest . url . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolver : ĠContent Resolver Ġ= ĠS Application . context (). content Resolver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® URI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri : ĠUri Ġ= ĠUri . parse ( proxy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠéĢļè¿ĩ Content Resolver Ġ åĲĳ Content Provider ä¸Ń æŁ¥è¯¢ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolver . query ( uri , Ġnull , Ġnull , ĠarrayOf ( url ), Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjson : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor Ġ!= Ġnull Ġ&& Ġcursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Ġ= Ġcursor . getString ( 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU Log . d (" mock - json ", json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor ?. close () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( json Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠResponse . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. code ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. received Response At Millis ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sent Request At Millis (- 1 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message (" mock Ġrequest Ġsucceed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. protocol ( Protocol . HTTP _ 1 _ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġ" application / json ; charset = UTF - 8 ". to MediaType OrNull () Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠResponse Body . create ( media Type , json . toByteArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbuilder . body ( json . toByteArray (). to ResponseBody ( contentType )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU Log . e ( e . message , Ġ" æľª åĬłè½½ æ¨¡ æĭŁ æķ°æį® ï¼Į å¦Ĥæŀľ æľī éħįç½® è¯· åĬłè½½ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Result ( chain : ĠInter ceptor . Chain , Ġrequest : ĠRequest ): ĠResponse Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġrequest . url . toString () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġrequest . body ĊĊĊĠĠĠĠĠĠĠ Ġvar Ġpost json : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( request Body Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( request Body Ġis ĠMultip art Body ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Body . writeTo ( buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġrequest Body . contentType () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharset : ĠCharset Ġ= ĠcontentType ?. charset ( StandardCharsets . UTF _ 8 ) Ġ?: ĠStandard Charsets . UTF _ 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buffer . is Prob ably Utf 8 ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost json Ġ= Ġbuffer . readString ( charset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body ĊĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= Ġresponse Body !!. contentType () ĊĠĠĠĠĠĠĠ Ġval Ġcharset : ĠCharset Ġ= ĠcontentType ?. charset ( StandardCharsets . UTF _ 8 ) Ġ?: ĠStandard Charsets . UTF _ 8 ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġresponse Body . source (). buffer . clone (). readString ( charset ) ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® URI ĊĠĠĠĠĠĠĠ Ġval Ġuri : ĠUri Ġ= ĠUri . parse ( proxy ) ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġ// Ġæı Ĵ åħ¥ è¡¨ ä¸Ń æķ°æį® ĊĠĠĠĠĠĠĠ Ġvalues . put (" method ", Ġrequest . method ) ĊĠĠĠĠĠĠĠ Ġvar Ġtoken Ġ= ĠHttp Persistent Manager . instance . get Persistent ( request . url . host , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠALL _ PER SIST ENT ) ĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues . put (" token ", Ġtoken . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( post json Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues . put (" post json ", Ġpost json ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvalues . put (" api Name ", Ġurl ) ĊĠĠĠĠĠĠĠ Ġvalues . put (" json ", Ġjson ) Ċ // ĠĠĠĠĠĠĠ Ġresponse . close () ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ Content Resolver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresolver : ĠContent Resolver Ġ= ĠS Application . context (). content Resolver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠéĢļè¿ĩ Content Resolver Ġæł¹æį® URI Ġ åĲĳ Content Provider ä¸Ń æıĴåħ¥ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolver . insert ( uri , Ġvalues ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU Log . e ( e . message , Ġ" æľª åŃĺåĤ¨ æ¨¡ æĭŁ æķ°æį® ï¼Į å¦Ĥæŀľ æľī éħįç½® è¯· åĬłè½½ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} Ċ } Ċ