/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 8 ĠH az uki Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġjp . h az uki . y uz ub rowser . download . ui Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . webkit . MimeType Map Ċ import Ġandroid . widget . Toast Ċ import Ġjp . h az uki . y uz ub rowser . R Ċ import Ġjp . h az uki . y uz ub rowser . download . core . data . Download FileInfo Ċ import Ġjp . h az uki . y uz ub rowser . download . core . data . Download Request Ċ import Ġjp . h az uki . y uz ub rowser . download . core . data . MetaData Ċ import Ġjp . h az uki . y uz ub rowser . download . core . downloader . Downloader Ċ import Ġjp . h az uki . y uz ub rowser . download . core . utils . to Document File Ċ import Ġjp . h az uki . y uz ub rowser . download . service . Download File Ċ import Ġjp . h az uki . y uz ub rowser . settings . data . AppData Ċ import Ġjp . h az uki . y uz ub rowser . utils . app . Theme Activity Ċ import Ġjp . h az uki . y uz ub rowser . utils . async Ċ import Ġjp . h az uki . y uz ub rowser . utils . ui Ċ import Ġjp . h az uki . y uz ub rowser . utils . view . Progress Dialog Ċ Ċ class ĠFast Download Activity Ġ: ĠTheme Activity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġintent . getString Extra ( EXTRA _ FILE _ URL ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( url Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġui Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠProgress Dialog ( getString ( R . string . now _ download ing )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show ( support FragmentManager , Ġ" dialog ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġasync Ġ{ Ġdownload ( url , Ġintent . getString Extra ( EXTRA _ FILE _ REFER ER ), Ġintent . getString Extra ( EXTRA _ DEFAULT _ EXTENSION )) Ġ}. await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data Ġ= Ġuri ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġuri . toString (). lastIndexOf (".") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ> Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġuri . toString (). substring ( index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmimeType Ġ= ĠMime TypeMap . get Singleton (). get MimeType From Extension ( extension ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mime Type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . putExtra ( EXTRA _ M INE _ TYPE , ĠmimeType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( RESULT _ OK , Ġresult ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . failed , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( RESULT _ C ANCE LED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlight Theme Resource (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . style . Browser Min Theme Light _ Transparent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdownload ( url : ĠString , Ġref errer : ĠString ?, Ġdef Ext : ĠString ): ĠUri ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠUri . parse ( AppData . download _ folder . get ()). to Document File ( application Context ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠDownload File ( url , Ġnull , ĠDownload Request ( referrer , Ġnull , Ġdef Ext )) ĊĠĠĠĠĠĠĠ Ġval Ġmeta Ġ= ĠMeta Data ( application Context , Ġroot , Ġfile . url , Ġfile . request ) ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= ĠDownload FileInfo ( root , Ġfile , Ġmeta ) ĊĠĠĠĠĠĠĠ Ġval Ġdown loader Ġ= ĠDown loader . get Downloader ( application Context , Ġinfo , Ġfile . request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdown loader . download () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result ) Ġinfo . root . find File ( info . name )?. uri Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ FILE _ URL Ġ= Ġ" file URL " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ FILE _ REFER ER Ġ= Ġ" file Refer er " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ DEFAULT _ EXTENSION Ġ= Ġ" def Ext " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ M INE _ TYPE Ġ= Ġ" mine Type " ĊĠĠĠ Ġ} Ċ } Ċ