package Ġcom . mar cin mos k ala . kotlin academy . ui . common Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . engine . bitmap _ recycle . Bitmap Pool Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Bitmap Transformation Ċ import Ġcom . mar cin mos k ala . kotlin academy . R Ċ Ċ fun ĠImageView . load Image ( photoUrl : ĠString ) Ġ{ ĊĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Border Transformation ( context , Ġ 2 , Ġcontext . resources . getColor ( R . color . grey Frame ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( this ) Ċ } Ċ Ċ private Ġclass ĠBorder Transformation ( context : ĠContext , Ġprivate Ġval Ġborder Size : ĠInt , Ġprivate Ġval ĠborderColor : ĠInt ) Ġ: ĠBitmap Transformation ( context ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( pool : ĠBitmap Pool , Ġbmp : ĠBitmap , Ġout Width : ĠInt , Ġout Height : ĠInt ): ĠBitmap Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp . add Border ( border Size , ĠborderColor ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠString Ġ= Ġthis . java Class . name Ċ } Ċ Ċ private Ġfun ĠBitmap . add Border ( border Size : ĠInt , Ġcolor : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠ Ġval Ġbmp With Border Ġ= ĠBitmap . create Bitmap ( width Ġ+ Ġborder Size Ġ* Ġ 2 , Ġheight Ġ+ Ġborder Size Ġ* Ġ 2 , Ġconfig ) ĊĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bmp With Border ) ĊĠĠĠ Ġcanvas . draw Color ( color ) ĊĠĠĠ Ġcanvas . draw Bitmap ( this , Ġborder Size . toFloat (), Ġborder Size . toFloat (), Ġnull ) ĊĠĠĠ Ġreturn Ġbmp With Border Ċ }