package Ġcom . github . se el ikes . android . mv vm . basic Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġcom . github . se el ikes . android . mv vm . basic . utils . run If Class Has Annotation Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġli ut iant ian Ġon Ġ 2 0 1 9 - 0 5 - 0 9 Ġ 0 9 : 2 4 Ġ æĺŁ æľŁ åĽĽ Ċ Ġ*/ Ċ abstract Ġclass ĠBasic Paged ListAdapter < T Ġ: ĠAny , ĠV H Ġ: ĠBasic ViewHolder < T , Ġ* >, ĠDC Ġ: ĠDiff Util . Item Callback < T >> Ġ@ Jvm Over loads Ġconstructor ( protected Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġdc : ĠDC , Ġprivate Ġval Ġitem ClickListener : Ġ(( T ?, ĠInt ) Ġ-> ĠUnit )? Ġ= Ġnull , Ġprotected Ġval Ġroutine Scope : ĠCor outine Scope ? Ġ= Ġnull ) Ġ: ĠP aged ListAdapter < T , ĠV H >( dc ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠV H , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . setData ( t ) ĊĠĠĠĠĠĠĠ Ġitem ClickListener ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . click Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke ( it , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon View Attached To Window ( holder : ĠV H ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Attached To Window ( holder ) ĊĠĠĠĠĠĠĠ Ġholder . run If Class Has Annotation ( Subscribe :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! EventBus . getDefault (). is Registered ( holder )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġon View Detached From Window ( holder : ĠV H ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Detached From Window ( holder ) ĊĠĠĠĠĠĠĠ Ġif Ġ( EventBus . getDefault (). is Registered ( holder )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( holder ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }