package Ġdev . hit ools . common . modules . image . show Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . github . chr is ban es . photo view . Photo View Ċ import Ġdev . hit ools . common . R Ċ import Ġdev . hit ools . common . extensions . inflate Ċ import Ġdev . hit ools . common . extensions . load Url Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy uh ai yang Ġon Ġ 2 0 1 9 - 1 2 - 2 5 . Ċ Ġ* Ċ Ġ*/ Ċ Ċ class ĠPreview Image Adapter < T >( val Ġdialog : ĠPreview Image Dialog <* >) Ġ: ĠRecyclerView . Adapter < ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ data : ĠMutable List < T > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġvar Ġdata : ĠMutable List < T >? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ data ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= ĠsetData ( value , Ġtrue ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠViewHolder ( parent . inflate ( R . layout . item _ preview _ image )) ĊĠĠĠĠĠĠĠ Ġholder . image . setOn Photo Tap Listener Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> Ġdialog . dismiss () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġdata Ġ= ĠgetItem ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDrawable Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image . setImage Drawable ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUri Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image . load Url ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image . load Url ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Data ĠType ĠError ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ data . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( position : ĠInt ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ data [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( data List : ĠMutable List < T > ?, Ġforce : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data Ġ= Ġdata List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( force ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ_ data . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ data . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Range Removed ( 0 , Ġsize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠViewHolder ( val Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠ Ġval Ġimage : ĠPhoto View Ġ= Ġview . findViewById ( R . id . image ) Ċ }