package Ġcn . chen ey . x picker . adapter Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcn . chen ey . x picker . R Ċ import Ġcn . chen ey . x picker . X Picker Ċ import Ġcn . chen ey . x picker . X Picker Constant Ċ import Ġcn . chen ey . x picker . entity . Media Entity Ċ import Ġjava . io . File Ċ Ċ type alias ĠPreview Select ClickListener Ġ= Ġ( media : ĠMedia Entity ) Ġ-> ĠUnit Ċ Ċ class ĠPreview Select Adapter Ġ: ĠRecyclerView . Adapter < Preview Select Adapter . Media Select Holder >() Ġ{ ĊĊĠĠĠ Ġvar Ġitem ClickListener : ĠPreview Select ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġselect List : ĠArrayList < Media Entity >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcurrent Preview Id : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMedia Select Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . x picker _ item _ pre iv ew _ select , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠMedia Select Holder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( null Ġ== Ġselect List ) Ġ 0 Ġelse Ġselect List !!. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMedia Select Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠX Picker . image Load Listener ?. invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . from File ( File ( select List ! ![ position ]. local Path !! )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . photo Iv , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect List ! ![ position ]. mine Type ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( select List ! ![ position ]. local Path Ġ== Ġcurrent Preview Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . photo Bg . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . photo Bg . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( select List ! ![ position ]. fileType Ġ== ĠX Picker Constant . FILE _ TYPE _ VIDEO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . video Iv . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . video Iv . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener ?. invoke ( select List ! ![ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠMedia Select Holder ( var Ġcontent View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( content View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġphoto Iv : ĠImageView Ġ= Ġcontent View . findViewById ( R . id . preview _ item _ select _ iv ) ĊĠĠĠĠĠĠĠ Ġvar Ġphoto Bg : ĠImageView Ġ= Ġcontent View . findViewById ( R . id . preview _ item _ select _ bg ) ĊĠĠĠĠĠĠĠ Ġvar Ġvideo Iv : ĠImageView Ġ= Ġcontent View . findViewById ( R . id . preview _ item _ video _ iv ) ĊĠĠĠ Ġ} Ċ Ċ }