package Ġcom . lav os . features . activities . presentation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Filter Ċ import Ġandroid . widget . Filter able Ċ import Ġcom . lav os . R Ċ import Ġcom . lav os . app . domain . Activity DropDown Entity Ċ import Ġcom . lav os . app . domain . Add Shop DB Model Entity Ċ import Ġcom . lav os . widgets . App Custom TextView Ċ import Ġkotlinx . android . synt hetic . main . inflate _ activity _ item . view .* Ċ import Ġjava . util . HashSet Ċ Ċ class ĠActivity ListAdapter ( private Ġval Ġcontext : ĠContext , Ġlist : ĠArrayList < Add Shop DB Model Entity > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Call Click : Ġ( Add Shop DB Model Entity ) Ġ-> ĠUnit ?, Ġprivate Ġval Ġon Loc Click : Ġ( Add Shop DB Model Entity ) Ġ-> ĠUnit ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġon View Click : Ġ( Add Shop DB Model Entity ) Ġ-> ĠUnit ?, Ġprivate Ġval Ġon List Size : Ġ( Int ) Ġ-> ĠUnit ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < Activity ListAdapter . ViewHolder >(), ĠFilter able Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġinflater : ĠLayoutInflater ĊĠĠĠ Ġprivate Ġvar Ġm List : ĠArrayList < Add Shop DB Model Entity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtemp List : ĠArrayList < Add Shop DB Model Entity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfilter List : ĠArrayList < Add Shop DB Model Entity >? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater Ġ= Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĊĠĠĠĠĠĠĠ Ġm List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġm List ?. addAll ( list !! ) ĊĊĠĠĠĠĠĠĠ Ġtemp List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfilter List Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġtemp List ?. addAll ( list !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . inflate _ activity _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Items () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm List ?. size !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Items () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ name . text Ġ= Ġm List ?. get ( adapter Position )?. shop Name ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ team _ details . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon View Click ( m List ?. get ( adapter Position ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ map _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Loc Click ( m List ?. get ( adapter Position ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv _ call _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Call Click ( m List ?. get ( adapter Position ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSearch Filter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠSearch Filter Ġ: ĠFilter () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( p 0 : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠFilter Results () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter List ?. clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp List ?. indices !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġtemp List ?. get ( it )?. shop Name ?. toLowerCase ()?. contains ( p 0 ?. toString ()?. toLowerCase () !! ) !! Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġfilter List ?. add ( temp List ?. get ( it ) !! ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . values Ġ= Ġfilter List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresults . count Ġ= Ġfilter List ?. size !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( p 0 : ĠCharSequence ?, Ġresults : ĠFilter Results ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter List Ġ= Ġresults ?. values Ġas ĠArrayList < Add Shop DB Model Entity >? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm List ?. clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Set Ġ= ĠHashSet < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( filter List Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter List ?. indices !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġhash Set . add ( filter List ?. get ( it )?. shop _ id !! ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġm List ?. add ( filter List ?. get ( it ) !! ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon List Size ( m List ?. size !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh List ( list : ĠArrayList < Add Shop DB Model Entity >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm List ?. clear () ĊĠĠĠĠĠĠĠ Ġm List ?. addAll ( list ) ĊĊĠĠĠĠĠĠĠ Ġtemp List ?. clear () ĊĠĠĠĠĠĠĠ Ġtemp List ?. addAll ( list ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( filter List Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfilter List ?. clear () ĊĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }