package Ġcom . example . ssa čĊč Ċ import Ġandroid . Manifest č Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . content . SharedPreferences č Ċ import Ġandroid . content . pm . PackageManager č Ċ import Ġandroid . graphics . Bitmap č Ċ import Ġandroid . graphics . drawable . Bitmap Drawable č Ċ import Ġandroid . support . v 7 . app . AppCompatActivity č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . provider . Media Store č Ċ import Ġandroid . support . v 4 . app . Activity Compat č Ċ import Ġandroid . support . v 4 . content . Context Compat č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . View č Ċ import Ġandroid . widget . EditText č Ċ import Ġandroid . widget . ImageView č Ċ import Ġandroid . widget . Toast č Ċ import Ġcom . example . ssa . R . drawable .* č Ċ import Ġcom . github . kit tin un f . fuel . Fuel č Ċ import Ġcom . github . kit tin un f . fuel . core . File Data Part č Ċ import Ġcom . github . kit tin un f . result . Result č Ċ import Ġkotlinx . android . synt hetic . main . activity _ write .* č Ċ import Ġjava . io . ByteArray OutputStream č Ċ import Ġjava . io . File č Ċ import Ġjava . io . String Reader čĊč Ċ class Ġwrite Ġ: ĠAppCompatActivity () Ġ{ čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCAM ERA _ REQUEST _ CODE Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCAM ERA _ PERMISSION _ REQUEST _ CODE Ġ= Ġ 2 čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ write ) čĊĠĠĠĠĠĠĠ Ġval Ġimage ID Ġ= ĠfindViewById < ImageView >( R . id . imageView ) čĊĠĠĠĠĠĠĠ Ġ// image ID . setImage Resource ( k oko ) čĊĠĠĠĠĠĠĠ Ġho zon _ button . setOnClickListener ( View . OnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent ID Ġ= ĠfindViewById < EditText >( R . id . Memo _ Content ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle ID Ġ= ĠfindViewById < EditText >( R . id . title ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ãĤ¨ ãĥĩãĤ£ ãĥĥãĥĪ ãĥĨ ãĤŃ ãĤ¹ãĥĪ ãģĭãĤī ãĥĨ ãĤŃ ãĤ¹ãĥĪ ãĤĴ å¾Ĺ ãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontents Ġ= Ġcontent ID . text . toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġtitle ID . text . toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup ID Ġ= Ġsh _ group _ id () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Flag Ġ= Ġ( Ġimage Preview . drawable Ġ!= Ġnull )// && Ġ!( imageView . drawable . equals ( k oko ) Ġ// Ġ çĶ» åĥı ãģĮ çĦ¡ ãģĦ Ġ: Ġfalse Ġ ãĢģ Ġ ãģĤãĤĭ Ġ: Ġtrue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contents . isNotEmpty () Ġ&& Ġtitle . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext File Ġ= Ġsave Text File ( contents ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġimage Ġ: ĠFile ? Ġ= Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Flag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= Ġsave Image (( image Preview . drawable Ġas ĠBitmap Drawable ). bitmap ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= ĠlistOf ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" user _ id " Ġto Ġsh _ user _ id (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password " Ġto Ġsh _ pass _ id (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" data _ name " Ġto Ġ"${ text File . name }", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" data _ type " Ġto Ġ" 1 ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" title " Ġto Ġ"$ title ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" image _ name " Ġto Ġ"${ image ?. name }") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Content 's Ġname "," ${ text File . name }") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPOST Ġto Ġ" http :// 3 4 . 8 3 . 8 0 . 2 : 8 0 0 0 / group /$ group _ id " Ġwith Ġparameters čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠF uel . upload (" http :// 3 4 . 8 3 . 8 0 . 2 : 5 0 1 1 2 / group /$ group ID ", parameters Ġ= Ġinfo ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( File Data Part ( File ( text File . path ), name Ġ= Ġ" Data ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Flag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(!( image Preview . drawable . equals ( k oko ))) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . add ( File Data Part ( File ( image ?. path ), Ġname Ġ= Ġ" Image ")) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf . response { result Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( result ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å¤± æķ Ĺ ãģĹãģŁ åł´åĲĪ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," å¤± æķ Ĺ ãģĹãģ¾ãģĹãģŁ ", Toast . LENGTH _ LONG ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġex Ġ= Ġresult . get Exception () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" error Ġmsg ", Ġex . toString ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æĪĲåĬŁ ãģĹãģŁ åł´åĲĪ ãĢĤ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġex Ġ= Ġresult . get () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this ," ãģ » ãģ ŀ ãĤĵ ãģ« æĪĲåĬŁ ãģĹãģ¾ãģĹãģŁ ", Toast . LENGTH _ LONG ). show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ãĤ¿ ãĤ¤ãĥĪ ãĥ« ãģ¨ åĨħå®¹ ãĤĴ åħ¥åĬĽ ãģĹãģ¦ãģıãģłãģķãģĦ ãĢĤ ï¼ļ ä¿ĿåŃĺ ãģ« å¤± æķ Ĺ ãģĹãģ¾ãģĹãģŁ ", ĠToast . LENGTH _ LONG ). show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Resume () čĊčĊĠĠĠĠĠĠĠ Ġimage Preview . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠãĤ « ãĥ¡ ãĥ© æ©Łèĥ½ ãĤĴ å®Ł è£ħ ãģĹãģŁ ãĤ¢ãĥĹãĥª ãģĮ åŃĺåľ¨ ãģĻãĤĭ ãģĭ ãĥģ ãĤ§ ãĥĥãĤ¯ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ). resolve Activity ( package Manager )?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Camera Permission ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Camera Permission () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠToast . makeText ( this , Ġ" ãĤ« ãĥ¡ ãĥ© ãĤĴ æī ± ãģĨ ãĤ¢ãĥĹãĥª ãģĮãģĤ ãĤĬ ãģ¾ãģĽãĤĵ ", ĠToast . LENGTH _ LONG ). show () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠCAM ERA _ REQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. extras ?. get (" data ") ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Preview . setImage Bitmap ( it Ġas ĠBitmap ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġtake Picture () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Media Store . ACTION _ IMAGE _ CAPTURE ). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Category ( Intent . CATEGORY _ DEFAULT ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠCAM ERA _ REQUEST _ CODE ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġcheck Camera Permission () Ġ= ĠPackage Manager . PERMISSION _ GRAN TED Ġ== čĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . check Self Permission ( application Context , ĠManifest . permission . CAMERA ) čĊčĊčĊĠĠĠ Ġprivate Ġfun Ġgrant Camera Permission () Ġ= čĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . CAMERA ), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠCAM ERA _ PERMISSION _ REQUEST _ CODE čĊĠĠĠĠĠĠĠ Ġ) čĊčĊčĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠCAM ERA _ PERMISSION _ REQUEST _ CODE ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results . isNotEmpty () Ġ&& čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Picture () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// ãĥĨ ãĤŃ ãĤ¹ãĥĪ ãĥķãĤ¡ãĤ¤ãĥ« ãģ® ä¿ĿåŃĺ čĊĠĠĠ Ġprivate Ġfun Ġsave Text File ( content : ĠString ): ĠFile Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= ĠGet File (). get Write ( files Dir ) čĊĠĠĠĠĠĠĠ Ġ// ĠãĥķãĤ ¡ãĤ¤ãĥ« ãģ® æĽ¸ ãģį è¾¼ ãģ¿ čĊĠĠĠĠĠĠĠ Ġval Ġwrite File Ġ= ĠFile ( filename ) čĊĠĠĠĠĠĠĠ Ġwrite File . write Text ( content ) čĊĠĠĠĠĠĠĠ Ġreturn Ġwrite File čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// çĶ» åĥı ãĥķãĤ¡ãĤ¤ãĥ« ãģ® ä¿ĿåŃĺ čĊĠĠĠ Ġprivate Ġfun Ġsave Image ( bmp : ĠBitmap ) Ġ: ĠFile ? Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġtry { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= ĠGet File (). getP ict ( files Dir ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠbyteArray OutputStream Ġ= ĠByteArrayOutputStream () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠFile ( filename ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp !!. compress ( Bitmap . Compress Format . JPEG , Ġ 1 0 0 , byteArray OutputStream ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . write Bytes ( byteArray OutputStream . toByteArray ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Exception ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsh _ user _ id (): Int { čĊĠĠĠĠĠĠĠ Ġval Ġdata Store : ĠSharedPreferences Ġ= Ġget SharedPreferences (" USER _ DATA ", ĠContext . MODE _ PRIVATE ) čĊĠĠĠĠĠĠĠ Ġval Ġuser _ id Ġ= Ġdata Store . getInt (" USER _ ID ", 1 ) čĊĠĠĠĠĠĠĠ Ġreturn Ġuser _ id čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsh _ group _ id (): String { čĊĠĠĠĠĠĠĠ Ġval Ġdata Store : ĠSharedPreferences Ġ= Ġget SharedPreferences (" USER _ DATA ", ĠContext . MODE _ PRIVATE ) čĊĠĠĠĠĠĠĠ Ġval Ġgroup _ id Ġ= Ġdata Store . getString (" GROUP _ ID "," ") čĊĠĠĠĠĠĠĠ Ġreturn Ġgroup _ id čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġsh _ pass _ id (): String { čĊĠĠĠĠĠĠĠ Ġval Ġdata Store : ĠSharedPreferences Ġ= Ġget SharedPreferences (" USER _ DATA ", ĠContext . MODE _ PRIVATE ) čĊĠĠĠĠĠĠĠ Ġval Ġpass Ġ= Ġdata Store . getString (" Pass "," ") čĊĠĠĠĠĠĠĠ Ġreturn Ġpass čĊĠĠĠ Ġ} čĊč Ċ }