package Ġcom . h ern and aze ved o . za ap . search . presentation . search Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . Priority Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . h ern and aze ved o . za ap . core . base . common . Data Constants . I MAGES _ EXTRA Ċ import Ġcom . h ern and aze ved o . za ap . core . base . common . Data Constants . INFO 1 _ EXTRA Ċ import Ġcom . h ern and aze ved o . za ap . core . base . common . Data Constants . INFO 2 _ EXTRA Ċ import Ġcom . h ern and aze ved o . za ap . core . base . common . Data Constants . INFO 3 _ EXTRA Ċ import Ġcom . h ern and aze ved o . za ap . core . base . common . Data Constants . INFO 4 _ EXTRA Ċ import Ġcom . h ern and aze ved o . za ap . core . base . navigation . Intent Factory Ċ import Ġcom . h ern and aze ved o . za ap . core . base . navigation . Intent Factory . Companion . ACTION _ DETAIL Ċ import Ġcom . h ern and aze ved o . za ap . search . R Ċ import Ġcom . h ern and aze ved o . za ap . search . domain . model . Search Response Item Domain Ċ import Ġcom . h ern and aze ved o . za ap . search . domain . use case . search . Common Constants . BUS INESS _ TYPE _ S ALE Ċ Ċ class ĠPag inated Search ViewHolder ( view : ĠView , Ġprivate Ġval Ġintent Factory : ĠIntent Factory ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġinfo 1 : ĠTextView Ġ= Ġview . findViewById ( R . id . info 1 ) ĊĠĠĠ Ġprivate Ġval Ġinfo 2 : ĠTextView Ġ= Ġview . findViewById ( R . id . info 2 ) ĊĠĠĠ Ġprivate Ġval Ġinfo 3 : ĠTextView Ġ= Ġview . findViewById ( R . id . info 3 ) ĊĠĠĠ Ġprivate Ġval Ġinfo 4 : ĠTextView Ġ= Ġview . findViewById ( R . id . info 4 ) ĊĊĠĠĠ Ġprivate Ġval ĠimageView : ĠImageView Ġ= Ġview . findViewById ( R . id . imageView ) ĊĊĠĠĠ Ġprivate Ġvar Ġdomain : ĠSearch Response Item Domain ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdomain ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠitemView . resources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent Factory . get Intent ( action Ġ= ĠACTION _ DETAIL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( INFO 1 _ EXTRA , Ġcreate Info 1 ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( INFO 2 _ EXTRA , Ġcreate Info 2 ( resources , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( INFO 3 _ EXTRA , Ġcreate Info 3 ( resources , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( INFO 4 _ EXTRA , Ġcreate Info 4 ( resources , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ArrayList ( I MAGES _ EXTRA , ĠArrayList ( it . images )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . context . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( item : ĠSearch Response Item Domain ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠitemView . resources ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo 1 . text Ġ= Ġresources . getString ( R . string . loading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo 2 . text Ġ= Ġresources . getString ( R . string . loading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo 3 . text Ġ= Ġresources . getString ( R . string . loading ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Data ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Data ( item : ĠSearch Response Item Domain ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠitemView . resources ĊĠĠĠĠĠĠĠ Ġthis . domain Ġ= Ġitem ĊĠĠĠĠĠĠĠ Ġinfo 1 . text Ġ= Ġcreate Info 1 ( item ) ĊĠĠĠĠĠĠĠ Ġinfo 2 . text Ġ= Ġcreate Info 2 ( resources , Ġitem ) ĊĠĠĠĠĠĠĠ Ġinfo 3 . text Ġ= Ġcreate Info 3 ( resources , Ġitem ) ĊĠĠĠĠĠĠĠ Ġinfo 4 . text Ġ= Ġcreate Info 4 ( resources , Ġitem ) ĊĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. priority ( Priority . HIGH ) ĊĠĠĠĠĠĠĠ ĠG lide . with ( item View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item . images . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Info 4 ( ĊĠĠĠĠĠĠĠ Ġresources : ĠResources , ĊĠĠĠĠĠĠĠ Ġitem : ĠSearch Response Item Domain ĊĠĠĠ Ġ) Ġ= Ġresources . getString ( R . string . code , Ġitem . id ) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Info 3 ( ĊĠĠĠĠĠĠĠ Ġresources : ĠResources , ĊĠĠĠĠĠĠĠ Ġitem : ĠSearch Response Item Domain ĊĠĠĠ Ġ) Ġ= Ġif Ġ( item . pricing Infos . business Type Ġ== ĠBUSINESS _ TYPE _ S ALE ) ĊĠĠĠĠĠĠĠ Ġresources . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . price , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . pricing Infos . price ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġresources . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . price _ rent al , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . pricing Infos . rent al Total Price Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Info 2 ( ĊĠĠĠĠĠĠĠ Ġresources : ĠResources , ĊĠĠĠĠĠĠĠ Ġitem : ĠSearch Response Item Domain ĊĠĠĠ Ġ) Ġ= Ġ"${ resources . getString ( R . string . bed rooms , Ġitem . bed rooms . toString ()) } Ġ| Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . b ath rooms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . b ath rooms . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ| Ġ${ resources . getString ( R . string . usable area , Ġitem . usable Areas . toString ()) } Ġ| Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . park ing space , Ġitem . park ing Spaces . toString ()) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Info 1 ( item : ĠSearch Response Item Domain ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( item . address . city Ġ== Ġ"") ĠitemView . resources . getString ( R . string . invalid _ city ) Ġelse Ġitem . address . city ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( parent : ĠViewGroup , Ġintent Factory : ĠIntent Factory ): ĠPag inated Search ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . search _ view _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPag inated Search ViewHolder ( view , Ġintent Factory ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ