package Ġcom . ray h ah ah . easy http Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġcom . ray h ah ah . easy http . Util . FileUtils Ċ import Ġcom . ray h ah ah . library . core . E Client Ċ import Ġcom . ray h ah ah . library . core . E Http Ċ import Ġcom . ray h ah ah . library . core . Files Ċ import Ġcom . ray h ah ah . library . http . TYPE Ċ import Ġcom . sem bo z dem ir . permission sk t . ask Permissions Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġokhttp 3 . Call Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar Ġmax Cache Size Ġ= Ġ 1 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 ĊĠĠĠ Ġval ĠCODE _ CH OOSE _ PH OTO Ġ= Ġ 1 0 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġm Init Client . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ æŀĦå»º Ok HttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġä½¿çĶ¨ è¿Ļç§į æĸ¹å¼ı æŀĦå»º çļĦè¯Ŀ ï¼Į ä¼ļ çĽ´æİ¥ éħįç½® æĪĲ é»ĺè®¤ ä½¿çĶ¨çļĦ Ok HttpClient ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Client Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħįç½® é»ĺè®¤ çļĦ baseUrl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħįç½® é»ĺè®¤ çļĦ è¯·æ±Ĥ ç±»åŀĭ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠTYPE . METHOD _ POST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Unit Ġ= ĠTimeUnit . SECONDS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnect Timeout Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Timeout Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Timeout Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintercept ors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Intercept ors () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry On Connection Failure Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcache Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħįç½® é»ĺè®¤ çļĦ è§£æŀĲ åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħįç½® åħ¨å±Ģ éĢļ çĶ¨çļĦ è¯·æ±Ĥ å¤´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" custom _ head " (" ray h ah ah ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ Ļ ® éĢļ Get è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Get . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( TYPE . METHOD _ GET , Ġ" test ", Ġ" 1 2 3 4 5 6 7 ") Ġ{ Ġdata : ĠUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Tv Test . setText ( data . data . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġä¸ĭ éĿ¢ æĺ¯ ä¸Ģç§į çĶ¨äºİ ç®ĢåįķçļĦ Get è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġparams Ġ= ĠHashMap < String , ĠString >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠE Get (" url ", Ġparams ). go ( success Ġ= Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġfailed Ġ= Ġ{ Ġcall , Ġexception Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġprogress Ġ= Ġ{ Ġvalue , Ġtotal Ġ-> Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ Ļ ® éĢļ POST è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Post . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġ" user / login . do " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠTYPE . METHOD _ POST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" username " (" test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password " (" 1 2 3 4 5 6 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cache - Control " (" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. go < String > Ġ{ Ġdata : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĽ´æİ¥ è¿ĶåĽŀ json æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Tv Test . setText (" data =$ data ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġä¸ĭ éĿ¢ ä¸Ģç§į æĺ¯ çĶ¨äºİ ç®ĢåįķçļĦ Post è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġparams Ġ= ĠHashMap < String , ĠString >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠE Post (" url ", Ġparams ). go ( success Ġ= Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġfailed Ġ= Ġ{ Ġcall , Ġexception Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġprogress Ġ= Ġ{ Ġvalue , Ġtotal Ġ-> Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ Ļ ® éĢļ PUT è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Put . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( TYPE . METHOD _ PUT , Ġ" admin ", Ġ" 1 2 3 4 5 6 7 ") Ġ{ Ġdata : ĠUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæ Ļ ® éĢļ DELETE è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest ( TYPE . METHOD _ DELETE , Ġ" admin ", Ġ" 1 2 3 4 5 6 7 ") Ġ{ Ġdata : ĠUser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł åįķ ä¸ª æĸĩä»¶ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Post File . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġask Permissions ( android . Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Granted Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchoose Intent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Intent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity For Result ( choose Intent , ĠCODE _ CH OOSE _ PH OTO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ä¸Ĭä¼ł Json æķ°æį® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Json . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġ" user / login . do " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠTYPE . METHOD _ POST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cache - Control " (" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. go Ġ{ Ġdata : ĠString Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ä¸ĭè½½ æĸĩä»¶ æķ°æį® ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Download . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// thing . ray h ah ah . com / version / Easy Sport _ 1 . 1 . 4 . apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Dir Ġ= ĠFileUtils . getRoot FilePath () Ġ+ Ġ" Easy Http / images " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfileName Ġ= Ġ" test . apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. download ({ Ġdata : ĠFile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . log () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġcall : ĠCall , Ġexception : ĠException Ġ-> ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġvalue : ĠFloat , Ġtotal : ĠLong Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal . log () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ä¸ĭéĿ¢ è¿Ļç§į æĺ¯ ç®Ģ åĮĸ äºĨ çļĦ ä¸ĭè½½ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠE Download (" http :// thing . ray h ah ah . com / version / Easy Sport _ 1 . 1 . 4 . apk ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFileUtils . getRoot FilePath () Ġ+ Ġ" Easy Http / images ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test . apk ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Ġ= Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail Ġ= Ġ{ Ġcall : ĠCall , Ġe : ĠException Ġ-> Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġprogress Ġ= Ġ{ Ġvalue , Ġtotal Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠRx Java çļĦ å½¢å¼ı å¤ĦçĲĨ ç½ĳç»ľ è¯·æ±Ĥ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġm Rx . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrx Request ( TYPE . METHOD _ POST , Ġ" test ", Ġ" 1 2 3 4 5 6 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġt : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Tv Test . setText ( t ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCODE _ CH OOSE _ PH OTO Ġ-> Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpath Ġ= ĠFileUtils . getPath From Uri ( this , Ġdata . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFileUtils . getFile By Path ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest File (" test ", Ġ" 1 2 3 4 5 6 7 ", Ġfile , Ġ{ Ġdata : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Tv Test . setText ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġcall : ĠCall , Ġe : ĠException Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . log () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġvalue , Ġtotal Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal . log () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġrequest ( method : ĠString , Ġusername : ĠString , Ġpassword : ĠString , Ġsuccess : Ġ( data : ĠUser ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġ" user / login . do " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" username "( username ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password "( password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cache - Control " (" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. go < User >( success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrx Request ( method : ĠString , Ġusername : ĠString , Ġpassword : ĠString ): ĠObservable < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġ" user / login . do " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" username "( username ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password "( password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cache - Control " (" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. rx ( progress Ġ= Ġ{ Ġvalue , Ġtotal Ġ-> Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġrequest File ( username : ĠString , Ġpassword : ĠString , Ġcover : ĠFile , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess : Ġ( data : ĠString ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail : Ġ( call : ĠCall , Ġe : ĠException ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress : Ġ( value : ĠFloat , Ġtotal : ĠLong ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠE Http Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl Ġ= Ġ" http :// mall . ray h ah ah . com /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġ" easy sport / user / update _ cover . do " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠTYPE . METHOD _ POST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" username "( username ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password "( password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" upload _ file "( Files . FILE _ TYPE _ MULTI PART , Ġcover ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile List Ġ= ĠArrayList < File >() Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile List . add ( File (" 1 . txt ")) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile List . add ( File (" 2 . txt ")) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile List . add ( File (" 3 . txt ")) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" upload "( Http File ( Files . FILE _ TYPE _ MULTI PART , Ġfile List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" cache - Control " (" no - cache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. go ( success , Ġfail , Ġprogress ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç¼ĵåŃĺ çĽ®å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Cache Path Str (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Environment . get External Storage State (). equals ( Environment . MEDIA _ MOUNT ED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Cache Dir ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Dir ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ