package Ġcom . j il . paint f . adapter Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . palette . graphics . Palette Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . target . Custom Target Ċ import Ġcom . bump tech . glide . request . transition . Transition Ċ import Ġcom . j il . paint f . R Ċ import Ġcom . j il . paint f . activity . User Activity Ċ import Ġcom . j il . paint f . custom . G lide Circle With Border Ċ import Ġcom . j il . paint f . custom . Item Touch Helper Adapter Ċ import Ġcom . j il . paint f . custom . Theme Util Ċ import Ġcom . j il . paint f . repository . Item Ċ import Ġcom . j il . paint f . service . App Paint F Ċ import Ġcom . j il . paint f . view model . Doc Oper ate Model Ċ Ċ class ĠItem Adapter ( ĊĠĠĠ Ġprivate Ġval ĠmContext : ĠContext Ċ ) Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >(), Item Touch Helper Adapter Ġ{ ĊĠĠĠ Ġval Ġdata Ġ= Ġarray ListOf < Item >() ĊĠĠĠ Ġvar Ġitem OnClickListener : ĠAdapter View . On ItemClickListener ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġstatus Ġ= Ġ" æŃ£åľ¨ åĬłè½½ ..." ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġ= ĊĠĠĠĠĠĠĠ ĠViewModel Provider . Android ViewModel Factory ( App Paint F . instance ). create ( Doc Oper ate Model :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ TYPE . ITEM _ TYPE _ DATA . ordinal Ġ-> ĠItem V Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( mContext ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Paint F . instance . st agger ) ĠR . layout . st agger ed _ item _ doc _ list Ġelse ĠR . layout . item _ doc _ list , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBottom ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( mContext ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ recycle view _ loading , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Adapter Data Observer ( object Ġ: ĠRecyclerView . Adapter Data Observer () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Removed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Removed ( position Start , Ġitem Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Moved ( from Position : ĠInt , Ġto Position : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Moved ( from Position , Ġto Position , Ġitem Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Inserted ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Inserted ( position Start , Ġitem Count ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 Ġuntil Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Changed ( item Count Ġ+ Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Changed ( position Start : ĠInt , Ġitem Count : ĠInt , Ġpayload : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Item Range Changed ( position Start , Ġitem Count , Ġpayload ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Changed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// åºķ éĥ¨ ĠViewHolder ĊĠĠĠ Ġclass ĠBottom ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtextView : ĠTextView Ġ= ĠitemView . findViewById ( R . id . textView 2 3 ) ĊĠĠĠĠĠĠĠ Ġval ĠprogressBar : ĠProgress Bar Ġ= ĠitemView . findViewById ( R . id . progress Bar ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠLogger . d ( position . toString ()+" on Bind ViewHolder -> "+ holder . toString ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠItem V Holder ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . imageUrl Ġ= Ġdata [ position ]. item . pictures [ 0 ]. img _ src Ġ+ Ġ"@ 5 1 2 w _ 3 8 4 h _ 1 e . webp " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . ico Url Ġ= Ġdata [ position ]. user . head _ url Ġ+ Ġ"@ 3 2 w _ 3 2 h . webp " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . display Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data [ position ]. item . already _ v oted Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . vote I co . setImage Resource ( R . drawable . ic _ no _ v oted ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . vote I co . setImage Resource ( R . drawable . ic _ already _ v oted ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title . text Ġ= Ġdata [ position ]. item . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data [ position ]. item . pictures . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . count . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . count . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . count . text Ġ= Ġdata [ position ]. item . pictures . size . toString () Ġ+ Ġ" p " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . vote I co . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Paint F . instance . csrf Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġ" ä½ł è¿ĺ æ²¡æľī çĻ»å½ķ ï¼ģ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtype Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data [ position ]. item . already _ v oted Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data [ position ]. item . already _ v oted Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . vote Result . observe ( mContext Ġas ĠLifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĤ¹ èµ ŀ æĮīéĴ® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . data . type Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata [ position ]. item . already _ v oted Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . vote I co . setImage Resource ( R . drawable . ic _ already _ v oted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . code Ġ== Ġ 1 1 0 0 2 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( mContext , Ġit . message , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . data . type Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata [ position ]. item . already _ v oted Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . vote I co . setImage Resource ( R . drawable . ic _ no _ v oted ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġä¸į çĲĨè§£ ï¼ģï¼ģ ï¼ģ Ġpost è¯·æ±Ĥ åıĸæ¶Ī çĤ¹ èµ ŀ æĹ¶ ï¼Į ä¼ļ è¿ĶåĽŀ ä¸¤ æ¬¡ ç»ĵæŀľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠéĢļè¿ĩ å¯¹ æ¯Ķ åıĳçİ° ï¼ģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġb ç«Ļ å¯¹ å·²ç»ı çĤ¹ è¿ĩ èµ ŀ çļĦ -> åħĪ è¿ĶåĽŀ æĵįä½ľ ä¹ĭåīį çļĦ çĬ¶æĢģ -> åĨį è¿Ľè¡Į æĵįä½ľ ä¹ĭåĲİ çļĦ çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ è¿ĻéĩĮ è¿Ľè¡Į åĪ¤æĸŃ ï¼Į åıªæľī å¾ĹåĪ° æŃ£ç¡® çļĦ ç»ĵæŀľ åĲİ æīį ç§»éĻ¤ è§Ĥ å¯Ł èĢħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . data . type Ġ== Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . vote Result . remove Observer s ( mContext Ġas ĠLifecycle Owner ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . do Net Vote ( data [ position ]. item . doc _ id , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image . setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item OnClickListener Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem OnClickListener !!. on Item Click ( null , Ġv , Ġposition , Ġposition . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . ico . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Activity . start User Activity ( mContext , Ġdata [ position ]. user . uid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠBottom ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . textView . text Ġ= Ġstatus ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ" æŃ£åľ¨ åĬłè½½ ...") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . progress Bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . progress Bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata . size Ġ+ Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// åĪ¤æĸŃ å½ĵåīį item æĺ¯åĲ¦ æĺ¯ Footer View ĊĠĠĠ Ġfun Ġis Bottom View ( position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition Ġ>= Ġdata . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . size Ġ-> ĠITEM _ TYPE . ITEM _ TYPE _ LOAD . ordinal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠITEM _ TYPE . ITEM _ TYPE _ DATA . ordinal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠITEM _ TYPE Ġ{ ĊĠĠĠĠĠĠĠ ĠITEM _ TYPE _ DATA , ĊĠĠĠĠĠĠĠ ĠITEM _ TYPE _ LOAD , ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġclass ĠItem V Holder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ ico Url : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠimageUrl : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġ ico : ĠImageView Ġ= ĠitemView . findViewById ( R . id . imageView 2 ) ĊĠĠĠĠĠĠĠ Ġvar Ġimage : ĠImageView Ġ= ĠitemView . findViewById ( R . id . imageView ) ĊĠĠĠĠĠĠĠ Ġvar Ġtitle : ĠTextView Ġ= ĠitemView . findViewById ( R . id . textView ) ĊĠĠĠĠĠĠĠ Ġvar Ġcount : ĠTextView Ġ= ĠitemView . findViewById ( R . id . textView 2 ) ĊĠĠĠĠĠĠĠ Ġvar Ġvote I co : ĠImageView Ġ= ĠitemView . findViewById ( R . id . vote _ ico ) ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Object Animator Binding ") ĊĠĠĠĠĠĠĠ Ġfun Ġal p View ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠObject Animator . of Float ( v , Ġ" alpha ", Ġ 0 f , Ġ 0 . 2 5 f , Ġ 0 . 7 5 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 7 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanim ator . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdisplay Image () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ). as Bitmap (). load ( imageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( object Ġ: ĠCustom Target < Bitmap >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Cle ared ( placeholder : ĠDrawable ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( error Drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Load Failed ( error Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( resource : ĠBitmap , Ġtransition : ĠTransition < in ĠBitmap > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . setImage Bitmap ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġal p View ( image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠPalette . from ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . generate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// äº ® ãĢģ æŁ Ķ åĴĮ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlight Mut ed Color : ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit !!. get Light Mut ed Color ( Theme Util . getColor Accent ( item View . context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æļ Ĺ ãĢģ é² ľ èī ³ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdark V ibr ant Color : ĠInt Ġ= Ġit . get Dark V ibr ant Color ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ico . set BackgroundColor ( light Mut ed Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . set BackgroundColor ( light Mut ed Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . setTextColor ( dark V ibr ant Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvote I co . set BackgroundColor ( light Mut ed Color ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ico Url Ġ= Ġ ico Url . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ). load ( it ). placeholder ( R . drawable . nof ace ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( G lide Circle With Border ( 2 , ĠTheme Util . getColor Accent ( image . context ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( ico ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Move ( source : ĠRecyclerView . ViewHolder ?, Ġtarget : ĠRecyclerView . ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// æĭ ĸ åĬ¨ çļĦ Ġitem ĠçļĦ ä¸ĭ æłĩ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Position : ĠInt Ġ= Ġsource !!. adapter Position ĊĠĠĠĠĠĠĠ Ġ// çĽ®æłĩ Ġitem ĠçļĦ ä¸ĭ æłĩ ï¼Į çĽ®æłĩ Ġitem Ġ å°±æĺ¯ å½ĵ æĭ ĸ æĽ ³ è¿ĩç¨ĭä¸Ń ï¼Į ä¸į æĸŃ åĴĮ æĭ ĸ åĬ¨ çļĦ Ġitem Ġ åģļ ä½įç½® äº¤ æį¢ çļĦ æĿ¡ çĽ® ãĢĤ ĊĠĠĠĠĠĠĠ Ġval Ġto Position Ġ= Ġtarget !!. adapter Position ĊĠĠĠĠĠĠĠ Ġ// äº¤ æį¢ æķ°æį® Ċ // ĠĠĠĠĠĠĠ ĠCollections . swap ( data , Ġfrom Position , Ġto Position ) ĊĠĠĠĠĠĠĠ Ġ// äº¤ æį¢ ä½įç½® index ĊĠĠĠĠĠĠĠ Ġnotify Item Moved ( from Position , Ġto Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Sw ip ed ( source : ĠRecyclerView . ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ItemSelected Changed ( source : ĠRecyclerView . ViewHolder ?, Ġaction State : ĠInt ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Clear ( source : ĠRecyclerView . ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ç»Ļ å·²ç»ı å®ĮæĪĲ æĭ ĸ æĽ ³ çļĦ Ġitem Ġæ ģ ¢å¤į å¼Ģå§ĭ çļĦ èĥĮæĻ¯ ãĢĤ ĊĠĠĠĠĠĠĠ Ġ// è¿ĻéĩĮ æĪĳä»¬ è®¾ç½® çļĦ é¢ľèī² å°½ éĩı åĴĮ ä½ł Ġitem Ġåľ¨ Ġxml Ġä¸Ń è®¾ç½® çļĦ é¢ľèī² ä¿ĿæĮģ ä¸Ģèĩ´ ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ