package Ġde . r ki . cor on aw arn app . contact di ary . ui . overview . adapter Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġde . r ki . cor on aw arn app . R Ċ import Ġde . r ki . cor on aw arn app . contact di ary . util . clear And Add All Ċ import Ġde . r ki . cor on aw arn app . databinding . Contact Di ary Overview Nested ListItem Binding Ċ import Ġde . r ki . cor on aw arn app . ui . lists . Base Adapter Ċ import Ġde . r ki . cor on aw arn app . util . lists . Bind able VH Ċ Ċ class ĠContact Di ary Overview Nested Adapter ( ĊĠĠĠ Ġprivate Ġval Ġelement : ĠListItem , ĊĠĠĠ Ġprivate Ġval Ġon Item Selection Listener : Ġ( ListItem ) Ġ-> ĠUnit Ċ ) Ġ: ĠBase Adapter < Contact Di ary Overview Nested Adapter . Nested Item ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata List : ĠMutable List < ListItem . Data > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġfun Ġset Items ( data List : ĠList < ListItem . Data >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data List . clear And Add All ( data List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Base VH ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠNested Item ViewHolder Ġ= ĠNested Item ViewHolder ( parent ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Base VH ( holder : ĠNested Item ViewHolder , Ġposition : ĠInt , Ġpayload s : ĠMutable List < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( data List [ position ], Ġpayload s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdata List . size ĊĊĠĠĠ Ġinner Ġclass ĠNested Item ViewHolder ( parent : ĠViewGroup ) Ġ: ĊĠĠĠĠĠĠĠ ĠBase Adapter . VH ( R . layout . contact _ di ary _ overview _ nested _ list _ item , Ġparent ), ĊĠĠĠĠĠĠĠ ĠBind able VH < ListItem . Data , ĠContact Di ary Overview Nested ListItem Binding > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġview Binding : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLazy < Contact Di ary Overview Nested ListItem Binding > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlazy Ġ{ ĠContact Di ary Overview Nested ListItem Binding . bind ( item View ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġon Bind Data : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContact Di ary Overview Nested ListItem Binding .( item : ĠListItem . Data , Ġpayload s : ĠList < Any >) Ġ-> ĠUnit Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġkey , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Di ary Overview Element Image . setImage Resource ( key . drawable Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Di ary Overview ElementName . text Ġ= Ġkey . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Di ary Overview ElementName . content Description Ġ= Ġwhen Ġ( key . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem . Type . LOCATION Ġ-> Ġcontext . getString ( R . string . accessibility _ location , Ġkey . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠListItem . Type . PERSON Ġ-> Ġcontext . getString ( R . string . accessibility _ person , Ġkey . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġkey . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact Di ary Overview Element Nested Container . setOnClickListener Ġ{ Ġon Item Selection Listener ( element ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ