package Ġcom . zhang t eng . base . base Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . util . Link ify Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . On Long ClickListener Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Alpha Animation Ċ import Ġandroid . widget .* Ċ import Ġandroid . widget . Adapter View . On ItemSelected Listener Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . zhang t eng . base . base . Base Adapter . Default ViewHolder Ċ Ċ /** Ċ Ġ* ĠRecyclerView Ġ èĩªå®ļä¹ī çļĦ éĢĤ éħį åĻ¨ Ċ Ġ* ĠCreated Ġby ĠSw ing Ġon Ġ 2 0 1 8 / 5 / 7 . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Adapter < T , ĠV H Ġ: ĠDefault ViewHolder > Ġ: ĠRecyclerView . Adapter < VH ?> Ġ{ ĊĠĠĠ Ġconstructor () ĊĠĠĠ Ġconstructor ( data : ĠMutable List < T ?> ?) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data Ġ= Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdata : ĠMutable List < T ?> ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġhas Header Or Footer Ġ= Ġfalse ĊĠĠĠ Ġvar Ġm On ItemClickListener : ĠOn ItemClickListener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm On Item Long ClickListener : ĠOn Item Long ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm On Item Child ClickListener : ĠOn Item Child ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm On Item Child Long ClickListener : ĠOn Item Child Long ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġabstract Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠV H ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠV H , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġholder . setAdapter ( this ) ĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm On ItemClickListener ?. on Item Click ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( m On Item Long ClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . is Long Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOn Long ClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Item Long ClickListener ?. on Item Long Click ( v , Ġholder . binding Adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Long ClickListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull Ġ|| Ġposition Ġ>= Ġdata !!. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Bind ViewHolder ( holder , Ġnull , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Bind ViewHolder ( holder , Ġdata ! ![ position ], Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġon Bind ViewHolder ( holder : ĠV H , Ġitem : ĠT ?, Ġposition : ĠInt ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( data Ġ== Ġnull Ġ|| Ġdata !!. isEmpty ()) Ġ 0 Ġelse Ġdata !!. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( view : ĠView ?, Ġposition : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Item Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Long Click ( view : ĠView ?, Ġposition : ĠInt ): ĠBoolean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Item Child ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Child Click ( view : ĠView ?, Ġposition : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Item Child Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Child Long Click ( view : ĠView ?, Ġposition : ĠInt ): ĠBoolean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġclass ĠDefault ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠViews Ġindexed Ġwith Ġtheir ĠIDs ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġviews : ĠSparse Array < View ?> ? ĊĠĠĠĠĠĠĠ Ġfun Ġget Nest Views (): ĠMutable Set < Int ?> ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnest Views ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġnest Views : ĠHashSet < Int ?> ? ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġchild Click View Ids : ĠLinked HashSet < Int ?> ? ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġitem Child Long Click View Ids : ĠLinked HashSet < Int ?> ? ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġadapter : ĠBase Adapter < *, Ġ* >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠPackage Ġprivate Ġfield Ġto Ġretain Ġthe Ġassociated Ġuser Ġobject Ġand Ġdetect Ġa Ġchange ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġassociated Object : ĠAny ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun ĠgetItem Child Long Click View Ids (): ĠHashSet < Int ?> ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġitem Child Long Click View Ids ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Child Click View Ids (): ĠHashSet < Int ?> ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchild Click View Ids ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġthe Ġtext Ġof Ġa ĠTextView . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġ ĠThe Ġtext Ġto Ġput Ġin Ġthe Ġtext Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Text (@ Id Res Ġview Id : ĠInt , Ġvalue : ĠCharSequence ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. text Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Text (@ Id Res Ġview Id : ĠInt , Ġ@ String Res Ġstr Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setText ( str Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġthe Ġimage Ġof Ġan ĠImageView Ġfrom Ġa Ġresource Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġimage Res Id ĠThe Ġimage Ġresource Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Image Resource (@ Id Res Ġview Id : ĠInt , Ġ@ Drawable Res Ġimage Res Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ImageView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setImage Resource ( image Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġbackground Ġcolor Ġof Ġa Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcolor Ġ ĠA Ġcolor , Ġnot Ġa Ġresource Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset BackgroundColor (@ Id Res Ġview Id : ĠInt , Ġ@ Color Int Ġcolor : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġbackground Ġof Ġa Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠĠĠĠĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġbackground Res ĠA Ġresource Ġto Ġuse Ġas Ġa Ġbackground . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Background Res ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Id Res Ġview Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġbackground Res : ĠInt ĊĠĠĠĠĠĠĠ Ġ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setBackground Resource ( background Res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġtext Ġcolor Ġof Ġa ĠTextView . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠtextColor ĠThe Ġtext Ġcolor Ġ( not Ġa Ġresource Ġid ). ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset TextColor (@ Id Res Ġview Id : ĠInt , Ġ@ Color Int ĠtextColor : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setTextColor ( textColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠWill Ġset Ġthe Ġimage Ġof Ġan ĠImageView Ġfrom Ġa Ġdrawable . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdrawable ĠThe Ġimage Ġdrawable . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Image Drawable (@ Id Res Ġview Id : ĠInt , Ġdrawable : ĠDrawable ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ImageView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setImage Drawable ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdd Ġan Ġaction Ġto Ġset Ġthe Ġimage Ġof Ġan Ġimage Ġview . ĠCan Ġbe Ġcalled Ġmultiple Ġtimes . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Image Bitmap (@ Id Res Ġview Id : ĠInt , Ġbitmap : ĠBitmap ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ImageView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setImage Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdd Ġan Ġaction Ġto Ġset Ġthe Ġalpha Ġof Ġa Ġview . ĠCan Ġbe Ġcalled Ġmultiple Ġtimes . ĊĠĠĠĠĠĠĠĠ Ġ* ĠAlpha Ġbetween Ġ 0 - 1 . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Alpha (@ Id Res Ġview Id : ĠInt , Ġvalue : ĠFloat ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . H ONE Y COMB ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View < View ? >( view Id )?. alpha Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPre - h oney comb Ġhack Ġto Ġset ĠAlpha Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= ĠAlpha Animation ( value , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha . duration Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalpha . fill After Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget View < View ? >( view Id )?. start Animation ( alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġa Ġview Ġvisibility Ġto ĠVIS IBLE Ġ( true ) Ġor ĠG ONE Ġ( false ). ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvisible ĠTrue Ġfor ĠVIS IBLE , Ġfalse Ġfor ĠG ONE . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset G one (@ Id Res Ġview Id : ĠInt , Ġvisible : ĠBoolean ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setVisibility ( if Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġa Ġview Ġvisibility Ġto ĠVIS IBLE Ġ( true ) Ġor ĠIN VISIBLE Ġ( false ). ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġvisible ĠTrue Ġfor ĠVIS IBLE , Ġfalse Ġfor ĠIN VISIBLE . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Visible (@ Id Res Ġview Id : ĠInt , Ġvisible : ĠBoolean ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setVisibility ( if Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdd Ġlinks Ġinto Ġa ĠTextView . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġid Ġof Ġthe ĠTextView Ġto Ġlink ify . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġlink ify (@ Id Res Ġview Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. let Ġ{ ĠLink ify . add Links ( it , ĠLink ify . ALL ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠApply Ġthe Ġtype face Ġto Ġthe Ġgiven Ġview Id , Ġand Ġenable Ġsub pixel Ġrendering . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Type face (@ Id Res Ġview Id : ĠInt , Ġtype face : ĠType face ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setType face ( type face ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. paint Flags Ġ= Ġview !!. paint Flags Ġor ĠPaint . SUB PIXEL _ TEXT _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠApply Ġthe Ġtype face Ġto Ġall Ġthe Ġgiven Ġview Ids , Ġand Ġenable Ġsub pixel Ġrendering . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Type face ( type face : ĠType face ?, Ġvar arg Ġview Ids : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( view Id Ġin Ġview Ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < TextView ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setType face ( type face ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. paint Flags Ġ= Ġview !!. paint Flags Ġor ĠPaint . SUB PIXEL _ TEXT _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġprogress Ġof Ġa ĠProgress Bar . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġprogress ĠThe Ġprogress . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Progress (@ Id Res Ġview Id : ĠInt , Ġprogress : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ProgressBar ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġprogress Ġand Ġmax Ġof Ġa ĠProgress Bar . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġprogress ĠThe Ġprogress . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġmax ĠĠĠĠĠ ĠThe Ġmax Ġvalue Ġof Ġa ĠProgress Bar . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Progress (@ Id Res Ġview Id : ĠInt , Ġprogress : ĠInt , Ġmax : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ProgressBar ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. max Ġ= Ġmax ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġrange Ġof Ġa ĠProgress Bar Ġto Ġ 0 ... max . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġmax ĠĠĠ ĠThe Ġmax Ġvalue Ġof Ġa ĠProgress Bar . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Max (@ Id Res Ġview Id : ĠInt , Ġmax : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < ProgressBar ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. max Ġ= Ġmax ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġrating Ġ( the Ġnumber Ġof Ġstars Ġfilled ) Ġof Ġa ĠRating Bar . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġrating ĠThe Ġrating . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Rating (@ Id Res Ġview Id : ĠInt , Ġrating : ĠFloat ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Rating Bar ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. rating Ġ= Ġrating ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġrating Ġ( the Ġnumber Ġof Ġstars Ġfilled ) Ġand Ġmax Ġof Ġa ĠRating Bar . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġrating ĠThe Ġrating . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġmax ĠĠĠ ĠThe Ġrange Ġof Ġthe ĠRating Bar Ġto Ġ 0 ... max . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Rating (@ Id Res Ġview Id : ĠInt , Ġrating : ĠFloat , Ġmax : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Rating Bar ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. max Ġ= Ġmax ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. rating Ġ= Ġrating ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġadd Ġchild View Ġid ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġadd Ġthe Ġchild Ġview Ġid ĠĠ Ġcan Ġsupport Ġchild view Ġclick ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġif Ġyou Ġuse Ġadapter Ġbind Ġlistener ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ link Ġ{( adapter . setOn Item Child ClickListener ( listener ))} ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġor Ġif Ġyou Ġcan Ġuse Ġ Ġre cyclerView . add On Item Touch ( list er er ) Ġ Ġwo Ġalso Ġsupport Ġthis Ġment hod ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġadd OnClickListener (@ Id Res Ġview Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Click View Ids ?. add ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! view . is Clickable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . is Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener ( View . OnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter ?. m On Item Child ClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. m On Item Child ClickListener !!. on Item Child Click ( v , Ġlayout Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġset Ġnest view Ġid ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġadd Ġthe Ġchild Ġview Ġid ĠĠ Ġcan Ġsupport Ġchild view Ġclick ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Nest View (@ Id Res Ġview Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd OnClickListener ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Long ClickListener ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Views ?. add ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġadd Ġlong Ġclick Ġview Ġid ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġif Ġyou Ġuse Ġadapter Ġbind Ġlistener ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ link Ġ{( adapter . setOn Item Child Long ClickListener ( listener ))} ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġor Ġif Ġyou Ġcan Ġuse Ġ Ġre cyclerView . add On Item Touch ( list er er ) Ġ Ġwo Ġalso Ġsupport Ġthis Ġment hod ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġadd On Long ClickListener (@ Id Res Ġview Id : ĠInt ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Child Long Click View Ids ?. add ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! view . is Long Clickable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . is Long Clickable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOn Long ClickListener ( On Long ClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. m On Item Child Long ClickListener Ġ!= Ġnull Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. m On Item Child Long ClickListener !!. on Item Child Long Click ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġlist view Ġor Ġgrid view 's Ġitem Ġlong Ġclick Ġlistener Ġof Ġthe Ġview ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠThe Ġitem Ġlong Ġclick Ġlistener ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset On Item Long ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Id Res Ġview Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠAdapter View . On Item Long ClickListener ? ĊĠĠĠĠĠĠĠ Ġ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Adapter View < *> ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. on Item Long ClickListener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġlist view Ġor Ġgrid view 's Ġitem Ġselected Ġclick Ġlistener Ġof Ġthe Ġview ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠThe Ġitem Ġselected Ġclick Ġlistener ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset On ItemSelected ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Id Res Ġview Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠOn ItemSelected Listener ? ĊĠĠĠĠĠĠĠ Ġ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Adapter View < *> ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. on ItemSelected Listener Ġ= Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġon Ġchecked Ġchange Ġlistener Ġof Ġthe Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠĠ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlistener ĠThe Ġchecked Ġchange Ġlistener Ġof Ġcompound Ġbutton . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset On Checked ChangeListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Id Res Ġview Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener : ĠCompound Button . On Checked ChangeListener ? ĊĠĠĠĠĠĠĠ Ġ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Compound Button ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setOn Checked ChangeListener ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġtag Ġof Ġthe Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtag ĠĠĠ ĠThe Ġtag ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Tag (@ Id Res Ġview Id : ĠInt , Ġtag : ĠAny ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. tag Ġ= Ġtag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġtag Ġof Ġthe Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġkey ĠĠĠ ĠThe Ġkey Ġof Ġtag ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtag ĠĠĠ ĠThe Ġtag ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Tag (@ Id Res Ġview Id : ĠInt , Ġkey : ĠInt , Ġtag : ĠAny ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setTag ( key , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġchecked Ġstatus Ġof Ġa Ġcheck able . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġchecked ĠThe Ġchecked Ġstatus ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Checked (@ Id Res Ġview Id : ĠInt , Ġchecked : ĠBoolean ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < View ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠView Ġunable Ġcast Ġto ĠCheck able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠCheck able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( view Ġas ĠCheck able ?) ?. isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġadapter Ġof Ġa Ġadapter Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview Id Ġ ĠThe Ġview Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġadapter ĠThe Ġadapter ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Adapter (@ Id Res Ġview Id : ĠInt , Ġadapter : ĠAdapter ?): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġget View < Adapter View < *> ? >( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. setAdapter ( adapter Ġas ĠNothing ?) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSets Ġthe Ġadapter Ġof Ġa Ġadapter Ġview . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġadapter ĠThe Ġadapter ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe ĠDefault ViewHolder Ġfor Ġchaining . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġset Adapter ( adapter : ĠBase Adapter < *, Ġ* >? ): ĠDefault ViewHolder ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< T Ġ: ĠView ?> Ġget View (@ Id Res Ġview Id : ĠInt ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġview Ġ= Ġviews ?. get ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠitemView . findViewById ( view Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġviews ?. put ( view Id , Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview Ġas ĠT ? ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews Ġ= ĠSparse Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Click View Ids Ġ= ĠLinked HashSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Child Long Click View Ids Ġ= ĠLinked HashSet () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Views Ġ= ĠHashSet () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprotected Ġconst Ġval ĠDEFAULT _ VIEW Ġ= Ġ 1 0 0 0 0 ĊĠĠĠ Ġ} Ċ }