package Ġcom . sub rat gy aw ali . boilerplate mvp . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . val de sek am dem . library . md toast . MD Toast Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . os . Build Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream ĊĊ Ċ fun Ġcheck Network Availability ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġconnectivity Manager Ġ= Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠ Ġval Ġnw Ġ= Ġconnectivity Manager . active Network Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġval Ġact Nw Ġ= Ġconnectivity Manager . get Network Capabilities ( nw ) Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġact Nw . has Transport ( Network Capabilities . TRANSPORT _ WIFI ) Ġ-> Ġtrue ĊĠĠĠĠĠĠĠ Ġact Nw . has Transport ( Network Capabilities . TRANSPORT _ CELL ULAR ) Ġ-> Ġtrue ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠ Ġ} Ċ } ĊĊĊ Ċ fun ĠFragment . show Toast ( message : ĠString , Ġtype : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtoast Ġ= Ġcom . val de sek am dem . library . md toast . MD Toast . makeText ( context , Ġmessage , Ġandroid . widget . Toast . LENGTH _ SHORT , Ġtype ) ĊĠĠĠ Ġtoast . set Gravity ( android . view . Gravity . BOTTOM , Ġ 0 , Ġfrom DP to PX ( 1 2 0 )); ĊĠĠĠ Ġtoast . show () Ċ } Ċ Ċ fun ĠActivity . show Toast ( message : ĠString , Ġtype : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtoast Ġ= ĠMD Toast . makeText ( this , Ġmessage , ĠToast . LENGTH _ SHORT , Ġtype ) ĊĠĠĠ Ġtoast . set Gravity ( Gravity . BOTTOM , Ġ 0 , Ġfrom DP to PX ( 1 2 0 )); ĊĠĠĠ Ġtoast . show () Ċ } Ċ Ċ fun ĠFragment . from DP to PX ( dp : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġdp Ġ* Ġresources . display Metrics . density . toInt () Ċ } Ċ Ċ fun ĠActivity . from DP to PX ( dp : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġdp Ġ* Ġresources . display Metrics . density . toInt () Ċ } Ċ Ċ fun ĠEditText . show Soft Keyboard () Ġ{ ĊĠĠĠ Ġif Ġ( this . request Focus ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm : ĠInput Method Manager Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ; ĊĠĠĠĠĠĠĠ Ġimm . show Soft Input ( this , ĠInput Method Manager . SHOW _ IMP LICIT ); ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠEditText . hide Soft Keyboard () Ġ{ ĊĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġimm . hide Soft Input From Window ( this . window Token , ĠInput Method Manager . HIDE _ IMP LICIT _ ONLY ) Ċ } ĊĊ Ċ fun Ġencode to Base 6 4 ( img : ĠFile ): ĠString Ġ{ ĊĠĠĠ Ġval Ġbytes Ġ= Ġimg . read Bytes () ĊĠĠĠ Ġval Ġencoded String Ġ= Ġ" data : image / png ; base 6 4 ," ĊĠĠĠ Ġreturn Ġencoded String Ġ+ ĠBase 6 4 . encode ToString ( bytes , Base 6 4 . NO _ WRAP ) Ċ Ċ // ĠĠĠ Ġval Ġba os Ġ= ĠByteArrayOutputStream () Ċ // ĠĠĠ Ġbm . compress ( Bitmap . Compress Format . PNG , Ġ 5 0 , Ġba os ) Ġ// bm Ġis Ġthe Ġbitmap Ġobject Ċ // ĠĠĠ Ġval Ġb Ġ= Ġba os . toByteArray () Ċ // ĠĠĠ Ġval Ġencoded String Ġ= Ġ" data : image / png ; base 6 4 ," Ċ // ĠĠĠ Ġreturn Ġencoded String Ġ+ ĠBase 6 4 . encode ToString ( b , ĠBase 6 4 . DEFAULT ) Ċ } ĊĊ Ċ fun Ġsave Bitmap ToFile ( file : ĠFile ): ĠFile ? Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠBitmap Factory Ġoptions Ġto Ġdown size Ġthe Ġimage ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= ĠBitmap Factory . Options () ĊĠĠĠĠĠĠĠ Ġo . in Just Decode Bounds Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġo . in Sample Size Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġ// Ġfactor Ġof Ġdown sizing Ġthe Ġimage ĊĊĠĠĠĠĠĠĠ Ġvar ĠinputStream Ġ= ĠFileInputStream ( file ) ĊĠĠĠĠĠĠĠ Ġ// Bitmap Ġselected Bitmap Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ ĠBitmap Factory . decode Stream ( inputStream , Ġnull , Ġo ) ĊĠĠĠĠĠĠĠ ĠinputStream . close () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġnew Ġsize Ġwe Ġwant Ġto Ġscale Ġto ĊĠĠĠĠĠĠĠ Ġval ĠREQUIRED _ SIZE Ġ= Ġ 7 5 ĊĊĠĠĠĠĠĠĠ Ġ// ĠFind Ġthe Ġcorrect Ġscale Ġvalue . ĠIt Ġshould Ġbe Ġthe Ġpower Ġof Ġ 2 . ĊĠĠĠĠĠĠĠ Ġvar Ġscale Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( o . out Width Ġ/ Ġscale Ġ/ Ġ 2 Ġ>= ĠREQUIRED _ SIZE Ġ&& Ġo . out Height Ġ/ Ġscale Ġ/ Ġ 2 Ġ>= ĠREQUIRED _ SIZE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ*= Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġo 2 Ġ= ĠBitmap Factory . Options () ĊĠĠĠĠĠĠĠ Ġo 2 . in Sample Size Ġ= Ġscale ĊĠĠĠĠĠĠĠ ĠinputStream Ġ= ĠFileInputStream ( file ) ĊĊĠĠĠĠĠĠĠ Ġval Ġselected Bitmap Ġ= ĠBitmap Factory . decode Stream ( inputStream , Ġnull , Ġo 2 ) ĊĠĠĠĠĠĠĠ ĠinputStream . close () ĊĊĠĠĠĠĠĠĠ Ġ// Ġhere Ġi Ġoverride Ġthe Ġoriginal Ġimage Ġfile ĊĠĠĠĠĠĠĠ Ġfile . createNew File () ĊĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= ĠFileOutputStream ( file ) ĊĊĠĠĠĠĠĠĠ Ġselected Bitmap !!. compress ( Bitmap . Compress Format . PNG , Ġ 5 0 , ĠoutputStream ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfile ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} Ċ Ċ }