package Ġio . s ik ork a . android . ui . detector . select Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . Adapter Ċ import Ġio . s ik ork a . android . R Ċ import Ġio . s ik ork a . android . ui . Binding ViewHolder Ċ import Ġk ot ter knife . bind View Ċ Ċ class ĠSelect Detector Type Adapter ( ĊĠ Ġcontext : ĠContext , ĊĠ Ġprivate Ġval Ġdetector s : ĠList < Supported Detector > Ċ ) Ġ: ĠAdapter < Select Detector Type Adapter . Select Detector ViewHolder >() Ġ{ ĊĊĠ Ġprivate Ġval Ġinflater : ĠLayoutInflater Ġ= ĠLayoutInflater . from ( context ) ĊĠ Ġprivate Ġvar Ġon Selection : Ġ(( type Id : ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdetector s . size ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSelect Detector ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġholder . bind To ( detector s [ position ]) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSelect Detector ViewHolder Ġ{ ĊĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . item __ detector _ type , Ġparent , Ġfalse ) ĊĠĠĠ Ġval Ġholder Ġ= ĠSelect Detector ViewHolder ( view ) ĊĠĠĠ Ġholder . on Selection Ġ{ Ġon Selection ?. invoke ( detector s [ it ]. id ) Ġ} ĊĠĠĠ Ġreturn Ġholder ĊĠ Ġ} ĊĊĠ Ġfun Ġset On Selection ( on Selection : Ġ(( type Id : ĠInt ) Ġ-> ĠUnit )? ) Ġ{ ĊĠĠĠ Ġthis . on Selection Ġ= Ġon Selection ĊĠ Ġ} ĊĊĠ Ġclass ĠSelect Detector ViewHolder ( item View : ĠView ) Ġ: ĠBinding ViewHolder < Supported Detector >( item View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġicon : ĠImageView Ġby Ġbind View ( R . id . detector _ type __ type _ icon ) ĊĠĠĠ Ġprivate Ġval Ġname : ĠTextView Ġby Ġbind View ( R . id . detector _ type __ type _ name ) ĊĊĠĠĠ Ġoverride Ġfun Ġbind To ( item : ĠSupported Detector ) Ġ{ ĊĠĠĠĠĠ Ġicon . setImage Resource ( item . icon ) ĊĠĠĠĠĠ Ġname . setText ( item . title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Selection ( on Selection : Ġ( adapter Position : ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠ Ġthis . item View . setOnClickListener Ġ{ Ġon Selection ( adapter Position ) Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }