package Ġco . flickr . client . app . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġco . flickr . client . R Ċ import Ġco . flickr . client . domain . model . F lickr Photo Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ Ċ class ĠPhoto Adapter Ġ: ĠFooter Loading Adapter < F lickr Photo >() Ġ{ ĊĊĠĠĠ Ġvar Ġlistener : ĠListener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġclear All () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠaddTo Bottom ( photos : ĠList < F lickr Photo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠstartPosition Ġ= Ġdata . size ĊĠĠĠĠĠĠĠ Ġdata . addAll ( photos ) ĊĠĠĠĠĠĠĠ Ġnotify Item Range Inserted ( start Position , Ġphotos . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( view Type Ġ== ĠVIEW _ ITEM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Holder ( parent . context , Ġparent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ViewHolder ( parent , Ġview Type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBase ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠPhoto Holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPhoto Holder ( context : ĠContext , Ġparent : ĠViewGroup ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase ViewHolder ( context , ĠR . layout . photo _ item , Ġparent ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġitem : ĠF lickr Photo ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġphoto View : ĠImageView Ġ= ĠitemView . findViewById ( R . id . photo ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġphoto Size Ġ= ĠitemView . context . resources . get Dimension Pixel Size ( R . dim en . image _ size ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġlistener ?. on ItemClickListener ( item ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠF lickr Photo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . item Ġ= Ġitem ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . override Of ( photo Size , Ġphoto Size )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . disk Cache Strategy Of ( Disk Cache Strategy . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . no Animation ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . no Transformation ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions . placeholder Of ( R . drawable . placeholder )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item . small Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( photo View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon View Re cyc led () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ). clear ( photo View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon ItemClickListener ( item : ĠF lickr Photo ) ĊĠĠĠ Ġ} Ċ Ċ }