package Ġcom . sf is cus development . sf is cus . book lit . search Good Reads Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . sf is cus development . sf is cus . book lit . R Ċ import Ġcom . sf is cus development . sf is cus . book lit . entities . Book Wrapper Ċ import Ġcom . sf is cus development . sf is cus . book lit . inflate Ċ import Ġcom . sf is cus development . sf is cus . book lit . load Image Ċ import Ġcom . sf is cus development . sf is cus . book lit . setText And Content Description Ċ import Ġkotlinx . android . synt hetic . main . book _ search . view .* Ċ Ċ /** Ċ Ġ* ĠCreate Ġa Ġclass Ġwith Ġan Ġid Ġof ĠSearch Adapter . ĠKotlin Ġprogramming Ġlanguage Ġis Ġused Ġfor Ġthis Ġclass Ċ Ġ* Ġsetting Ġit Ġapart Ġfrom Ġmany Ġof Ġthe Ġother Ġclasses Ġin Ġthis Ġproject . ĠKotlin Ġis Ġdesigned Ġto Ġrun Ġon Ġa Ċ Ġ* ĠJVM Ġwhile Ġallowing Ġit Ġto Ġbe Ġused Ġinter change ably Ġwith ĠJava . ĠThis Ġclass Ġis Ġan Ġadapter Ġfor Ġthe Ċ Ġ* ĠSearch Activity Ċ Ġ*/ Ċ class ĠSearch Adapter ( private Ġval Ġlistener : ĠSearch ViewHolder . Search Book Listener ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠVIEW _ TYPE _ ITEM Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval ĠVIEW _ TYPE _ PROGRESS Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġvar Ġbook Wrappers : ĠArrayList < Book Wrapper > Ġ= ĠArrayList () ĊĠĠĠ Ġvar ĠprogressBar Enabled Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context Ċ // ĠĠĠĠĠĠĠ Ġval Ġsearch View Item Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . book _ search , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Type . equals ( VIEW _ TYPE _ ITEM )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSearch ViewHolder ( parent . inflate ( R . layout . book _ search ), Ġlistener ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProgress ViewHolder ( parent . inflate ( R . layout . search _ progress )); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠSearch ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . set Book Wrapper ( book Wrappers [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġif Ġ( progress Bar Enabled ) Ġbook Wrappers . size Ġ+ Ġ 1 Ġelse Ġbook Wrappers . size ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ>= Ġbook Wrappers . size ) ĠVIEW _ TYPE _ PROGRESS Ġelse ĠVIEW _ TYPE _ ITEM ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Books ( book Wrapper : ĠArrayList < Book Wrapper >) Ġ{ ĊĠĠĠĠĠĠĠ Ġbook Wrappers . addAll ( book Wrapper ) ĊĠĠĠĠĠĠĠ Ġthis . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġbook Wrappers . clear () ĊĠĠĠĠĠĠĠ Ġthis . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenable ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar Enabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSearch ViewHolder ( item View : ĠView , Ġprivate Ġval Ġlistener : ĠSearch ViewHolder . Search Book Listener ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinterface ĠSearch Book Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġon AddTo ClickListener ( book Wrapper : ĠBook Wrapper ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Book Wrapper ( item : ĠBook Wrapper ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook Ġ= Ġitem . get Book () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( book ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . txt _ title . setText And Content Description ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . txt _ author . setText And Content Description ( author . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . img _ cover . load Image ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . rating _ stars . content Description Ġ= Ġitem . average Rating ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . rating _ stars . rating Ġ= Ġitem . average Rating . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . btn _ add _ to . setOnClickListener Ġ{ Ġlistener . on AddTo ClickListener ( item ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠProgress ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ċ } Ċ