package Ġcom . ville val ta . imgur . ui . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . ville val ta . imgur . R Ċ import Ġcom . ville val ta . imgur . model . Image Ċ import Ġcom . ville val ta . imgur . model . Thumb Ċ import Ġcom . ville val ta . imgur . utils . G lide App Ċ import Ġcom . ville val ta . imgur . utils . Url Utils Ċ import Ġcom . ville val ta . imgur . utils . g one Ċ import Ġcom . ville val ta . imgur . utils . visible Ċ import Ġkotlinx . android . synt hetic . main . widget _ image _ container . view .* Ċ Ċ class ĠImage Container Ġ@ kotlin . jvm . Jvm Over loads Ġconstructor ( ĊĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠ Ġinit Ġ{ ĊĠĠĠ ĠView . inflate ( context , ĠR . layout . widget _ image _ container , Ġthis ) ĊĠ Ġ} ĊĊĠ Ġvar Ġimage : ĠImage ? Ġ= Ġnull ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠ Ġsetup () ĊĠĠĠ Ġ} ĊĊĠ Ġvar Ġplaying Ġ= Ġfalse ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( field Ġ!= Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġif Ġ( value ) ĊĠĠĠĠĠĠĠĠĠ Ġstart If Animated () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠ Ġstop If Animated () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġfun Ġstart If Animated () Ġ{ ĊĠĠĠ Ġdebug _ indicator . background Tint List Ġ= ĠColor State List . valueOf ( Color . GREEN ) ĊĠĠĠ Ġif Ġ( image ?. animated Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠ Ġwidget _ image _ container _ video . visible () ĊĠĠĠĠĠ Ġwidget _ image _ container _ video . play () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġstop If Animated () Ġ{ ĊĠĠĠ Ġdebug _ indicator . background Tint List Ġ= ĠColor State List . valueOf ( Color . RED ) ĊĠĠĠ Ġif Ġ( image ?. animated Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠ Ġwidget _ image _ container _ video . pause () ĊĠĠĠĠĠ Ġwidget _ image _ container _ video . g one () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġreset Views () ĊĠĠĠ Ġimage ?. let Ġ{ ĊĊĠĠĠĠĠ Ġdebug _ indicator . text Ġ= Ġit . type ĊĊĠĠĠĠĠ Ġif Ġ( it . animated Ġ&& Ġit . mp 4 Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide App . with ( context ) ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( Url Utils . getImage Url For Hash ( it . id , ĠThumb . t )) ĊĠĠĠĠĠĠĠĠĠ Ġ. into ( widget _ image _ container _ image ) ĊĠĠĠĠĠĠĠ Ġwidget _ image _ container _ video . visible () ĊĠĠĠĠĠĠĠ Ġwidget _ image _ container _ video . create ( it . mp 4 ) ĊĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide App . with ( context ) ĊĠĠĠĠĠĠĠĠĠ Ġ. load ( it . link ) ĊĠĠĠĠĠĠĠĠĠ Ġ. into ( widget _ image _ container _ image ) ĊĠĠĠĠĠĠĠĠĠ Ġ. waitFor Layout () ĊĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġreset Views () Ġ{ ĊĠĠĠ Ġwidget _ image _ container _ video . g one () ĊĠĠĠ Ġwidget _ image _ container _ video . reset () ĊĠĠĠ Ġwidget _ image _ container _ image . setImage Drawable ( null ) ĊĠ Ġ} Ċ Ċ } ĊĊ Ċ @ Binding Adapter (" image ") Ċ fun Ġset Image ( container : ĠImage Container , Ġimage : ĠImage ?) Ġ{ ĊĠ Ġcontainer . image Ġ= Ġimage Ċ } ĊĊĊĊ