package Ġcom . github . x ero . ist he app . data . rx Firebase Ċ Ċ import Ġandroid . net . Uri Ċ import Ġcom . google . firebase . storage . File Download Task Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . google . firebase . storage . Upload Task Ċ import Ġio . reactivex . Single Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl uis Ġr af ael Ġon Ġ 2 8 / 0 3 / 1 8 . Ċ Ġ*/ Ċ object ĠR xF ire base Storage Ġ{ ĊĊĠĠĠ Ġfun ĠStorage Reference . rx Get File ( destination File : ĠFile , progress : (( progress : Int )-> Unit )? = null ): ĠSingle < File Download Task . Task Snapshot > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . create Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Snapshot Storage Task Ġ= ĠgetFile ( destination File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġtask Snapshot Ġ-> Ġemitter . on Success ( task Snapshot ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġerror Ġ-> Ġif Ġ(! emitter . is Disposed ) Ġ{ Ġemitter . onError ( error ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Progress Listener Ġ{ Ġif Ġ( progress != null ) Ġprogress ((( 1 0 0 . 0 Ġ* Ġit . bytes Transfer red ) Ġ/ Ġit . total Byte Count ). toInt ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . set C ancellable Ġ{ Ġtask Snapshot Storage Task . cancel () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠStorage Reference . rx Put File ( uri : ĠUri , progress : (( progress : Int )-> Unit )? = null ): ĠSingle < Upload Task . Task Snapshot > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . create < Upload Task . Task Snapshot > Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Snapshot Storage Task Ġ= Ġput File ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġtask Snapshot Ġ-> Ġemitter . on Success ( task Snapshot ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġerror Ġ-> Ġif Ġ(! emitter . is Disposed ) Ġemitter . onError ( error ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Progress Listener Ġ{ Ġif Ġ( progress != null ) Ġprogress ((( 1 0 0 . 0 Ġ* Ġit . bytes Transfer red ) Ġ/ Ġit . total Byte Count ). toInt ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . set C ancellable Ġ{ Ġtask Snapshot Storage Task . cancel () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }