package Ġcom . numero . material _ gallery . view Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . numero . material _ gallery . R Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . view _ holder _ card .* Ċ Ċ class ĠSelection Card Adapter Ġ: ĠRecyclerView . Adapter < Selection Card Adapter . Card ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġitem List : ĠList < Selection Card Item > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġitem List Ġ= Ġ( 0 .. 1 0 ). map Ġ{ ĠSelection Card Item ( R . drawable . ic _ android , Ġ" Card Ġ$ it ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠCard ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . view _ holder _ card , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠCard ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġitem List . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠCard ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitem List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . setSelection Card Item ( item ) ĊĠĠĠĠĠĠĠ Ġholder . setOn Click Card Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . isSelected Ġ= Ġitem . isSelected . not () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Changed ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCard ViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Selection Card Item ( item : ĠSelection Card Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard View . isChecked Ġ= Ġitem . isSelected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon ImageView . setImage Resource ( item . icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġitem . title ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset OnClick Card Listener ( listener : Ġ( view : ĠView ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠSelection Card Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġval Ġicon : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġis Selected Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ }