package Ġio . github . aced roid x . face Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġkotlinx . android . synt hetic . main . activity _ upload .* Ċ import Ġjava . io . FileInputStream Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Message Ċ import Ġandroid . util . Json Reader Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util . HashMap ĊĊ Ċ class ĠUpload Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġjson : ĠJSONObject ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ upload ) ĊĠĠĠĠĠĠĠ Ġjoin . isEnabled = false ĊĠĠĠĠĠĠĠ Ġedit Text . isEnabled = false ĊĠĠĠĠĠĠĠ Ġval Ġapp Info Ġ= Ġthis . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getApplication Info ( this . packageName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . GET _ META _ DATA ) ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġapp Info . metaData . getString (" API _ Key ") ĊĠĠĠĠĠĠĠ Ġval Ġsecret Ġ= Ġapp Info . metaData . getString (" API _ Secret ") ĊĠĠĠĠĠĠĠ Ġval Ġouter _ id Ġ= Ġapp Info . metaData . getString (" outer _ id ") ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" w xx Debug ", Ġ" upload ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠFIL ENAME Ġ= Ġintent . extras . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Ġ= Ġcache Dir . toString () Ġ+ Ġ"/" Ġ+ ĠFIL ENAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap Factory . decode File ( dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupload . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjoin . isEnabled = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . isEnabled = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġft Ġ= ĠFace Base () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġft . main ( this , ĠFIL ENAME , Ġkey , Ġsecret ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjoin . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload . isEnabled = false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġface Token Ġ= Ġjson . opt JSONArray (" faces "). opt JSONObject ( 0 ). opt String (" face _ token ") // å°Ĩ face _ token æıĲ åıĸ åĩºæĿ¥ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġaf Ġ= ĠAdd Face () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaf . main ( this , Ġkey , Ġsecret , Ġouter _ id Ġ, face Token ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset id . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Result ( str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . text Ġ= Ġstr ĊĠĠĠĠĠĠĠ Ġjson Ġ= ĠJSONObject ( str )// å°Ĩ è¿ĶåĽŀ çļĦæķ°æį® è½¬ åĮĸ ä¸º json æķ°æį® æł¼å¼ı ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġintent . set Class ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ// intent . putExtra (" name ", ĠFIL ENAME ) Ġ Ġ// æĶ¾ åħ¥ æķ°æį® ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) Ġ// å¼Ģå§ĭ è·³è½¬ ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠAdd Face Ġ: ĠFace Base () Ġ{ ĊĠĠĠ Ġfun Ġmain ( activity : ĠUpload Activity , Ġkey : ĠString , Ġsecret : ĠString , Ġouter _ id : ĠString , face Token : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// api - cn . face plusplus . com / face pp / v 3 / face set / add face " ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġmap [" api _ key "] Ġ= Ġkey ĊĠĠĠĠĠĠĠ Ġmap [" api _ secret "] Ġ= Ġsecret ĊĠĠĠĠĠĠĠ Ġmap [" outer _ id "] Ġ= Ġouter _ id ĊĠĠĠĠĠĠĠ Ġmap [" face _ tokens "] Ġ= Ġface Token ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= Ġobject Ġ: ĠHandler () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . handle Message ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġmsg . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbundle . getString (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . getResult ( result !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠThread () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¿ĻéĩĮ åĨĻåħ¥ åŃĲ çº¿ç¨ĭ éľĢè¦ģ åģļ çļĦ å·¥ä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġb acd Ġ= ĠByteArray ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb acd Ġ= Ġpost ( url , Ġmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠString ( bac d ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" w xx Debug ", Ġstr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString (" data ", Ġstr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠMessage () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . data Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . sendMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} Ċ } Ċ