package Ġreactive circ us . release probe . browse collections Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroidx . core . graphics . to Color Int Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject Ċ import Ġreactive circ us . blueprint . ui . extension . is Animation On Ċ import Ġreactive circ us . blueprint . ui . extension . set Pre computed Text Future Ċ import Ġreactive circ us . release probe . browse collections . databinding . Item Artifact Collection Binding Ċ import Ġreactive circ us . release probe . core . util . Animation Configs Ċ import Ġreactive circ us . release probe . core . util . Item Clicked Callback Ċ import Ġreactive circ us . release probe . domain . artifact collection . model . Artifact Collection Ċ import Ġreactive circ us . release probe . core . R Ġas ĠResources R Ċ Ċ class ĠArtifact Collections Adapter ( ĊĠĠĠ Ġprivate Ġval Ġitem Clicked Callback : ĠItem Clicked Callback < Artifact Collection >, ĊĠĠĠ Ġprivate Ġval Ġanimate : ĠBoolean Ċ ) Ġ: ĠList Adapter < Artifact Collection , ĠArtifact Collection ViewHolder >( diff Callback ), ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġanimation Configs : ĠAnimation Configs Ġby Ġinject () ĊĊĠĠĠ Ġprivate Ġvar Ġlast Animated Position Ġ= Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠArtifact Collection ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠItem Artifact Collection Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠArtifact Collection ViewHolder ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠArtifact Collection ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġartifact Collection Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġholder . bind ( artifact Collection , Ġitem Clicked Callback ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( animate Ġ&& Ġholder . item View . context . is Animation On ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Ġ= ĠAnimation Utils . load Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResources R . anim . slide _ in _ and _ fade _ in ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimation . start Offset Ġ= Ġ( animation Configs . default ListItem Animation Start Offset Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . binding Adapter Position ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . start Animation ( animation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Animated Position Ġ= Ġholder . binding Adapter Position ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠArtifact Collection ViewHolder ( ĊĠĠĠ Ġprivate Ġval Ġbinding : ĠItem Artifact Collection Binding Ċ ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠ Ġartifact Collection : ĠArtifact Collection , ĊĠĠĠĠĠĠĠ Ġitem Clicked Callback : ĠItem Clicked Callback < Artifact Collection > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcard Color Ġ= Ġartifact Collection . theme Color . to Color Int () ĊĠĠĠĠĠĠĠ Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Card View . set Card BackgroundColor ( card Color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Collection Name TextView . set Pre computed Text Future ( artifact Collection . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Collection Description TextView . set Pre computed Text Future ( artifact Collection . description ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . setOnClickListener Ġ{ Ġitem Clicked Callback ( artifact Collection ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval Ġdiff Callback : ĠDiff Util . Item Callback < Artifact Collection > Ġ= ĊĠĠĠ Ġobject Ġ: ĠDiff Util . Item Callback < Artifact Collection >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠArtifact Collection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠArtifact Collection ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġold Item . name Ġ== Ġnew Item . name ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Item : ĠArtifact Collection , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠArtifact Collection ĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġold Item Ġ== Ġnew Item ĊĠĠĠ Ġ} Ċ