package Ġcom . ark iv an ov . mv ik otlin . sample . todo . android . list Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ark iv an ov . mv ik otlin . core . utils . diff Ċ import Ġcom . ark iv an ov . mv ik otlin . core . view . Base M vi View Ċ import Ġcom . ark iv an ov . mv ik otlin . core . view . View Renderer Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . android . R Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . android . get ViewById Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . view . Todo ListView Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . view . Todo ListView . Event Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . view . Todo ListView . Model Ċ Ċ class ĠTodo ListView Impl ( root : ĠView ) Ġ: ĠBase M vi View < Model , ĠEvent >(), ĠTodo ListView Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĊĠĠĠĠĠĠĠ ĠTodo ListAdapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠTodo ListAdapter . Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch ( Event . Item Clicked ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Done Click ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch ( Event . Item Done Clicked ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Delete Click ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 . Ġ çķĮéĿ¢ çĤ¹åĩ» åĪłéĻ¤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch ( Event . Item Delete Clicked ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġrenderer : ĠView Renderer < Model > Ġ= ĊĠĠĠĠĠĠĠ Ġdiff Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff ( get Ġ= ĠModel :: items , Ġcompare Ġ= Ġ{ Ġa , Ġb Ġ-> Ġa Ġ=== Ġb Ġ}, Ġset Ġ= Ġadapter :: set Items ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġroot . get ViewById < RecyclerView >( R . id . recycler _ view ). adapter Ġ= Ġadapter ĊĠĠĠ Ġ} Ċ } Ċ