package Ġes . ed uf dez so y . manga 2 kind le . ui . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . System Clock Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġes . ed uf dez so y . manga 2 kind le . R Ċ import Ġes . ed uf dez so y . manga 2 kind le . data . model . view Object . New Chapter Ċ import Ġes . ed uf dez so y . manga 2 kind le . data . model . view Object . New Chapter Diff Callback Ċ import Ġkotlinx . android . synt hetic . main . item _ chapter . view .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ class ĠNew Chapter Adapter ( var Ġchapter s : ĠArrayList < New Chapter >) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < New Chapter Adapter . ViewHolder >(), ĠCor outine Scope Ġ{ ĊĊĠĠĠ Ġinterface ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Clicked ( chapter : ĠNew Chapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Long Clicked ( chapter : ĠNew Chapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġprivate Ġvar ĠonClick Listener : ĠOn ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġon Long ClickListener : ĠOn Long ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġjob Ġ= ĠJob () ĊĠĠĠ Ġoverride Ġval Ġcoroutine Context : ĠCor outine Context ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDispatch ers . Main Ġ+ Ġjob ĊĊĠĠĠ Ġprivate Ġvar Ġlast Click Time : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġconstructor ( chapter s : ĠList < New Chapter >) Ġ: Ġthis ( chapter s Ġas ĠArrayList < New Chapter >) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġparent . context ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ chapter , Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= Ġchapter s [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter Utils . set BackgroundColor ( holder , Ġposition , Ġcontext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . lang . text Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . manga . text Ġ= Ġchapter . manga _ title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . chapter . text Ġ= Ġchapter . chapter ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chapter . author . isNotBlank ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . author . text Ġ= Ġchapter . author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . author . text Ġ= ĠAdapter Utils . rand Author Face ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( on ClickListener Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthese Ġthree Ġlines Ġprevent Ġmis - click ing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( System Clock . elapsed Realtime () Ġ- Ġlast Click Time Ġ< Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Click Time Ġ= ĠSystem Clock . elapsed Realtime () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Listener !!. on Item Clicked ( chapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( on Long ClickListener Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . setOn Long ClickListener ( View . On Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Long ClickListener !!. on Item Long Clicked ( chapter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Long ClickListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchapter s . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( chapter s : ĠList < New Chapter >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Callback Ġ= ĠNew Chapter Diff Callback ( this . chapter s , Ġchapter s ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Res Ġ= ĠDiff Util . calculate Diff ( diff Callback ) ĊĠĠĠĠĠĠĠ Ġthis . chapter s . clear () ĊĠĠĠĠĠĠĠ Ġthis . chapter s . addAll ( chapter s ) ĊĠĠĠĠĠĠĠ Ġdiff Res . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnClickListener ( listener : ĠOn ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ ĠonClick Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Long ClickListener ( listener : ĠOn Long ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Long ClickListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm anga Ġ= Ġview . tv Title ĊĠĠĠĠĠĠĠ Ġval Ġchapter Ġ= Ġview . tv Chapter ĊĠĠĠĠĠĠĠ Ġval Ġauthor Ġ= Ġview . tv Author ĊĠĠĠĠĠĠĠ Ġval Ġlang Ġ= Ġview . tv Lang ĊĊĠĠĠĠĠĠĠ Ġfun Ġset OnClickListener ( on ClickListener : ĠView . OnClickListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( on ClickListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset On Long ClickListener ( on Long ClickListener : ĠView . On Long ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOn Long ClickListener ( on Long ClickListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }