/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 4 - 2 0 1 7 Ġy vol k Ġ( Y uri ĠVol kov ), Ġhttp :// y ur iv olk ov . com Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . and status . app . data Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġandroid . provider . Base Columns Ċ import Ġorg . and status . app . database . table . Download Table Ċ import Ġorg . and status . app . graphics . Cached Image Ċ import Ġorg . and status . app . graphics . Media Metadata Ċ import Ġorg . and status . app . service . Command Data Ċ import Ġorg . and status . app . service . My Service Manager Ċ import Ġorg . and status . app . util . Relative Time Ċ import Ġorg . and status . app . util . Uri Utils Ċ Ċ class ĠAtt ached Media File Ġ: ĠMedia File Ġ{ ĊĠĠĠ Ġval Ġuri : ĠUri ? ĊĠĠĠ Ġval Ġpreview Of Download Id : ĠLong ĊĠĠĠ Ġval Ġpreview Of : ĠAtt ached Media File ĊĊĠĠĠ Ġprivate Ġconstructor () Ġ: Ġsuper ("", ĠMy ContentType . UNKNOWN , ĠMedia Metadata . EMPTY , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload Status . AB SENT , ĠRelative Time . DATETIME _ M ILL IS _ NE VER , Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= ĠUri . EMPTY ĊĠĠĠĠĠĠĠ Ġpreview Of Download Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpreview Of Ġ= ĠEMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġconstructor ( download Id : ĠLong , Ġcursor : ĠCursor ?) Ġ: Ġsuper ( Db Utils . getString ( cursor , ĠDownload Table . FILE _ NAME ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy ContentType . load ( Db Utils . getLong ( cursor , ĠDownload Table . CONTENT _ TYPE )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Metadata . from Cursor ( cursor ), Ġdownload Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDownload Status . load ( Db Utils . getLong ( cursor , ĠDownload Table . DOWNLOAD _ STATUS )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDb Utils . getLong ( cursor , ĠDownload Table . DOWN LOADED _ DATE )) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= ĠUri Utils . fromString ( Db Utils . getString ( cursor , ĠDownload Table . URL )) ĊĠĠĠĠĠĠĠ Ġpreview Of Download Id Ġ= ĠDb Utils . getLong ( cursor , ĠDownload Table . PRE VIEW _ OF _ DOWNLOAD _ ID ) ĊĠĠĠĠĠĠĠ Ġpreview Of Ġ= ĠEMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( data : ĠDownload Data ) Ġ: Ġsuper ( ĊĠĠĠĠĠĠĠ Ġdata . filename , Ġdata . get ContentType (), Ġdata . media Metadata , Ġdata . download Id , Ġdata . getStatus (), ĊĠĠĠĠĠĠĠ Ġdata . get Downloaded Date () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= Ġdata . get Uri () ĊĠĠĠĠĠĠĠ Ġpreview Of Download Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpreview Of Ġ= ĠEMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetDefault Image (): ĠCached Image Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCached Image . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Target Uri (): ĠUri ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( preview Of . isEmpty ) Ġuri Ġelse Ġpreview Of . uri ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Target Video (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( preview Of . isEmpty ) Ġis Video () Ġelse Ġpreview Of . is Video () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Download () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġ 0 L Ġ|| Ġuri Ġ=== ĠUri . EMPTY Ġ|| Ġ! contentType . get Download Media Of This Type ()) Ġreturn ĊĠĠĠĠĠĠĠ ĠMy Service Manager . send Command ( Command Data . new Fetch Attachment ( 0 , Ġid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġconstructor ( preview File : ĠAtt ached Media File , Ġpreview Of : ĠAtt ached Media File ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( preview File . download File . get Filename (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview File . contentType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview File . media Metadata , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview File . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview File . download Status , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview File . downloaded Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= Ġpreview File . uri ĊĠĠĠĠĠĠĠ Ġpreview Of Download Id Ġ= Ġpreview File . preview Of Download Id ĊĠĠĠĠĠĠĠ Ġthis . preview Of Ġ= Ġpreview Of ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġimage Or Link May Be Shown (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠcontentType . is Image () Ġ&& Ġ( super . image May Be Shown () Ġ|| Ġuri Ġ!== ĠUri . EMPTY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġintent To View (): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġval Ġfile To View Ġ= Ġif Ġ( preview Of . isEmpty ) Ġthis Ġelse Ġpreview Of ĊĠĠĠĠĠĠĠ Ġval Ġmedia File Uri Ġ= Ġif Ġ( file To View . download File . exists Now ()) ĠFile Provider . download Filename To Uri ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile To View . download File . get Filename ()) Ġelse Ġfile To View . uri ĊĠĠĠĠĠĠĠ Ġif Ġ( Uri Utils . isEmpty ( media File Uri )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" text /* " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( media File Uri , Ġfile To View . contentType . general MimeType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ STREAM , Ġmedia File Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ GRANT _ READ _ URI _ PERMISSION ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġintent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( o : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġo ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( o Ġ== Ġnull Ġ|| Ġjava Class Ġ!= Ġo . java Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġimage File Ġ= Ġo Ġas ĠAtt ached Media File ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( preview Of Download Id Ġ!= Ġimage File . preview Of Download Id ) Ġfalse Ġelse Ġuri Ġ== Ġimage File . uri ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġuri . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( preview Of Download Id Ġxor Ġ( preview Of Download Id Ġ ush r Ġ 3 2 )). toInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY : ĠAtt ached Media File Ġ= ĠAtt ached Media File () ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Cursor ( cursor : ĠCursor ): ĠAtt ached Media File Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Id Ġ= ĠDb Utils . getLong ( cursor , ĠBase Columns ._ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( download Id Ġ== Ġ 0 L ) ĠEMPTY Ġelse ĠAtt ached Media File ( download Id , Ġcursor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ