/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 9 ĠArc us ĠProject . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġar cus . app . pair ing . device . custom ization . h alo . room Ċ Ċ import Ġandroid . support . v 7 . widget . AppCompat RadioButton Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġar cus . app . R Ċ import Ġar cus . app . common . utils . inflate Ċ import Ġar cus . app . common . view . S cl era TextView Ċ import Ġar cus . presentation . pair ing . device . custom ization . h alo . room . H alo Room Ċ Ċ class ĠH alo Room Adapter ( ĊĠĠĠ Ġfirst Selection Ġ: ĠInt , ĊĠĠĠ Ġprivate Ġval Ġh alo Rooms Ġ: ĠList < H alo Room >, ĊĠĠĠ Ġprivate Ġval Ġcallback Ġ: ĠH alo Room Adapter Callback Ċ ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĠĠĠ Ġvar Ġlast Selection Ġ= Ġfirst Selection ĊĊĠĠĠ Ġinterface ĠH alo Room Adapter Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Selection Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġh alo Rooms . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠH alo Room ViewHolder ( parent . inflate ( R . layout . list _ item _ h alo _ room ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠH alo Room ViewHolder ). bind View ( h alo Rooms [ position ], Ġ( last Selection Ġ== Ġposition )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Last Selection ( last : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Selection Ġ= Ġlast ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠH alo Room ViewHolder ( view : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ: ĠH alo Room Adapter Callback ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroom Name Ġ= Ġview . findViewById < S cl era TextView >( R . id . room _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġroom Selector Ġ= Ġview . findViewById < AppCompat RadioButton >( R . id . room _ selector ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind View ( room : ĠH alo Room , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked : ĠBoolean ) Ġ= Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroom Selector . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroom Name . text Ġ= Ġroom . displayName ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroom Selector . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Last Selection ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Selection Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }