package Ġcom . app ham . pix bad ger . view Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . app ham . pix bad ger . R Ċ import Ġcom . app ham . pix bad ger . model . db . Img Entity Ċ import Ġcom . app ham . pix bad ger . util . Utils Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġjava . io . File Ċ Ċ class ĠImg Adapter Ġ: ĠRecyclerView . Adapter < Img Holder >() Ġ{ ĊĊĠĠĠ Ġvar Ġimages : ĠMutable List < Img Entity > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġvar Ġitem Layout : ĠInt Ġ= ĠR . layout . item _ list _ img ĊĊĠĠĠ Ġprivate Ġval Ġscreen Width Px Ġby Ġlazy Ġ{ ĠResources . getSystem (). display Metrics . width Pixels Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscreen Height Px Ġby Ġlazy Ġ{ ĠResources . getSystem (). display Metrics . height Pixels Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠImg Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImg Holder ( LayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( item Layout , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġimages . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠImg Holder , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġimages . take If Ġ{ Ġposition Ġ< Ġit . size Ġ} ?. get ( position )?. let Ġ{ Ġimg Entity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . txt Label . text Ġ= Ġif Ġ( item Layout Ġ== ĠR . layout . item _ list _ img ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Entity . toString ( holder . txt Label . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg Entity . labels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( img Entity . path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġremove Ġitem Ġif Ġfile Ġdoesn 't Ġexist Ġanymore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimages . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . img Item . post Ġ{ Ġnotify Item Removed ( position ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resize ( Math . min ( screen Width Px Ġ/ Ġ 2 , Ġscreen Height Px Ġ/ Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath . min ( screen Width Px Ġ/ Ġ 4 , Ġscreen Height Px Ġ/ Ġ 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. only Scale Down () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Inside () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ launcher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . img Item ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġadd Ġclick Ġlistener Ġto Ġopen Ġimage Ġafter Ġclick ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( holder . img Item . parent Ġas ĠViewGroup ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . open File Activity ( holder . txt Label . context , Ġfile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }