package Ġcom . i ol ll . li ub o . autos imple Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . View Ċ import Ġcom . blank j . util code . util . FileUtils Ċ import Ġcom . i ol ll . li ub o . autos imple . data . Api Result Ċ import Ġcom . i ol ll . li ub o . autos imple . data . DataManager Ċ import Ġcom . i ol ll . li ub o . autos imple . ui . Java Activity Ċ import Ġcom . i ol ll . li ub o . autos imple . utils . My Utils Ċ import Ġcom . i ol ll . li ub o . autos imple . utils . Uri To Path Util Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġkotlinx . android . synt hetic . main . activity _ start .* Ċ Ċ class ĠStart Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġcontext : Context ; ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ start ) ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġc j Card . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éĢīæĭ© åĽ¾çīĩ Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ audio /* âĢĿ ); Ġ// éĢīæĭ© éŁ³ é¢ĳ Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ video /* âĢĿ ); Ġ// éĢīæĭ© è§Ĩé¢ĳ Ġï¼Ī mp 4 Ġ 3 gp Ġæĺ¯ android æĶ¯æĮģ çļĦ è§Ĩé¢ĳ æł¼å¼ı ï¼ī Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ video /* ; image /* âĢĿ );// åĲĮæĹ¶ éĢīæĭ© è§Ĩé¢ĳ åĴĮ åĽ¾çīĩ Ċ // ĠĠĠĠĠĠĠ Ġintent . setType ("* /* "); // æĹł ç±»åŀĭ éĻĲåĪ¶ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . add Category ( Intent . CATEGORY _ OP ENABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQUEST _ CH OOSE FILE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġstart Java ( view : View ){ ĊĠĠĠĠĠĠĠ ĠMy Utils . start Act ( Java Activity :: class . java ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġstart CJ ( view : View ){ Ċ // ĠĠĠĠĠĠĠ ĠMy Utils . start Act ( CJ CCCC Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ// è°ĥçĶ¨ ç³»ç»Ł æĸĩä»¶ ç®¡çĲĨ åĻ¨ æīĵå¼Ģ æĮĩå®ļ è·¯å¾Ħ çĽ®å½ķ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠ Ġ// éĢīæĭ© åĽ¾çīĩ Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ audio /* âĢĿ ); Ġ// éĢīæĭ© éŁ³ é¢ĳ Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ video /* âĢĿ ); Ġ// éĢīæĭ© è§Ĩé¢ĳ Ġï¼Ī mp 4 Ġ 3 gp Ġæĺ¯ android æĶ¯æĮģ çļĦ è§Ĩé¢ĳ æł¼å¼ı ï¼ī Ċ // ĠĠĠĠĠĠĠ Ġ// intent . setType ( âĢľ video /* ; image /* âĢĿ );// åĲĮæĹ¶ éĢīæĭ© è§Ĩé¢ĳ åĴĮ åĽ¾çīĩ Ċ // ĠĠĠĠĠĠĠ Ġintent . setType ("* /* "); // æĹł ç±»åŀĭ éĻĲåĪ¶ ĊĠĠĠĠĠĠĠ Ġintent . add Category ( Intent . CATEGORY _ OP ENABLE ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQUEST _ CH OOSE FILE ) Ċ // ĠĠĠĠĠĠĠ ĠData Manager . upload () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif ( result Code == RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( request Code ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ CH OOSE FILE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġdata ?. data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠUri To Path Util . getImage AbsolutePath ( context , url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ww www $ path ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġf Ġ= ĠFileUtils . getFile By Path ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Manager . upload ( f . absolute Path ). subscribe ( object Ġ: Observer < Api Result < String >> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( t : ĠApi Result < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( t . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri Ġuri Ġ= Ġdata Ġ. ĠgetData Ġ(); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose FilePath Ġ= ĠFile Choose Util . getInstance ( this ). get Choose File Result Path ( uri ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" éĢīæĭ© æĸĩä»¶ è¿ĶåĽŀ ï¼ļ" Ġ+ Ġchoose FilePath ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend File Message ( choose FilePath ); ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ CH OOSE FILE Ġ= Ġ 1 2 3 ĊĠĠĠ Ġ} Ċ } Ċ