package Ġcom . ang cy o . u iv iew . less . http . form Ċ Ċ import Ġandroid . net . Uri Ċ import Ġcom . ang cy o . http . Http Ċ import Ġcom . ang cy o . http . Http Subscriber Ċ import Ġcom . ang cy o . lib . L Ċ import Ġcom . ang cy o . u iv iew . less . kotlin . app Ċ import Ġcom . ang cy o . u iv iew . less . kotlin . isFile Exists Ċ import Ġcom . ang cy o . u iv iew . less . kotlin . query Parameter Ċ import Ġrx . Observable Ċ import Ġrx . Subscription Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 1 9 / 0 5 / 2 1 Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠSh en Z hen ĠO & M ĠCloud ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ abstract Ġclass ĠI Attach Manager Ġ{ ĊĊĠĠĠ Ġ/** 2 0 1 9 - 9 - 4 Ġ åŃĺåĤ¨ å½ĵåīį åħ³èģĶ çļĦ Ġ[ FormData ] */ ĊĠĠĠ Ġvar ĠformData : ĠFormData ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł ç»ĵæĿŁ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġvar Ġon Upload End : Ġ( key List : ĠMutable List < String >, Ġvalue List : ĠMutable List < String >) Ġ-> ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġ{ Ġkey List , Ġvalue List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL . i (" ä¸Ĭä¼ł ç»ĵæĿŁ :$ key List \ n $ value List ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġvar Ġon Upload End 2 : Ġ( parse Bean List : ĠList < Parse Bean >) Ġ-> ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł å¤±è´¥ ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġopen Ġvar Ġon Upload Error : Ġ( e : ĠException ) Ġ-> ĠUnit Ġ= Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠ ĠL . e ("$ e ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ä¸Ĭä¼ł è¿Ľ åº¦ åĽŀè°ĥ */ ĊĠĠĠ Ġvar Ġon Upload Progress : Ġ( progress : ĠInt , Ġcount : ĠInt ) Ġ-> ĠUnit Ġ= Ġ{ Ġprogress , Ġcount Ġ-> ĊĠĠĠĠĠĠĠ ĠL . i (" ä¸Ĭä¼ł ä¸Ń :$ progress /$ count ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġstart Upload Attach ( formData : ĠFormData ? Ġ= Ġnull , Ġattach Json : ĠString ) Ċ } Ċ Ċ data Ġclass ĠParse Bean ( ĊĠĠĠ Ġvar Ġfile Id : ĠLong Ġ= Ġ- 1 , ĊĠĠĠ Ġvar ĠfilePath : ĠString Ġ= Ġ"", // url , ĠéľĢè¦ģ æĭ ¼ æİ¥ api Ġbase Ġurl ĊĊĠĠĠ Ġvar Ġlocal Path : ĠString Ġ= Ġ"" // æľ¬åľ° è·¯å¾Ħ Ċ ) Ċ Ċ public Ġfun ĠString ?. to Url ( file Id : ĠLong Ġ= Ġ- 1 ): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( isFile Exists ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġresult : ĠString Ġ= Ġthis ĊĠĠĠ Ġif Ġ(! toLowerCase (). startsWith (" http ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠbaseUrl Ġ= Ġapp (). baseUrl ĊĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġxx . com / Ġ/ api / xx Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl . endsWith ("/") Ġ&& Ġstart sWith ("/") Ġ-> Ġ"${ baseUrl . substring ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl . length Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) }$ this " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġxx . com Ġapi / xx Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! baseUrl . endsWith ("/") Ġ&& Ġ! startsWith ("/") Ġ-> Ġ"$ baseUrl /$ this " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġxx . com / Ġapi / xx Ġor Ġxx . com Ġ/ api / xx */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"$ baseUrl $ this " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( file Id Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . parse ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġparam Ġ= Ġ"${ Form Attach Manager . KEY _ FILE _ ID } =${ file Id }" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( uri . query ?. isNull OrEmpty () Ġ!= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// url Ġæ ² ¡ æľī ĠæŁ¥è¯¢ åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"${ result }? ${ param }" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold File Id Ġ= Ġresult . query Parameter ( Form Attach Manager . KEY _ FILE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old File Id ?. isNull OrEmpty () Ġ!= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī file Id åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"${ result }& ${ param }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æľī file Id åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . replace ("${ Form Attach Manager . KEY _ FILE _ ID } =${ old File Id }", Ġparam ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ public Ġfun Ġ< T > ĠObservable < T >. load ( on End : Ġ( data : ĠT ?, Ġerror : ĠThrowable ?) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ}): ĠSubscription Ġ{ ĊĠĠĠ Ġreturn Ġcompose ( Http . default Transformer ()) ĊĠĠĠĠĠĠĠ Ġ. subscribe ( object Ġ: ĠHttp Subscriber < T >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon End ( data : ĠT ?, Ġerror : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on End ( data , Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon End ( data , Ġerror ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ċ }