package Ġvin ova . intern . nh om xn xx . mex plorer . service ĊĊĊ Ċ import Ġandroid . app . Intent Service Ċ import Ġandroid . app . Notification Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġjava . io . File Ċ Ċ import Ġretrofit 2 . Call Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . R Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Log Ċ import Ġcom . google . gson . JsonArray Ċ import Ġcom . google . gson . JsonObject Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . api . Call Api Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . model . Base Response Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . utils . FileUtils Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . utils . Progress RequestBody Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . utils . Support ĊĊ Ċ class ĠUpload File Service Ġ: ĠIntent Service (" Upload ĠFile ĠService "), ĠProgress RequestBody . Upload Callbacks Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Progress Update ( percentage : ĠInt , Ġm File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Notification ( percentage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Upload Fail () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Upload Complete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġnotification Builder : ĠNotification Compat . Builder ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġnotification Manager : ĠNotification Manager ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġpercentage : Int Ġ= Ġ 0 ĊĠĠĠ Ġlateinit Ġvar Ġuri : Uri ĊĊĠĠĠ Ġlateinit Ġvar Ġname : String ĊĠĠĠ Ġlateinit Ġvar Ġuser Token : String ĊĠĠĠ Ġlateinit Ġvar Ġid : String ĊĠĠĠ Ġlateinit Ġvar Ġcloud Type : String ĊĠĠĠ Ġlateinit Ġvar Ġc token : String ĊĠĠĠ Ġlateinit Ġvar Ġbody Ġ: ĠMultip art Body . Part ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġuri Ġ= ĠUri . parse ( intent ?. getString Extra (" uri ")) ĊĠĠĠĠĠĠĠ Ġuser Token Ġ= Ġintent ?. getString Extra (" user _ token "). toString () ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġintent ?. getString Extra (" id "). toString () ĊĠĠĠĠĠĠĠ Ġcloud Type Ġ= Ġintent ?. getString Extra (" ctype "). toString () ĊĠĠĠĠĠĠĠ Ġc token Ġ= Ġintent ?. getString Extra (" cto ken "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFileUtils . getFile ( this , uri ) ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġfile ?. name . toString () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠProgress RequestBody ( file !! , Ġthis , this , ĠSupport . get MimeType ( this , Ġuri ). toString ()) ĊĠĠĠĠĠĠĠ Ġbody Ġ= ĠMultip art Body . Part . create FormData (" file ", Ġfile . name , Ġrequest Body ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onStart Command ( intent , Ġflags , Ġstart Id ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Handle Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ" my _ channel _ 0 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname 1 Ġ= Ġ" Channel 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġ" My Ġchannel 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimportance Ġ= ĠNotification Manager . IMPORT ANCE _ LOW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Channel Ġ= ĠNotification Channel ( id , Ġname 1 , Ġimportance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel . description Ġ= Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel . enable Lights ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel . light Color Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel . enable V ibration ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Channel . vi br ation Pattern Ġ= Ġlong ArrayOf ( 1 0 0 , Ġ 2 0 0 , Ġ 3 0 0 , Ġ 4 0 0 , Ġ 5 0 0 , Ġ 4 0 0 , Ġ 3 0 0 , Ġ 2 0 0 , Ġ 4 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager !!. create Notification Channel ( m Channel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠCHAN NEL _ ID Ġ= Ġ" my _ channel _ 0 2 " ĊĊĠĠĠĠĠĠĠ Ġnotification Builder Ġ= ĠNotification Compat . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ logo _ img ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" Up loading Ġfile ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Channel Id ( CHANNEL _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. notify ( 0 , Ġnotification Builder !!. build ()) ĊĠĠĠĠĠĠĠ Ġinit Upload () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Upload () Ġ{ ĊĠĠĠĠĠĠĠ ĠCall Api . getInstance (). upload File ( user Token , Ġid , Ġbody , Ġcloud Type , Ġc token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Base Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Base Response > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Upload Fail () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Base Response > ?, Ġresponse : ĠResponse < Base Response > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response ?. body ()?. status . equals (" success ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" AB CD ", Ġresponse ?. message ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Upload Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" AB CD ", Ġresponse ?. error Body ()?. string () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Notification ( percentage : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġnotification Builder !!. set Progress ( 1 0 0 , Ġpercentage , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnotification Builder !!. setContent Text (" Uploaded Ġ$ percentage % Ġ") ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. notify ( 0 , Ġnotification Builder !!. build ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġon Upload Complete () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. cancel ( 0 ) ĊĠĠĠĠĠĠĠ Ġnotification Builder !!. set Progress ( 0 , Ġ 0 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnotification Builder !!. setContent Text (" File ĠU plo aded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( Settings . System . DEFAULT _ NOTIFICATION _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Defaults ( Notification . DEFAULT _ SOUND ) ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. notify ( 0 , Ġnotification Builder !!. build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Upload Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. cancel ( 0 ) ĊĠĠĠĠĠĠĠ Ġnotification Builder !!. set Progress ( 0 , Ġ 0 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnotification Builder !!. setContent Text (" Upload ĠFail ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Sound ( Settings . System . DEFAULT _ NOTIFICATION _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Defaults ( Notification . DEFAULT _ SOUND ) ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. notify ( 0 , Ġnotification Builder !!. build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Task Removed ( root Intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnotification Manager !!. cancel ( 0 ) ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊĊ