package Ġv ip . qs os . form . normal . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Circle Crop Ċ import Ġkotlinx . android . synt hetic . main . form _ item _ user _ item . view .* Ċ import Ġv ip . qs os . form . lib . base . Base Holder Ċ import Ġv ip . qs os . form . lib . model . Form Value Entity Ċ import Ġv ip . qs os . form . normal . R Ċ import Ġv ip . qs os . form . normal . utils . G lide App Ċ Ċ /** çĶ¨æĪ· åĪĹè¡¨ å®¹åĻ¨ Ċ Ġ* Ġ@ author Ġ: Ġ åįİ æ¸ħ æĿ ¾ Ċ Ġ*/ Ċ class ĠForm User Adapter ( ĊĠĠĠĠĠĠĠ Ġvar Ġdata : ĠArrayList < Form Value Entity >, ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm On Item Listener : ĠForm Item User Item Holder . On Item Listener , ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm On Delete Listener : ĠForm Item User Item Holder . On Delete Listener Ċ ) Ġ: ĠRecyclerView . Adapter < Base Holder < Form Value Entity >>() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase Holder < Form Value Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . form _ item _ user _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠForm Item User Item Holder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBase Holder < Form Value Entity >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder Ġas ĠForm Item User Item Holder ĊĠĠĠĠĠĠĠ Ġholder . setData ( position , Ġdata [ position ]) ĊĠĠĠĠĠĠĠ Ġholder . set Delete Listener ( object Ġ: ĠForm Item User Item Holder . On Delete Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdelete ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . remove ( data [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Delete Listener . delete ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġholder . setOn Item Listener ( object Ġ: ĠForm Item User Item Holder . On Item Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġitem ( position : ĠInt , Ġdata : ĠForm Value Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Item Listener . item ( position , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . size ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: Ġ åįİ æ¸ħ æĿ ¾ Ċ Ġ* ĠçĶ¨æĪ· åĪĹè¡¨ é¡¹ å¸ĥå±Ģ Ċ Ġ*/ Ċ class ĠForm Item User Item Holder ( item View : ĠView ) Ġ: ĠBase Holder < Form Value Entity >( item View ) Ġ{ ĊĊĠĠĠ Ġinterface ĠOn Delete Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġdelete ( position : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Item Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġitem ( position : ĠInt , Ġdata : ĠForm Value Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm On Item Listener : ĠOn Item Listener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm On Delete Listener : ĠOn Delete Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset On Item Listener ( listener : ĠOn Item Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m On Item Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Delete Listener ( listener On : ĠOn Delete Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m On Delete Listener Ġ= Ġlistener On ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( position : ĠInt , Ġdata : ĠForm Value Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata . value . let Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . tv _ item _ form _ user _ name . text Ġ= Ġuser !!. userName ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( user . user Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Circle Crop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. skip Memory Cache ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( item View . iv _ item _ form _ user _ icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . iv _ item _ form _ user _ delete . visibility Ġ= Ġif Ġ( data . editable ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . iv _ item _ form _ user _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Item Listener ?. item ( position , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . iv _ item _ form _ user _ delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm On Delete Listener ?. delete ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ