package Ġcom . ken nah . w ec atch . core . utils Ċ Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics .* Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . ken nah . w ec atch . core . exception . Network Exception Ċ import Ġandroid . graphics . Blur Mask Filter . Blur Ċ import Ġcom . ken nah . w ec atch . module . main . service . Main Service ĊĊ Ċ object ĠCommon Utils Ġ{ ĊĊĠĠĠ Ġfun Ġcalculate Screen Size ( manager : ĠWindow Manager ): ĠInt Array Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdisplay Ġ= Ġmanager . default Display ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠPoint () ĊĊĠĠĠĠĠĠĠ Ġdisplay . getSize ( size ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġint ArrayOf ( size . x , Ġsize . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Network Exception :: class ) ĊĠĠĠ Ġfun Ġcheck Network ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! has Network ( context )) Ġthrow ĠNetwork Exception () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Network ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġcontext . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġmanager . active Network Info ĊĠĠĠĠĠĠĠ Ġreturn Ġinfo Ġ!= Ġnull Ġ&& Ġinfo . isConnected Or Connecting ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave To Clipboard ( context : ĠContext , Ġtext : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġcontext . getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas Ġandroid . content . Clipboard Manager ĊĠĠĠĠĠĠĠ Ġval Ġclip Ġ= Ġandroid . content . Clip Data . new Plain Text (" Copied ĠText ", Ġtext ) ĊĠĠĠĠĠĠĠ Ġclipboard . primary Clip Ġ= Ġclip ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Bitmap From View ( view : ĠView ): ĠBitmap Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Pre - measure Ġthe Ġview Ġso Ġthat Ġheight Ġand Ġwidth Ġdon 't Ġremain Ġnull . ĊĠĠĠĠĠĠĠ Ġview . measure ( View . Measure Spec . make Measure Spec ( 0 , ĠView . Measure Spec . UNSPECIFIED ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . make Measure Spec ( 0 , ĠView . Measure Spec . UNSPECIFIED )) ĊĊĠĠĠĠĠĠĠ Ġ// Assign Ġa Ġsize Ġand Ġposition Ġto Ġthe Ġview Ġand Ġall Ġof Ġits Ġdesc endants ĊĠĠĠĠĠĠĠ Ġview . layout ( 0 , Ġ 0 , Ġview . meas ured Width , Ġview . meas ured Height ) ĊĊĠĠĠĠĠĠĠ Ġ// Create Ġthe Ġbitmap ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( view . meas ured Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . meas ured Height , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠ Ġ// Create Ġa Ġcanvas Ġwith Ġthe Ġspecified Ġbitmap Ġto Ġdraw Ġinto ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCanvas ( bitmap ) ĊĊĠĠĠĠĠĠĠ Ġ// Render Ġthis Ġview Ġ( and Ġall Ġof Ġits Ġchildren ) Ġto Ġthe Ġgiven ĠCanvas ĊĠĠĠĠĠĠĠ Ġview . draw ( c ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhighlight Image ( src : ĠBitmap , Ġcolor : ĠInt ): ĠBitmap Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġnew Ġbitmap , Ġwhich Ġwill Ġbe Ġpaint ed Ġand Ġbecomes Ġresult Ġimage ĊĠĠĠĠĠĠĠ Ġval Ġbm Out Ġ= ĠBitmap . create Bitmap ( src . width , Ġsrc . height , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġcanvas Ġfor Ġpaint ing ĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bm Out ) ĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġdefault Ġcolor ĊĠĠĠĠĠĠĠ Ġcanvas . draw Color ( 0 , ĠPort er D uff . Mode . CLEAR ) ĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġa Ġblur Ġpaint Ġfor Ġcapturing Ġalpha ĊĠĠĠĠĠĠĠ Ġval Ġpt Blur Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġpt Blur . mask Filter Ġ= ĠBl ur Mask Filter ( 2 5 f , ĠBl ur . SOLID ) ĊĠĠĠĠĠĠĠ Ġval Ġoffset XY Ġ= ĠInt Array ( 2 ) ĊĠĠĠĠĠĠĠ Ġ// Ġcapture Ġalpha Ġinto Ġa Ġbitmap ĊĠĠĠĠĠĠĠ Ġval Ġbm Alpha Ġ= Ġsrc . extract Alpha ( pt Blur , Ġoffset XY ) ĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġa Ġcolor Ġpaint ĊĠĠĠĠĠĠĠ Ġval Ġpt Alpha Color Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġpt Alpha Color . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠ Ġ// Ġpaint Ġcolor Ġfor Ġcaptured Ġalpha Ġregion Ġ( bitmap ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( bm Alpha , Ġoffset XY [ 0 ]. toFloat (), Ġoffset XY [ 1 ]. toFloat (), Ġpt Alpha Color ) ĊĠĠĠĠĠĠĠ Ġ// Ġfree Ġmemory ĊĠĠĠĠĠĠĠ Ġbm Alpha . recycle () ĊĊĠĠĠĠĠĠĠ Ġ// Ġpaint Ġthe Ġimage Ġsource ĊĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( src , Ġ 0 f , Ġ 0 f , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġreturn Ġout Ġfinal Ġimage ĊĠĠĠĠĠĠĠ Ġreturn Ġbm Out ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ SuppressWarnings (" deprecation ") ĊĠĠĠ Ġfun Ġis Service Running ( context : ĠContext , Ġservice Class : ĠClass < *> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġcontext . getSystem Service ( Context . ACTIVITY _ SERVICE ) Ġas ĠActivity Manager ĊĠĠĠĠĠĠĠ Ġreturn Ġmanager . get Running Services ( Integer . MAX _ VALUE ). any Ġ{ Ġservice Class . name Ġ== Ġit . service . className Ġ} ĊĠĠĠ Ġ} Ċ } Ċ