package Ġcom . quick blo x . sample . chat . kotlin . ui . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . DataSet Observer Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Adapter Ċ import Ġandroid . widget . Horizontal ScrollView Ċ import Ġandroid . widget . LinearLayout Ċ Ċ class ĠAttachment Preview Adapter View ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠHorizontal ScrollView ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmain Thread Handler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĊĠĠĠ Ġprivate Ġval Ġcontainer : ĠLinearLayout Ġ= ĠLinearLayout ( context ) ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠAdapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠdataSet Observer : ĠDataSet Observer ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= ĠLayout Params ( width , Ġheight ) ĊĠĠĠĠĠĠĠ Ġadd View ( container , Ġlayout Params ) ĊĠĠĠĠĠĠĠ ĠdataSet Observer Ġ= Ġobject Ġ: ĠDataSet Observer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate With Views From Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Invalid ated () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate With Views From Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Adapter ( new Adapter : ĠAdapter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter ?. unregister DataSet Observer ( data Set Observer ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġnew Adapter ĊĠĠĠĠĠĠĠ Ġadapter ?. register DataSet Observer ( data Set Observer ) ĊĠĠĠĠĠĠĠ Ġpopulate With Views From Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate With Views From Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Thread Handler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 Ġuntil Ġit . count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild View Ġ= Ġit . getView ( index , Ġnull , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . addView ( child View , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }