package Ġcom . leon . album Ċ Ċ import Ġandroid . text . format . DateFormat Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Diff Util . Item Callback Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . Request Manager Ċ import Ġcom . leon . album . core . Album Media Ċ import Ġcom . leon . album . databinding . ListItem Album Binding Ċ import Ġjava . util .* Ċ Ċ class ĠMedia Paged ListAdapter ( private Ġval Ġg lide : ĠRequest Manager ) Ġ: ĊĠĠĠ ĠP aging Data Adapter < Album Media , ĠMedia Paged ListAdapter . Item ViewHolder >( CALLBACK ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠItem ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠItem ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg lide , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠListItem Album Binding . inflate ( LayoutInflater . from ( parent . context ), Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠItem ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( position , ĠgetItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠItem ViewHolder ( ĊĠĠĠĠĠĠĠ Ġval Ġg lide : ĠRequest Manager , ĊĠĠĠĠĠĠĠ Ġval Ġbinding : ĠListItem Album Binding ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( position : ĠInt , Ġalbum Media : ĠAlbum Media ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Media ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg lide . load ( it . uri ). into ( binding . image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . name . text Ġ= Ġ( position Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . content . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type =${ album Media . mime Type }\ nw =${ album Media . width }\ nh =${ album Media . height }\ n size =${ album Media . size }\ n date =${ getDate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Media . date Added Ġ* Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) }\ nd ur =${ album Media . duration }" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Play . visibility Ġ= Ġif Ġ( album Media . mime Type . contains (" video ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Date ( date : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Format . format (" yyyy - MM - dd ĠHH : mm : ss ", ĠDate ( date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠCALL BACK Ġ= Ġobject Ġ: ĠItem Callback < Album Media >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠAlbum Media , Ġnew Item : ĠAlbum Media ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠAlbum Media , Ġnew Item : ĠAlbum Media ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ