package Ġcom . si ju . ac explorer . storage . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . text . format . Formatter Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . si ju . ac explorer . R Ċ import Ġcom . si ju . ac explorer . common . View Mode Ċ import Ġcom . si ju . ac explorer . common . types . FileInfo Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . get Category Name Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Any Camera Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Any Large Files Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Date In Ms Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Generic Images Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Generic Music Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Generic Videos Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Music Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . is Recent Category Ċ import Ġcom . si ju . ac explorer . main . model . groups . Category Helper . should Hide Gallery Thumb Ċ import Ġcom . si ju . ac explorer . main . model . helper . FileUtils Ċ import Ġcom . si ju . ac explorer . ui . peek and pop . Peek Pop View Ċ import Ġcom . si ju . ac explorer . utils . Thumbnail Utils . display Thumb Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList ĊĊ Ċ const Ġval ĠINVALID _ POS Ġ= Ġ- 1 Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" FileList Adapter " Ċ class ĠFile ListAdapter Ġinternal Ġconstructor ( var Ġview Mode : ĠView Mode , Ġprivate Ġval Ġclick Listener : Ġ( Pair < FileInfo , ĠInt >) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġlong ClickListener : Ġ( FileInfo , ĠInt , ĠView ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpeek Pop View : ĠP eek Pop View ?) Ġ: ĊĠĠĠĠĠĠĠ ĠList Adapter < FileInfo , ĠFile ListAdapter . ViewHolder >( FileInfo Diff Callback ()), ĠBase ListAdapter Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdrag ged Position Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġmulti Selection Helper : ĠMulti Selection Helper ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmain Category : ĠCategory ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfilter edList : ĠArrayList < FileInfo > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġfile List Ġ= Ġarray ListOf < FileInfo >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpeek Pop View ?. init Peek Pop Listener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder . from ( parent , Ġview Mode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Info Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠ Ġfile Info ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . bind ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Category , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Selection Helper ?. isSelected ( position ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrag ged Position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong ClickListener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpeek Pop View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Data Loaded ( data : Ġjava . util . ArrayList < FileInfo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . file List Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġfilter edList . clear () ĊĠĠĠĠĠĠĠ Ġfilter edList . addAll ( file List ) ĊĠĠĠĠĠĠĠ Ġsubmit List ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Multi Selection Helper ( multi Selection Helper : ĠMulti Selection Helper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . multi Selection Helper Ġ= Ġmulti Selection Helper ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Multi Selection Helper () Ġ= Ġmulti Selection Helper ĊĊĠĠĠ Ġoverride Ġfun Ġset Drag ged Position ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdrag ged Position Ġ= Ġpos ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclear Drag Position () Ġ{ ĊĠĠĠĠĠĠĠ Ġdrag ged Position Ġ= Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Main Category ( category : ĠCategory ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . main Category Ġ= Ġcategory ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfilter ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Original List ( filter edList ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd SearchResults ( text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Original List ( file Data : ĠArrayList < FileInfo >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . file List . clear () ĊĠĠĠĠĠĠĠ Ġfile List . addAll ( file Data ) ĊĠĠĠĠĠĠĠ Ġsubmit List ( file List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd SearchResults ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġquery ĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠArrayList < FileInfo > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext . lowercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġfilter edList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġitem . fileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġitem . filePath ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfileName ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fileName . lowercase ( Locale . getDefault ()). contains ( text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result . contains ( item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( packageName . lowercase ( Locale . getDefault ()). contains ( text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfile List . clear () ĊĠĠĠĠĠĠĠ Ġfile List . addAll ( result ) ĊĠĠĠĠĠĠĠ Ġsubmit List ( file List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder Ġprivate Ġconstructor ( item View : ĠView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġview Mode : ĠView Mode ĊĠĠĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtext FileName : ĠTextView Ġ= ĠitemView . findViewById ( R . id . text Folder Name ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtext No Of File Or Size : ĠTextView Ġ= ĠitemView . findViewById ( R . id . text Second Line ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Icon : ĠImageView Ġ= ĠitemView . findViewById ( R . id . image Icon ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Thumb Icon : ĠImageView Ġ= ĠitemView . findViewById ( R . id . image Thumb Icon ) ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġdate Text : ĠTextView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Selection : ĠImageView Ġ= ĠitemView . findViewById ( R . id . image Selection ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġimage Video Thumb Ġ: ĠImageView Ġ= ĠitemView . findViewById ( R . id . image Video Thumb ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Mode Ġ== ĠView Mode . LIST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Text Ġ= ĠitemView . findViewById ( R . id . text Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem : ĠFileInfo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Category : ĠCategory ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected : ĠBoolean ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrag ged Pos : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener : Ġ( Pair < FileInfo , ĠInt >) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlong ClickListener : Ġ( FileInfo , ĠInt , ĠView ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeek Pop View : ĠP eek Pop View ? ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" FileList Adapter ", Ġ" bind :${ item . fileName }, Ġpos :$ pos ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Selection ( selected , Ġpos , Ġdrag ged Pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind View By Category ( item View . context , Ġitem , Ġmain Category , Ġpeek Pop View , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġabsolute Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind : Ġclick :$ position ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġcount Ġ&& Ġposition Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener ( Pair ( item , Ġposition )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġabsolute Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġcount Ġ&& Ġposition Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong ClickListener ( item , Ġposition , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġabsolute Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġcount Ġ&& Ġposition Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong ClickListener ( item , Ġposition , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġon Selection ( selected : ĠBoolean ?, Ġposition : ĠInt , Ġdrag ged Pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠContext Compat . getColor ( item View . context , ĠR . color . action Mode ItemSelected ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ== Ġtrue ĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Selection . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Selection . isSelected Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ== Ġdrag ged Pos Ġ-> ĠitemView . set BackgroundColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Selection . isSelected Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Selection . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind View By Category ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info : ĠFileInfo , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Category : ĠCategory ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpeek Pop View : ĠP eek Pop View ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpos : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= Ġfile Info . category Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind View By Category :$ category , Ġfile :${ fileInfo . filePath }, Ġdate :${ fileInfo . date }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ== ĠCategory . P ICK ER ĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind Picker View ( fileInfo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Generic Music ( category ) ĠĠĠĠĠĠĠĠĠ Ġ-> Ġbind Generic Music ( context , Ġfile Info , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Music Category ( category ) ĠĠĠĠĠĠĠĠ Ġ-> Ġbind Music Category ( context , Ġfile Info , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Generic Images Category ( category ) Ġ|| Ġis Generic Videos Category ( category ) Ġ-> Ġbind Generic Images V ids Category ( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Recent Category ( category ) ĠĠĠĠĠĠĠ Ġ-> Ġbind Generic Recent ( context , Ġfile Info , Ġcategory , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Any Large Files Category ( category ) Ġ-> Ġbind Large Files Generic ( context , Ġfile Info , Ġcategory , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Any Camera Category ( category ) ĠĠĠĠ Ġ-> Ġbind Camera Generic ( context , Ġfile Info , Ġcategory , Ġpos , Ġpeek Pop View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind Files Category ( fileInfo , Ġcategory , Ġmain Category , Ġcontext , Ġpeek Pop View , Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Files Category ( fileInfo : ĠFileInfo , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory : ĠCategory ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Category : ĠCategory ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpeek Pop View : ĠP eek Pop View ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind Files Category :$ category , Ġfile :${ fileInfo . filePath }, Ġdate :${ fileInfo . date }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġfile Info . fileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( main Category Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory ?. let Ġ{ Ġbind Date ( it , Ġfile Info ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind Date ( main Category , Ġfile Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Directory Ġ= Ġfile Info . isDirectory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Num Or Size : ĠString Ġ= Ġif Ġ( isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Directory File Count ( context , Ġfile Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFormatter . format FileSize ( context , Ġfile Info . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= ĠfileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfile Num Or Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Gallery View Visibility ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Video Thumb Visibility ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory ?. let Ġ{ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Thumb ( context , Ġfile Info , Ġcategory , Ġget Thumb Icon ( category ), Ġimage Thumb Icon ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġhide Date View () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Text ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġshow Date View () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Text ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġadd Peek Pop ( peek Pop View : ĠP eek Pop View ?, Ġicon : ĠImageView , Ġpos Ġ: ĠInt , Ġcategory : ĠCategory ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory ?. let Ġ{ Ġpeek Pop View ?. add Click View ( icon , Ġpos , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Video Thumb Visibility ( category : ĠCategory ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" set Video Thumb Visibility :$ category ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Category Helper . is Any Video Category ( category )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Video Thumb . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Video Thumb . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Thumb Icon ( category : ĠCategory ?) Ġ: ĠImageView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( view Mode Ġ== ĠView Mode . G ALL ERY Ġ&& Ġ( category Ġ!= ĠCategory . FILES Ġ&& Ġcategory Ġ!= ĠCategory . APPS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . findViewById ( R . id . image Thumb ) Ġas ĠImageView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Date ( category : ĠCategory , Ġfile Info : ĠFileInfo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ms Ġ= Ġif Ġ( is Date In Ms ( category )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info . date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info . date Ġ* Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text Ġ= ĠFileUtils . convert Date ( date Ms ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Date View () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Directory File Count ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info : ĠFileInfo ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( fileInfo . is Root Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getString ( R . string . directory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġchild FileList Size Ġ= Ġfile Info . size . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĠĠĠ Ġ-> Ġcontext . resources . getString ( R . string . empty ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĠĠ Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcontext . resources . get Quantity String ( R . plurals ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild FileList Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild FileList Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Picker View ( fileInfo : ĠFileInfo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setImage Resource ( fileInfo . icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġfile Info . fileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfile Info . filePath ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Generic Music ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind Generic Music : category :${ fileInfo . category }, Ġfile :${ fileInfo . count }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġfile Info . count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġget Category Name ( context , Ġfile Info . subcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setImage Resource ( R . drawable . ic _ folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Gallery View Visibility ( fileInfo . category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġfile Info . category ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Music Category ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind Music Category : category :${ fileInfo . category }, Ġfile :${ fileInfo . filePath }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġfile Info . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Ġ= Ġfile Info . num Tracks . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num Ġ!= ĠINVALID _ POS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum , Ġnum ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Thumb ( context , Ġfile Info , Ġfile Info . category , Ġimage Icon , Ġimage Thumb Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġfile Info . category ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Generic Images V ids Category ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcategory Ġ= Ġfile Info . category ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Gallery View Visibility ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġfile Info . fileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnum Ġ= Ġfile Info . num Tracks . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( num Ġ!= ĠINVALID _ POS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum , Ġnum ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Thumb ( context , Ġfile Info , Ġcategory , Ġget Thumb Icon ( category ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Thumb Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġcategory ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġtoggle Gallery View Visibility ( category : ĠCategory ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" toggle Gallery View Visibility :$ category ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Mode Ġ== ĠView Mode . G ALL ERY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Gallery Thumb : ĠImageView Ġ= ĠitemView . findViewById ( R . id . image Thumb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Hide Gallery Thumb ( category )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Gallery Thumb . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( category Ġ== ĠCategory . GENERIC _ I MAGES Ġ|| Ġcategory Ġ== ĠCategory . GENERIC _ VID EOS Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory Helper . is Gallery Music Category ( category ) Ġ|| Ġcategory Ġ== ĠCategory . DOCS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Gallery Thumb . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . set BackgroundColor ( Context Compat . getColor ( text FileName . context , ĠR . color . gallery _ item _ text _ background )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Gallery Thumb . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Generic Recent ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġcategory : ĠCategory ?, Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġfile Info . count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġget Category Name ( context , Ġfile Info . subcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setImage Resource ( R . drawable . ic _ folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġcategory ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Large Files Generic ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġcategory : ĠCategory ?, Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġfile Info . count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġget Category Name ( context , Ġfile Info . subcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setImage Resource ( R . drawable . ic _ folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġcategory ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbind Camera Generic ( context : ĠContext , Ġfile Info : ĠFileInfo , Ġcategory : ĠCategory ?, Ġpos : ĠInt , Ġpeek Pop View : ĠP eek Pop View ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" bind Camera Generic : category :$ category , Ġfile :${ fileInfo . filePath }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġfile Info . count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġcontext . resources . get Quantity String ( R . plurals . number _ of _ files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext FileName . text Ġ= Ġget Category Name ( context , Ġfile Info . subcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext No Of File Or Size . text Ġ= Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . setImage Resource ( R . drawable . ic _ folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Gallery View Visibility ( category ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Date View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Peek Pop ( peek Pop View , Ġimage Icon , Ġpos , Ġcategory ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Mode : ĠView Mode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Id Ġ= Ġwhen Ġ( view Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . LIST ĠĠĠ Ġ-> ĠR . layout . file _ list _ item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . GRID ĠĠĠ Ġ-> ĠR . layout . file _ grid _ item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . G ALL ERY Ġ-> ĠR . layout . file _ gallery _ item ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( layout Id , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġview Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠFileInfo Diff Callback Ġ: ĠDiff Util . Item Callback < FileInfo >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠFileInfo , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠFileInfo ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old Item . category Ġ== Ġnew Item . category ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" category :${ old Item . category }, Ġpath :${ old Item . filePath }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( old Item . category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . GENERIC _ I MAGES , ĠCategory . GENERIC _ VID EOS ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġold Item . bucket Id Ġ== Ġnew Item . bucket Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . REC ENT _ I MAGES , ĠCategory . REC ENT _ VID EOS , ĠCategory . REC ENT _ AUDIO , ĠCategory . REC ENT _ DOCS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCategory . REC ENT _ APPS Ġ-> Ġold Item . category Ġ== Ġnew Item . category ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . filePath Ġ== Ġnew Item . filePath ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . category Ġ== Ġnew Item . category ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠFileInfo , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Item : ĠFileInfo ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }