package Ġme . th anel . quick image . upload history Ċ Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . provider . Base Columns Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġme . th anel . quick image . R Ċ import Ġme . th anel . quick image . db . upload history . Upload History Table Ċ import Ġme . th anel . quick image . upload history . model . Upload History Item Ċ import Ġjava . util .* Ċ Ċ class ĠUpload History Adapter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcallback : ĠUpload History Adapter . Callback Ċ ) Ġ: ĠRecyclerView . Adapter < Upload History Adapter . ViewHolder >(), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcursor : ĠCursor ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlink Column Index Ġ= Ġ 0 ĊĊĠĠĠ Ġinterface ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Click ( item : ĠUpload History Item ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Share Item ( item : ĠUpload History Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Stable Ids ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġswap Cursor ( new Cursor : ĠCursor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new Cursor Ġ== Ġcursor ) Ġreturn ĊĠĠĠĠĠĠĠ Ġcursor ?. close () ĊĠĠĠĠĠĠĠ Ġcursor Ġ= Ġnew Cursor ĊĊĠĠĠĠĠĠĠ Ġcursor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink Column Index Ġ= Ġit . getColumnIndex OrThrow ( Upload History Table . COLUMN _ LINK ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( LayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . row _ history , Ġparent , Ġfalse )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Card . setOnClickListener ( this @ Upload History Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Button . setOnClickListener ( this @ Upload History Adapter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcursor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . moveTo Position ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠUpload History Item . from Cursor ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprevious Item Ġ= Ġif Ġ( it . position Ġ> Ġ 0 Ġ&& Ġit . moveTo Previous ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpload History Item . from Cursor ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( item , Ġprevious Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( holder : ĠViewHolder ) Ġ= Ġholder . unbind () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġcursor ?. count Ġ?: Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġcursor ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . moveTo Position ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit . getLong ( it . getColumnIndex ( Base Columns ._ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getItem Id ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . history Card Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Item Click ( v . tag Ġas ĠUpload History Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . share Button Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Share Item ( v . tag Ġas ĠUpload History Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlink View Ġby Ġlazy Ġ{ ĠitemView . findViewById ( R . id . link ) Ġas ĠTextView Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠimageView Ġby Ġlazy Ġ{ ĠitemView . findViewById ( R . id . image ) Ġas ĠImageView Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdate Header Ġby Ġlazy Ġ{ ĠitemView . findViewById ( R . id . date Header ) Ġas ĠTextView Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġhistory Card : ĠView Ġby Ġlazy Ġ{ ĠitemView . findViewById ( R . id . history Card ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġshare Button : ĠView Ġby Ġlazy Ġ{ ĠitemView . findViewById ( R . id . share Button ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠUpload History Item , Ġprevious Item : ĠUpload History Item ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Card . tag Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Button . tag Ġ= Ġitem ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink View . text Ġ= Ġitem . link ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Header . visibility Ġ= Ġif Ġ(! item . was Uploaded At Similar Time ( previous Item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Header . text Ġ= Ġitem . timestamp String ( Date (). time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item . link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ image _ black ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ alert _ black ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġun bind () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel Request ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }