package Ġcom . s het j . di yal bu me . ppt test Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . li ul ish uo . file downloader . Base Download Task Ċ import Ġcom . li ul ish uo . file downloader . File Download Listener Ċ import Ġcom . li ul ish uo . file downloader . File Downloader Ċ import Ġcom . li ul ish uo . file downloader . util . File Download Utils Ċ import Ġcom . s het j . di yal bu me . R Ċ import Ġcom . tencent . smt t . sdk . Qb Sdk Ċ import Ġcom . tencent . smt t . sdk . T bs Reader View Ċ import Ġcom . zh ou you . http . Easy Http Ċ import Ġcom . zh ou you . http . callback . Download Progress CallBack Ċ import Ġcom . zh ou you . http . exception . ApiException Ċ import Ġkotlinx . android . synt hetic . main . activity _ x 5 _ reader .* Ċ import Ġme . s het j . base . kt . to MD 5 Ċ import Ġme . s het j . base . tools . file . SD Card Utils Ċ import Ġme . s het j . download . base . Tasks Manager Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . File Ċ Ċ class ĠX 5 Reader Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm T bs Reader View Ġ: ĠT bs Reader View ?= null ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ x 5 _ reader ) ĊĠĠĠĠĠĠĠ Ġinit T bs Reader () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit T bs Reader (){ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Qb Sdk . is T bs Core Inited ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQ b Sdk . pre Init ( application Context , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠQ b Sdk . init X 5 Environment ( application Context , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġm T bs Reader View Ġ= Ġ ĠT bs Reader View ( this , ĠT bs Reader View . Reader Callback Ġ{ Ġp 0 , Ġp 1 , Ġp 2 Ġ-> ĊĊĠĠĠĠĠĠĠ Ġ}) Ċ // Ċ // Ċ // ĠĠĠĠĠĠĠ Ġval Ġparams : ĠHashMap < String , ĠString > Ġ= ĠHashMap () Ċ // ĠĠĠĠĠĠĠ Ġparams [" local "] Ġ= Ġ" false " Ċ // ĠĠĠĠĠĠĠ ĠQ b Sdk . open FileReader ( this , Ġfile P ah , Ġparams ) Ġ{ Ġp 0 Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 0 Ġ== Ġ" open ĠQ B ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup _ tips ?. post Delayed ({ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 5 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( p 0 Ġ!= Ġ" open Ġsuccess ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĊĠĠĠĠĠĠĠ Ġpr view . addView ( m T bs Reader View , ĠĠ ĠFrame Layout . LayoutParams (- 1 , Ġ- 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġfile P ah Ġ= Ġ Ġ" https :// media . ly che er . net / material / 6 5 8 3 / 5 e 6 8 5 1 5 0 2 b 6 9 bd 5 0 5 8 5 a 4 3 1 8 . pdf " ĊĠĠĠĠĠĠĠ Ġval ĠfileType Ġ= Ġfile P ah . substring ( file P ah . lastIndexOf (".") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ// task ID ĊĠĠĠĠĠĠĠ ĠEasy Http . down Load ( file P ah ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. save Name ( file P ah . to MD 5 () Ġ+ Ġ"." Ġ+ ĠfileType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute ( object Ġ: ĠDownload Progress CallBack < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( t : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠApiException ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġupdate ( bytes Read : ĠLong , Ġcontent Length : ĠLong , Ġdone : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete ( path : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm T bs Reader View ?. open File ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠT bs Reader View ?. open File ( file P ah : String ? ){ ĊĠĠĠĠĠĠĠ Ġif Ġ( file P ah Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġthis Ġ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġt bs Reader Temp Ġ= ĠĠ ĠSD Card Utils . cache Ġ+ Ġ"/ T bs Reader Temp " ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠĠ ĠBundle () ĊĠĠĠĠĠĠĠ Ġbundle . putString (" filePath ", Ġfile P ah ) ĊĠĠĠĠĠĠĠ Ġbundle . putString (" temp Path ", Ġt bs Reader Temp ) ĊĠĠĠĠĠĠĠ Ġval ĠfileType Ġ= Ġfile P ah . substring ( file P ah . lastIndexOf (".") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġpre Open ( fileType , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen File ( bundle ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" open Ġerror ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm T bs Reader View ?. on Stop () ĊĠĠĠĠĠĠĠ Ġm T bs Reader View ?. destroy Drawing Cache () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠ Ġ} Ċ } ĊĊĊ