package Ġcom . pcm . gallery . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . pcm . gallery . R Ċ import Ġcom . pcm . gallery . listener . On ItemClickListener Ċ import Ġcom . pcm . gallery . model . Model Album Ċ import Ġjava . io . File Ċ Ċ class ĠAdapter Media Album ( context : ĠContext ) Ġ: ĠRecyclerView . Adapter < Adapter Media Album . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar ĠmContext : ĠContext Ġ= Ġcontext ĊĠĠĠ Ġvar Ġm Album List Ġ= ĠArrayList < Model Album >() ĊĠĠĠ Ġprivate Ġvar Ġon ItemClickListener : ĠOn ItemClickListener < Model Album >? Ġ= Ġnull ĊĊĠĠĠ Ġpublic Ġfun ĠsetData ( album List : ĠArrayList < Model Album >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Album List Ġ= ĠArrayList ( album List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġadd All ( album List : ĠArrayList < Model Album >) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Album List . addAll ( ArrayList ( album List )) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġset On ItemClickListener ( listener : ĠOn ItemClickListener < Model Album > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġon ItemClickListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ layout _ album , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalbum Ġ= Ġm Album List . get ( position ) ĊĊĠĠĠĠĠĠĠ Ġholder . tv Album Name . text Ġ= Ġalbum . name ĊĠĠĠĠĠĠĠ Ġholder . tv Count . text Ġ= Ġalbum . count . toString () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( album . path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Option Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ place _ holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ place _ holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( holder . imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Uri . from File ( File ( album . path ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thumbnail ( 0 . 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( request Option ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . imageView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . imageView . setOnClickListener ( object Ġ: ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( on ItemClickListener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener !!. on Item Click ( v !! , Ġalbum , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Album List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠimageView Ġ= ĠitemView . findViewById < ImageView >( R . id . imageView ) ĊĠĠĠĠĠĠĠ Ġvar Ġtv Album Name Ġ= ĠitemView . findViewById < TextView >( R . id . tv Album Name ) ĊĠĠĠĠĠĠĠ Ġvar Ġtv Count Ġ= ĠitemView . findViewById < TextView >( R . id . tv Count ) ĊĠĠĠ Ġ} Ċ }