/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠShe T ie Jun Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġme . s het j . base . network . request Ċ Ċ import Ġio . reactivex . rx java 3 . core . Observable Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Disposable Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġme . s het j . base . network . call Back . Net CallBack Ċ import Ġme . s het j . base . network . func . HttpResponse Func Ċ import Ġme . s het j . base . network . func . Retry Exception Func Ċ import Ġme . s het j . base . network . subscriber . Download Subscriber Ċ import Ġokhttp 3 . ResponseBody Ċ Ċ class ĠDownload Request ( url : ĠString ) Ġ: ĠBase Request < Download Request >( url ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġsave Path : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsave Name : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ è·¯å¾Ħ < br ></ br > ĊĠĠĠĠ Ġ* Ġé»ĺè®¤ åľ¨ ï¼ļ / storage / em ulated / 0 / Android / data / åĮħ åĲį / files / 1 4 9 4 6 4 7 7 6 7 0 5 5 < br ></ br > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Path ( save Path : ĠString ?): ĠDownload Request Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . save Path Ġ= Ġsave Path ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ åĲįç§° < br ></ br > ĊĠĠĠĠ Ġ* Ġé»ĺè®¤ åĲįåŃĹ æĺ¯ æĹ¶éĹ´ æĪ ³ çĶŁæĪĲ çļĦ < br ></ br > ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Name ( save Name : ĠString ?): ĠDownload Request Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . save Name Ġ= Ġsave Name ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġexecute ( callback : ĠNet CallBack < T >): ĠDis posable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild (). generate Request (). compose Ġ{ Ġupstream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupstream . subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. unsubscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . computation ()) ĊĠĠĠĠĠĠĠ Ġ}. onError Resume Next ( HttpResponse Func ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry When ( Retry Exception Func ( retry Count , Ġretry Delay , Ġretry Increase Delay )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe With ( Download Subscriber ( save Path , Ġsave Name , Ġcallback )) Ġas ĠDis posable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Request (): ĠObservable < ResponseBody > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapi Manager !!. download File ( url ) ĊĠĠĠ Ġ} Ċ } Ċ