package Ġcom . mo kt ar . expand abler ec y cl er view . helper Ċ Ċ import Ġcom . mo kt ar . expand abler ec y cl er view . model . Parent ListItem Ċ import Ġcom . mo kt ar . expand abler ec y cl er view . model . Parent Wrapper Ċ Ċ // Ġthis Ġhelper Ġprovide Ġexpand able Ġchild Ġitem Ġlist Ċ object ĠExpand able Recycler Adapter Helper Ġ{ ĊĠĠĠ Ġfun Ġgenerate Parent Child ItemList ( parent ItemList : ĠList < Parent ListItem >): ĠList < Any >{ ĊĠĠĠĠĠĠĠ Ġval Ġparent Wrapper List Ġ= Ġmutable ListOf < Any >() ĊĠĠĠĠĠĠĠ Ġparent ItemList . forEach Ġ{ parent ListItem -> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Wrapper Ġ= ĠParent Wrapper ( parent ListItem Ġ= Ġparent ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Wrapper List . add ( parent Wrapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Wrapper . is Init ially Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Wrapper . is Expanded Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Wrapper . child ListItem . forEach Ġ{ it ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Wrapper List . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġparent Wrapper List ĊĠĠĠ Ġ} Ċ }