package Ġorg . step ik . android . view . step _ quiz _ fill _ bl anks . ui . adapter . delegate Ċ Ċ import Ġandroid . graphics . drawable . Layer Drawable Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Id Res Ċ import Ġkotlinx . android . synt hetic . main . item _ step _ quiz _ fill _ bl anks _ input . view .* Ċ import Ġorg . step ic . d roid . R Ċ import Ġorg . step ic . d roid . ui . util . set Compound Draw ables Ċ import Ġorg . step ik . android . view . step _ quiz _ choice . ui . delegate . Layer List Drawable Delegate Ċ import Ġorg . step ik . android . view . step _ quiz _ fill _ bl anks . ui . model . Fill Bl anks Item Ċ import Ġru . nob ird . android . ui . adapter deleg ates . Adapter Delegate Ċ import Ġru . nob ird . android . ui . adapter deleg ates . Delegate ViewHolder Ċ Ċ class ĠFill Bl anks Item Input Adapter Delegate ( ĊĠĠĠ Ġprivate Ġval Ġon Item Clicked : Ġ( Int , ĠString ) Ġ-> ĠUnit Ċ ) Ġ: ĠAdapter Delegate < Fill Bl anks Item , ĠDelegate ViewHolder < Fill Bl anks Item >>() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis For ViewType ( position : ĠInt , Ġdata : ĠFill Bl anks Item ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġdata Ġis ĠFill Bl anks Item . Input ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup ): ĠDelegate ViewHolder < Fill Bl anks Item > Ġ= ĊĠĠĠĠĠĠĠ ĠViewHolder ( create View ( parent , ĠR . layout . item _ step _ quiz _ fill _ bl anks _ input )) ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠViewHolder ( root : ĠView ) Ġ: ĠDelegate ViewHolder < Fill Bl anks Item >( root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstep Quiz Fill Bl anks Text Ġ= Ġroot . step Quiz Fill Bl anks Text ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlayer List Drawable Delegate : ĠLayer List Drawable Delegate ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep Quiz Fill Bl anks Text . setOnClickListener Ġ{ Ġon Item Clicked ( adapter Position , Ġ( item Data Ġas ĠFill Bl anks Item . Input ). text ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayer List Drawable Delegate Ġ= ĠLayer List Drawable Delegate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . checked _ layer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . correct _ layer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . incorrect _ layer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstep Quiz Fill Bl anks Text . background . mutate () Ġas ĠLayer Drawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ( data : ĠFill Bl anks Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġas ĠFill Bl anks Item . Input ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . isEnabled Ġ= Ġdata . isEnabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep Quiz Fill Bl anks Text . text Ġ= Ġdata . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ(@ Id Res Ġlayer , Ġ@ Drawable Res Ġicon ) Ġ= Ġwhen Ġ( data . correct ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . correct _ layer Ġto ĠR . drawable . ic _ step _ quiz _ correct ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . incorrect _ layer Ġto ĠR . drawable . ic _ step _ quiz _ wrong ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . checked _ layer Ġto Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayer List Drawable Delegate . show Layer ( layer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstep Quiz Fill Bl anks Text . set Compound Draw ables ( start Ġ= Ġicon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }