/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 2 1 ĠJul ien ĠGu er inet Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . gu er inet . suit case . ui Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ /** Ċ Ġ* ĠBasic Ġ[ ListAdapter ] Ġimplementation Ġfor Ġ[ RecyclerView ] s Ċ Ġ* Ġ@ author ĠJul ien ĠGu er inet Ċ Ġ* Ġ@ since Ġ 2 . 3 . 0 Ċ Ġ* Ċ Ġ* Ġ@ param Ġdiff Callback Ġ[ Diff Util . Item Callback ] Ġto Ġuse Ġfor Ġthe Ġ[ ListAdapter ] Ċ Ġ* Ġ@ param Ġempty View Ġ[ View ] Ġto Ġshow Ġif Ġthe Ġlist Ġis Ġempty , Ġnull Ġif Ġnone Ġ( defaults Ġto Ġnull ) Ċ Ġ*/ Ċ abstract Ġclass ĠBase ListAdapter < T >( ĊĠĠĠ Ġdiff Callback : ĠDiff Util . Item Callback < T >, ĊĠĠĠ Ġval Ġempty View : ĠView ? Ġ= Ġnull Ċ ) Ġ: ĊĠĠĠ ĠList Adapter < T , ĠBase ListAdapter . Base Holder < T >>( diff Callback ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBase Holder < T >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( position , ĠgetItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit List ( list : ĠMutable List < T > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . submit List ( list ) ĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġthe Ġempty Ġif Ġan Ġempty Ġor Ġnull Ġlist Ġis Ġpassed Ġin ĊĠĠĠĠĠĠĠ Ġshow Empty View ( list ?. isEmpty () Ġ?: Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDetermines Ġwhether Ġthe Ġ[ empty View ], Ġif Ġthere Ġis Ġone , Ġ[ isVisible ] Ġor Ġnot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Empty View ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġempty View ?. visibility Ġ= Ġif Ġ( isVisible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBasic Ġimplementation Ġof Ġthe Ġ[ RecyclerView . ViewHolder ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġclass ĠBase Holder < T >( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠConvenience Ġconstructor Ġtaking Ġthe Ġ[ parent ] Ġab d Ġt ge Ġ[ layout Id ] Ġof Ġthe Ġitem Ġview Ġto Ġcreate ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconstructor ( parent : ĠViewGroup , Ġ@ Layout Res Ġlayout Id : ĠInt ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ( LayoutInflater . from ( parent . context ). inflate ( layout Id , Ġparent , Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBind s Ġthe Ġholder Ġto Ġthe Ġgiven Ġ[ item ] Ġat Ġthe Ġgiven Ġ[ position ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġbind ( position : ĠInt , Ġitem : ĠT ) Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ