package Ġcom . github . bg reb enn ik ov . dev buff . presentation . ui . fragments . base Ċ Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Bitmap Drawable Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . Html Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . request . Request Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . bump tech . glide . request . target . Size Ready Callback Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . bump tech . glide . request . target . Target . SIZE _ ORIGIN AL Ċ import Ġcom . bump tech . glide . request . transition . Transition Ċ import Ġcom . github . bg reb enn ik ov . dev buff . R Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠG lide Image Getter ( ĊĠĠĠ ĠtextView : ĠTextView , ĊĠĠĠ Ġval ĠtextView Padding : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġdensity : ĠFloat Ġ= ĠtextView . resources . display Metrics . density Ċ ) Ġ: ĠHtml . Image Getter Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontainer : ĠWeak Reference < TextView > Ġ= ĠWeak Reference ( textView ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Drawable ( source : ĠString ?): ĠDrawable ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠBitmap Drawable Placeholder () ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad ĠImage Ġto Ġthe ĠDrawable ĊĠĠĠĠĠĠĠ Ġcontainer . get ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Uri . parse ( source )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdrawable ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠBitmap Drawable Placeholder Ġ: ĠBitmap Drawable ( ĊĠĠĠĠĠĠĠ Ġcontainer . get ()?. resources , ĊĠĠĠĠĠĠĠ ĠBitmap . create Bitmap ( 1 , Ġ 1 , ĠBitmap . Config . RGB _ 5 6 5 ) ĊĠĠĠ Ġ), ĠTarget < Bitmap > Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġval Ġmeasure Size Ġ= Ġcontainer . get ()?. meas ured Width Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdrawable : ĠDrawable ? Ġ= Ġnull ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Drawable ( drawable : ĠDrawable , Ġwidth : ĠInt ? Ġ= Ġnull , Ġheight : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . drawable Ġ= Ġdrawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . drawable ?. let Ġ{ Ġvalue Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Width Ġ= Ġwidth Ġ?: Ġ( drawable . intrinsic Width Ġ/ Ġ 3 Ġ* Ġdensity ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Height Ġ= Ġheight Ġ?: Ġ( drawable . intrinsic Height Ġ/ Ġ 3 Ġ* Ġdensity ). toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmaxWidth Ġ= Ġcontainer . get ()?. meas ured Width ?. minus ( textView Padding ) Ġ?: Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( drawable Width Ġ> ĠmaxWidth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalculated Height Ġ= ĠmaxWidth Ġ* Ġdrawable Height Ġ/ Ġdrawable Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . setBounds ( 0 , Ġ 0 , ĠmaxWidth , Ġcalculated Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Bounds ( 0 , Ġ 0 , ĠmaxWidth , Ġcalculated Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . setBounds ( 0 , Ġ 0 , Ġdrawable Width , Ġdrawable Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Bounds ( 0 , Ġ 0 , Ġdrawable Width , Ġdrawable Height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . get ()?. text Ġ= Ġcontainer . get ()?. text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable ?. draw ( canvas ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Started ( placeholder Drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Placeholder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( error Drawable : ĠDrawable ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( bitmap : ĠBitmap , Ġtransition : ĠTransition < in ĠBitmap > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransformed Bitmap Ġ= ĠBitmap . create Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . height Ġ+ Ġ( container . get ()?. paint ?. font Metrics Int ?. bottom Ġ?: Ġ 0 ) Ġ* Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( transformed Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . get ()?. paint ?. font Metrics Int ?. bottom ?. toFloat () Ġ?: Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Drawable Ġ= ĠBitmap Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . get ()?. resources Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed Bitmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Drawable ( image Drawable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Placeholder ( placeholder Bitmap : ĠBitmap ? Ġ= Ġnull , Ġplaceholder Color : ĠInt Ġ= ĠColor . LT GRAY ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransformed Bitmap Ġ= ĠBitmap . create Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( transformed Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( placeholder Bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Bitmap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Bitmap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . get ()?. paint ?. font Metrics Int ?. bottom ?. toFloat () Ġ?: Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġplaceholder Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= ĠPaint . Style . FILL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Paint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Drawable Ġ= ĠBitmap Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . get ()?. resources , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed Bitmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdr Size Ġ= Ġ( measure Size Ġ/ Ġ 3 Ġ* Ġdensity ). toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Drawable ( image Drawable , Ġmeasure Size , Ġdr Size ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Cle ared ( placeholder Drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder Drawable ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Size ( size Ready Callback : ĠSize Ready Callback ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ready Callback . on Size Ready ( SIZE _ ORIGIN AL , ĠSIZE _ ORIGIN AL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġremove Callback ( cb : ĠSize Ready Callback ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Request ( request : ĠRequest ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Request (): ĠRequest ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{} ĊĠĠĠ Ġ} Ċ }