package Ġke k me ch . ru . core ui . items Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . annotation . Style Res Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġke k me ch . ru . common _ adapter . Adapter Item Ċ import Ġke k me ch . ru . common _ adapter . Base Item Binder Ċ import Ġke k me ch . ru . common _ android . get Theme Color Ċ import Ġke k me ch . ru . core ui . R Ċ import Ġke k me ch . ru . core ui . databinding . Item Text With Icon Binding Ċ Ċ private Ġconst Ġval ĠDEFAULT _ TEXT _ WITH _ ICON _ ITEM _ ID Ġ= Ġ 0 Ċ Ċ data Ġclass ĠText With Icon Item ( ĊĠĠĠ Ġval ĠitemId : ĠInt Ġ= ĠDEFAULT _ TEXT _ WITH _ ICON _ ITEM _ ID , ĊĠĠĠ Ġval Ġtext : ĠCharSequence ? Ġ= Ġnull , ĊĠĠĠ Ġ@ String Res Ġval Ġtext Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ@ Drawable Res Ġval Ġdrawable Res ID : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ@ Attr Res Ġval Ġt int Color Attr Id : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ Style Res Ġval Ġtext Style Res Id : ĠInt ? Ġ= Ġnull Ċ ) Ċ Ċ interface ĠText With Icon ViewHolder Ġ: ĠClick able Item ViewHolder Ġ{ ĊĠĠĠ Ġfun Ġset Text ( text : ĠCharSequence ) ĊĠĠĠ Ġfun Ġset Text (@ String Res Ġtext Res Id : ĠInt ) ĊĠĠĠ Ġfun Ġset Icon (@ Drawable Res Ġdrawable Res ID : ĠInt ) ĊĠĠĠ Ġfun Ġset Tint Color (@ Attr Res Ġt int Color Attr Id : ĠInt ) ĊĠĠĠ Ġfun Ġset TextStyle (@ Style Res Ġstyle Res Id : ĠInt ) Ċ } Ċ Ċ private Ġclass ĠText With Icon ViewHolder Impl ( item View : ĠView ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( item View ), ĊĠĠĠ ĠText With Icon ViewHolder , ĊĠĠĠ ĠClick able Item ViewHolder Ġby ĠClick able Item ViewHolder Impl ( item View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview Binding Ġ= ĠItem Text With Icon Binding . bind ( item View ) ĊĊĠĠĠ Ġoverride Ġfun Ġset Icon ( drawable Res ID : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Binding . imageView Icon . setImage Resource ( drawable Res ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Text ( text : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Binding . textView Main Text . text Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Text ( text Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Binding . textView Main Text . setText ( text Res Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Tint Color ( tint Color Attr Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( view Binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġroot . context . get Theme Color ( tint Color Attr Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView Icon . image Tint List Ġ= ĠColor State List . valueOf ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Main Text . setTextColor ( color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset TextStyle ( style Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( view Binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Main Text . setText Appearance ( style Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Main Text . setText Appearance ( textView Main Text . context , Ġstyle Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠText With Icon Adapter Item ( ĊĠĠĠ Ġon CL ick Listener : Ġ( Text With Icon Item ) Ġ-> ĠUnit Ċ ) Ġ: ĠAdapter Item < Text With Icon ViewHolder , ĠText With Icon Item >( ĊĠĠĠ Ġis Type Ġ= Ġ{ Ġit Ġis ĠText With Icon Item Ġ}, ĊĠĠĠ Ġlayout Res Ġ= ĠR . layout . item _ text _ with _ icon , ĊĠĠĠ ĠviewHolder Generator Ġ= Ġ:: Text With Icon ViewHolder Impl , ĊĠĠĠ Ġitem Binder Ġ= Ġobject Ġ: ĠBase Item Binder < Text With Icon ViewHolder , ĠText With Icon Item >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( vh : ĠText With Icon ViewHolder , Ġmodel : ĠText With Icon Item , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv h . setIcon ( model . drawable Res ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . text ?. let ( vh :: setText ) Ġ?: Ġv h . setText ( model . text Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . text Style Res Id ?. let ( vh :: setText Style ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . tint Color Attr Id ?. let ( vh :: set Tint Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv h . setOnClickListener Ġ{ Ġon CL ick Listener ( model ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}, ĊĠĠĠ Ġare Items The Same Ġ= Ġ{ Ġa , Ġb Ġ-> Ġa . itemId Ġ== Ġb . itemId Ġ} Ċ )