/* Ċ Ġ* ĠAW IS : ĠAd venture ĠWorks ĠInformation ĠSystems , ĠAndroid ĠApp Ċ Ġ* ĠCreated Ġfor Ġthe ĠMM 5 4 3 - 0 9 0 0 - 3 - 2 0 2 0 Ġcourse . Ċ Ġ* ĠTeam : ĠT ob ias ĠBr iones , ĠJ uan ĠV are la Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠT ob ias ĠBr iones . Ċ Ġ* Ċ Ġ* ĠThis Ġsource Ġcode Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense Ġfound Ġin Ġthe Ċ Ġ* ĠLICENSE Ġfile Ġin Ġthe Ġroot Ġdirectory Ġof Ġthis Ġsource Ġtree . Ċ Ġ*/ Ċ Ċ package Ġcom . mm 5 4 3 . aw is . ui . main . search Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . mm 5 4 3 . aw is . R Ċ import Ġcom . mm 5 4 3 . aw is . domain . model . Product Ċ import Ġkotlinx . android . synt hetic . main . product _ search _ item . view .* Ċ Ċ class ĠProduct Search Adapter ( private Ġval Ġon Item Click : Ġ(( item : ĠProduct ) Ġ-> ĠUnit )) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Product Search Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġproduct Items Ġ= ĠArrayList < Product >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġview Group : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġli Ġ= ĠLayoutInflater . from ( view Group . context ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġli . inflate ( R . layout . product _ search _ item , Ġview Group , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproduct Items . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . setData ( product Items [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Products ( items : ĠList < Product >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsilent Clear () ĊĠĠĠĠĠĠĠ Ġproduct Items . addAll ( items ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsilent Clear () Ġ{ ĊĠĠĠĠĠĠĠ Ġproduct Items . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( inflate : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( inflate ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠsetData ( product Item : ĠProduct ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Price Res Ġ= ĠitemView . context . resources . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . product _ price _ d ollar s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Price Str Ġ= Ġproduct Price Res . format ( product Item . list Price ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Item . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click . invoke ( product Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . product _ image _ iv . setImage Resource ( R . drawable . ic _ baseline _ info _ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . product _ name _ tv . text Ġ= Ġproduct Item . name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . product _ price _ tv . text Ġ= Ġproduct Price Str ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ