package Ġcom . explore . playground . download manager Ċ Ċ import Ġandroid . app . Download Manager Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . explore . playground . R Ċ import Ġcom . explore . playground . utils . copy Clipboard Ċ import Ġcom . explore . playground . utils . toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ download _ manager .* Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠDownload Manager Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġdownload Id Ġby ĠDeleg ates . notNull < Long >() ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse (" https :// www . w 3 . org / W AI / ER / tests / xhtml / test files / resources / pdf / dummy . pdf ") ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġregister Receiver ( on Download Complete , ĠIntent Filter ( Download Manager . ACTION _ DOWNLOAD _ COMPLETE )) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ download _ manager ) ĊĠĠĠĠĠĠĠ Ġbt Download FI le . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġ" sample . pdf " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDownload Manager . Request ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Notification Visibility ( Download Manager . Request . VIS IBILITY _ VISIBLE _ NOTIFY _ ONLY _ COMP LE TION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setDescription (" description "). setTitle ( fileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Destination In External Public Dir ( Environment . DIRECTORY _ DOWNLOAD S , ĠfileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allowed Over Meter ed ( true ). set Allowed Over Roaming ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Id Ġ= Ġenqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbt Show PDF . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ VIEW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbt Copy . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Clipboard (" g ur ara ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon Download Complete : ĠBroadcast Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Fetching Ġthe Ġdownload Ġid Ġreceived Ġwith Ġthe Ġbroadcast ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid : ĠLong Ġ= Ġintent . getLong Extra ( Download Manager . EXTRA _ DOWNLOAD _ ID , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Checking Ġif Ġthe Ġreceived Ġbroadcast Ġis Ġfor Ġour Ġen queued Ġdownload Ġby Ġmatching Ġdownload Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( download Id Ġ=== Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Complete ", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }