package Ġcom . blank . github user . ui . favorite . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . blank . github user . data . model . User Ċ import Ġcom . blank . github user . databinding . Item User Favorite Binding Ċ import Ġcom . blank . github user . utils . AN ONY M _ PERSON _ ICON Ċ import Ġcom . blank . github user . utils . no Location Ċ import Ġcom . blank . github user . utils . no Name Ċ import Ġcom . blank . github user . utils . set Images Ċ import Ġcom . ch auth ai . swiper e ve all ayout . View Binder Helper Ċ import Ġkotlinx . android . synt hetic . main . item _ user . view .* Ċ Ċ class ĠF avorite Adapter ( ĊĠĠĠ Ġprivate Ġval Ġdata : ĠMutable List < User >, ĊĠĠĠ Ġprivate Ġval Ġlistener Delete : Ġ( User , Ġ( User , ĠInt ) Ġ-> ĠUnit , ĠInt ) Ġ-> ĠUnit Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Favorite Adapter . Favorite ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġview Binder Helper Ġ= ĠView Binder Helper () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclick listener : Ġ( user : ĠUser , Ġview Array : ĠArray < View >) Ġ-> ĠUnit ĊĊĠĠĠ Ġfun Ġadd ( user : ĠUser , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . add ( position , Ġuser ) ĊĠĠĠĠĠĠĠ Ġnotify Item Inserted ( position ) ĊĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( position , Ġdata . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate ( parent : ĠViewGroup ) Ġ= ĠF avorite ViewHolder ( ĊĠĠĠĠĠĠĠ ĠItem User Favorite Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), Ġparent , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġclick Listener ( listener : Ġ( user : ĠUser , Ġview Array : ĠArray < View >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . click listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove At ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . remove At ( position ) ĊĠĠĠĠĠĠĠ Ġnotify Item Removed ( position ) ĊĠĠĠĠĠĠĠ Ġnotify Item Range Changed ( position , Ġdata . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠF avorite ViewHolder Ġ= ĊĠĠĠĠĠĠĠ Ġcreate ( parent ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġdata . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠF avorite ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġdata [ position ] ĊĠĠĠĠĠĠĠ Ġval Ġno _ name Ġ= Ġholder . item View . context . no Name () ĊĠĠĠĠĠĠĠ Ġview Binder Helper . set Open Only One ( true ) ĊĠĠĠĠĠĠĠ Ġview Binder Helper . bind ( holder . v . sw ipel ayout , Ġitem . name Ġ?: Ġno _ name ) ĊĠĠĠĠĠĠĠ Ġview Binder Helper . close Layout ( item . name Ġ?: Ġno _ name ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( item , Ġposition ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠF avorite ViewHolder ( ĊĠĠĠĠĠĠĠ Ġval Ġv : ĠItem User Favorite Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( v . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser : ĠUser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . iv Photo . set Images ( user . avatar Url Ġ?: ĠAN ONY M _ PERSON _ ICON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . tv Title . text Ġ= Ġuser . name Ġ?: Ġv . root . context . no Name () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . tv Location . text Ġ= Ġuser . location Ġ?: Ġv . root . context . no Location () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . tv Delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Delete ( user , Ġthis @ Favorite Adapter :: add , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . cl Item User . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser , ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . iv Photo , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . tv Title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . root . tv Location ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }