/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 Ġsea Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġtop . sr sea . pe int ure . draw Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġtop . sr sea . pe int ure . vl parser . analysis . Analyzer Ċ Ċ private Ġfun ĠInt . to Measure Spec (): ĠInt Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT Ġ-> ĠView . Measure Spec . AT _ MO ST ĊĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT Ġ-> ĠView . Measure Spec . UNSPECIFIED ĊĠĠĠ Ġelse Ġ-> ĠView . Measure Spec . make Measure Spec ( this , ĠView . Measure Spec . EX ACT LY ) Ċ } Ċ Ċ class ĠDraw er ( val Ġcontext : ĠContext , Ġval Ġimage Loader : ĠImage Loader Ġ= ĠImage Lo aders . gl ade Blocking ) Ġ{ ĊĊĠĠĠ Ġfun Ġdraw Bitmap ( vl : ĠString , Ġconfig : ĠBitmap . Config Ġ= ĠBitmap . Config . ARGB _ 8 8 8 8 ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġdraw View ( vl ) ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġroot View . layout Params . width ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġroot View . layout Params . height ĊĠĠĠĠĠĠĠ Ġroot View . measure ( width . to Measure Spec (), Ġheight . to Measure Spec ()) ĊĠĠĠĠĠĠĠ Ġroot View . layout ( 0 , Ġ 0 , Ġroot View . meas ured Width , Ġroot View . meas ured Height ) ĊĠĠĠĠĠĠĠ Ġreturn ĠBitmap . create Bitmap ( root View . meas ured Width , Ġroot View . meas ured Height , Ġconfig ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdraw View ( vl : ĠString ) Ġ= ĠAnalyzer ( vl ). analyze (). to View ( this ) Ċ } Ċ Ċ type alias ĠImage Loader Ġ= Ġ( src : ĠString , Ġview : ĠImageView ) Ġ-> ĠUnit Ċ Ċ object ĠImage Lo aders Ġ{ ĊĠĠĠ Ġval Ġgl ade : ĠImage Loader Ġ= Ġ{ Ġsrc , Ġview Ġ-> ĊĠĠĠĠĠĠĠ ĠG lide . with ( view ). load ( src ). into ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġgl ade Blocking : ĠImage Loader Ġ= Ġ{ Ġsrc , Ġview Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠG lide . with ( view ). as Bitmap (). load ( src ). submit (). get () ĊĠĠĠĠĠĠĠ Ġview . setImage Bitmap ( bitmap ) ĊĠĠĠ Ġ} Ċ } Ċ