package Ġcarbon . component Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . ViewGroup Ċ import Ġcarbon . component . databinding . Carbon Row Icon search Binding Ċ import Ġcarbon . widget .* Ċ import Ġjava . io . Serializable Ċ Ċ interface ĠIcon Search Item Ġ: ĠSerializable Ġ{ ĊĠĠĠ Ġval Ġicon : ĠDrawable ĊĠĠĠ Ġval Ġquery : ĠString ? ĊĠĠĠ Ġval Ġhint : ĠString ? Ċ } Ċ Ċ class ĠDefault Icon Search Item Ġ: ĠIcon Search Item Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġicon : ĠDrawable ĊĠĠĠ Ġoverride Ġvar Ġquery : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġhint : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġicon Ġ= Ġcontext . resources . get Drawable ( R . drawable . carbon _ search ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġquery : ĠString , Ġhint : ĠString ) Ġ: Ġthis ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . query Ġ= Ġquery ĊĠĠĠĠĠĠĠ Ġthis . hint Ġ= Ġhint ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠIcon Search Row < Type Ġ: ĠIcon Search Item >( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠSearch Adapter <* >, ĊĠĠĠĠĠĠĠ Ġval Ġlistener : ĠSearch EditText . On Filter Listener < *> Ċ ) Ġ: ĠLayout Component < Type >( parent , ĠR . layout . carbon _ row _ ic onse arch ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠCarbon Row Icon search Binding . bind ( view ) ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( data : ĠType ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . carbon Icon . setImage Drawable ( data . icon ) ĊĠĠĠĠĠĠĠ Ġbinding . carbon Query . setData Provider ( adapter ) ĊĠĠĠĠĠĠĠ Ġbinding . carbon Query . setOn Filter Listener ( listener ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ