package Ġz lc . season . rx download 3 . core Ċ Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Binder Ċ import Ġandroid . os . IB inder Ċ import Ġz lc . season . rx download 3 . extension . Extension Ċ import Ġz lc . season . rx download 3 . helper . log d Ċ import Ġjava . io . File ĊĊ Ċ class ĠDownload Service Ġ: ĠService () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmission Box Ġ= ĠLocal Mission Box () ĊĠĠĠ Ġprivate Ġval Ġbinder Ġ= ĠDownload Binder () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġlog d (" create ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġlog d (" start ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onStart Command ( intent , Ġflags , Ġstart Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder Ġ{ ĊĠĠĠĠĠĠĠ Ġlog d (" bind ") ĊĠĠĠĠĠĠĠ Ġreturn Ġbinder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog d (" destroy ") ĊĠĠĠĠĠĠĠ Ġmission Box . stop All () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠDownload Binder Ġ: ĠB inder () Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġis Exists ( mission : ĠMis sion , Ġbool Callback : ĠBool Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . is Exists ( mission ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( bool Callback :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( mission : ĠMis sion , Ġstatus Callback : ĠStatus Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . create ( mission ). subscribe ( status Callback :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( mission : ĠMis sion , Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . start ( mission ). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstop ( mission : ĠMis sion , Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . stop ( mission ). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdelete ( mission : ĠMis sion , Ġdelete File : ĠBoolean , Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . delete ( mission , Ġdelete File ). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate All ( missions : ĠList < Mission >, Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . create All ( missions ). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart All ( success Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . start All (). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstop All ( success Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . stop All (). subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdelete All ( delete File : ĠBoolean , Ġsuccess Callback : ĠSuccess Callback , Ġerror Callback : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . delete All ( delete File ). subscribe ( success Callback :: apply , Ġerror Callback :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfile ( mission : ĠMis sion , Ġfile Callback : ĠFile Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . file ( mission ). subscribe ( file Callback :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġextension ( mission : ĠMis sion , Ġtype : ĠClass < out ĠExtension >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Callback : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . extension ( mission , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( success Callback :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclear ( mission : ĠMis sion , Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . clear ( mission ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclear All ( success Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . clear All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate ( new Mission : ĠMis sion , Ġsuccess Cb : ĠSuccess Callback , Ġerror Cb : ĠError Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmission Box . update ( new Mission ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( success Cb :: apply , Ġerror Cb :: apply ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠBool Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapply ( value : ĠBoolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠStatus Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapply ( status : ĠStatus ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠFile Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapply ( file : ĠFile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠSuccess Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapply ( any : ĠAny ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠError Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġapply ( throwable : ĠThrowable ) ĊĠĠĠ Ġ} Ċ }