package Ġcom . example . d ud co . ov s _ se oul app comp etition . Util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . widget . Toast Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . OutputStream Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġd ud co Ġon Ġ 2 0 1 6 . Ġ 1 0 . Ġ 1 9 .. Ċ Ġ*/ Ċ object ĠUtil Ġ{ ĊĠĠĠ Ġval ĠTAG Ġ= Ġ" D ud co " ĊĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// i win 2 4 7 . net : 3 0 0 0 ") ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġfinal Ġvar Ġuser : String ?= Ġnull ĊĊĠĠĠ Ġfun Ġget Bt Option ( size Ġ: ĠInt ): ĠBitmap Factory . Options Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbt _ option Ġ= ĠBitmap Factory . Options () ĊĠĠĠĠĠĠĠ Ġbt _ option . in Sample Size Ġ= Ġsize ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbt _ option ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠLog ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid . util . Log . d (" d ud co ", Ġstring ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġremove Session ( context : ĠContext ){ ĊĠĠĠĠĠĠĠ Ġval Ġsh Ġ= Ġcontext . get SharedPreferences (" session ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġsh . edit (). remove (" token "). commit () ĊĠĠĠĠĠĠĠ ĠLog (" Removed !") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Session ( context : ĠContext , Ġtoken : ĠString ? ){ ĊĠĠĠĠĠĠĠ Ġval Ġsh Ġ= Ġcontext . get SharedPreferences (" session ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġsh . edit (). putString (" token ", Ġtoken ). commit () ĊĠĠĠĠĠĠĠ ĠLog (" Saved !") ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Session ( context : ĠContext ) Ġ: ĠString ? { ĊĠĠĠĠĠĠĠ Ġval Ġsh Ġ: ĠSharedPreferences ? Ġ= Ġcontext . get SharedPreferences (" session ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġif ( sh Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsh . getString (" token ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget PX ( resources Ġ: ĠResources , Ġdp Ġ: ĠFloat ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġdp , Ġresources . display Metrics ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget SP 2 Px ( resources : ĠResources , Ġsp Ġ: ĠFloat ): ĠFloat { ĊĠĠĠĠĠĠĠ Ġreturn ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġsp , Ġresources . display Metrics ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset UserInfo ( token : ĠString ){ ĊĠĠĠĠĠĠĠ Ġuser Ġ= Ġtoken ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun ĠgetUser Info () Ġ= Ġuser Ċ Ċ // ĠĠĠ Ġfun Ġget Real Path From URI ( content Uri : ĠUri , Ġcontext : ĠContext ): ĠString Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġproj Ġ= ĠarrayOf < String >( Media Store . Images . Media . DATA ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġ. managed Query ( content Uri , Ġproj , Ġnull , Ġnull , Ġnull ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġcolumn _ index Ġ= Ġcursor . getColumnIndex OrThrow ( Media Store . Images . Media . DATA ) Ċ // ĠĠĠĠĠĠĠ Ġcursor . moveTo First () Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġcursor . getString ( column _ index ) Ċ // Ċ // ĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġsave Bitmap ToFile C ach ( bitmap Ġ: Bitmap , Ġstr FilePath Ġ: ĠString ) Ġ: ĠFile { ĊĠĠĠĠĠĠĠ Ġval Ġfile C ach Item Ġ: ĠFile Ġ= ĠFile ( str FilePath ) ĊĠĠĠĠĠĠĠ Ġvar Ġout Ġ: ĠOutputStream ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfile C ach Item . createNew File () ĊĠĠĠĠĠĠĠ Ġout Ġ= ĠFileOutputStream ( file C ach Item ) ĊĊĠĠĠĠĠĠĠ Ġbitmap . compress ( Bitmap . Compress Format . PNG , Ġ 1 0 0 , Ġout ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfile C ach Item ĊĠĠĠ Ġ} Ċ Ċ } Ċ