package Ġcom . internet ed . cache _ webview . utils Ċ Ċ import Ġandroid . text . TextUtils Ċ import Ġok io . ByteString . Companion . encode Utf 8 Ċ import Ġok io . G zip Source Ċ import Ġok io . buffer Ċ import Ġok io . source Ċ import Ġjava . io .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy ale Ġon Ġ 2 0 1 8 / 7 / 1 6 . Ċ Ġ*/ Ċ object ĠOK Http File Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠEN TRY _ METADATA Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġconst Ġval ĠEN TRY _ BODY Ġ= Ġ 1 ĊĠĠĠ Ġfun Ġget Cache File ( path : ĠFile , Ġurl : ĠString ): ĠInputStream ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġkey : ĠString Ġ= Ġurl . encode Utf 8 (). md 5 (). hex () ĊĠĠĠĠĠĠĠ Ġval Ġentry File Ġ= ĠFile ( path . absolute Path , Ġkey Ġ+ Ġ"." Ġ+ ĠEN TRY _ METADATA ) ĊĠĠĠĠĠĠĠ Ġval Ġbody File Ġ= ĠFile ( path . absolute Path , Ġkey Ġ+ Ġ"." Ġ+ ĠEN TRY _ BODY ) ĊĠĠĠĠĠĠĠ Ġif Ġ( entry File . exists () Ġ&& Ġbody File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfr Ġ= ĠBufferedReader ( FileReader ( entry File ), Ġ 1 0 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġline : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġis G zip Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( fr . readLine (). also Ġ{ Ġline Ġ= Ġit Ġ} Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( line . contains (" Content - Encoding ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline . contains (" gzip ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis G zip Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream : ĠInputStream Ġ= ĠFileInputStream ( body File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! is G zip ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsource Ġ= Ġbody File . source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= ĠG zip Source ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . buffer (). inputStream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ }