package Ġspace . tar an . ark re touch . dialog Ċ Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Center Crop Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Rounded C orners Ċ import Ġcom . bump tech . glide . load . resource . drawable . Drawable Transition Options . with Cross Fade Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . qt alk . recyclerview fast sc roller . RecyclerView Fast Scroller Ċ import Ġcom . simple mobile tools . commons . R Ċ import Ġcom . simple mobile tools . commons . extensions .* Ċ import Ġcom . simple mobile tools . commons . helpers . getFile Placeholder Draw ables Ċ import Ġcom . simple mobile tools . commons . models . File Dir Item Ċ import Ġcom . simple mobile tools . commons . views . My RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . item _ file picker _ list . view .* Ċ import Ġspace . tar an . ark re touch . internal . Base Activity Ċ import Ġjava . util .* Ċ Ċ class ĠFile picker Items Adapter ( ĊĠĠĠ Ġactivity : ĠBase Activity , Ġval Ġfile Dir Items : ĠList < File Dir Item >, Ġre cyclerView : ĠMy RecyclerView , ĊĠĠĠ Ġitem Click : Ġ( Any ) Ġ-> ĠUnit Ċ ) Ġ: ĠMy RecyclerView Adapter ( activity , Ġre cyclerView , Ġitem Click ), ĊĠĠĠ ĠRecyclerView Fast Scroller . On Popup Text Update Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfile Drawable : ĠDrawable ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfolder Drawable : ĠDrawable ĊĠĠĠ Ġprivate Ġvar Ġfile Draw ables Ġ= ĠHashMap < String , ĠDrawable >() ĊĠĠĠ Ġprivate Ġval Ġhas OT G Connected Ġ= Ġactivity . has OT G Connected () ĊĠĠĠ Ġprivate Ġvar ĠfontSize Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġval Ġcorner Radius Ġ= Ġresources . get Dimension ( R . dim en . rounded _ corner _ radius _ small ). toInt () ĊĠĠĠ Ġprivate Ġval ĠdateFormat Ġ= Ġactivity . base Config . date Format ĊĠĠĠ Ġprivate Ġval Ġtime Format Ġ= Ġactivity . getTime Format () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Draw ables () ĊĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġactivity . getText Size () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Action Menu Id () Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġcreate ViewHolder ( R . layout . item _ file picker _ list , Ġparent ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Dir Item Ġ= Ġfile Dir Items [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind View ( file Dir Item , Ġtrue , Ġfalse ) Ġ{ ĠitemView , Ġadapter Position Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup View ( item View , Ġfile Dir Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbind ViewHolder ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġfile Dir Items . size ĊĊĠĠĠ Ġoverride Ġfun Ġprepare Action Mode ( menu : ĠMenu ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġaction Item Pressed ( id : ĠInt ) Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġget Selectable ItemCount () Ġ= Ġfile Dir Items . size ĊĊĠĠĠ Ġoverride Ġfun Ġget Is Item Selectable ( position : ĠInt ) Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Key Position ( key : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġfile Dir Items . indexOf First Ġ{ Ġit . path . hashCode () Ġ== Ġkey Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Selection Key ( position : ĠInt ) Ġ= Ġfile Dir Items [ position ]. path . hashCode () ĊĊĠĠĠ Ġoverride Ġfun Ġon Action Mode Created () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Action Mode Destroyed () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( holder : ĠViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led ( holder ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! activity . is Destroyed Ġ&& Ġ! activity . is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( activity ). clear ( holder . item View . list _ item _ icon !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View ( view : ĠView , Ġfile Dir Item : ĠFile Dir Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ name . text Ġ= Ġfile Dir Item . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ name . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ name . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , ĠfontSize ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ details . setTextColor ( textColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ details . setText Size ( Typed Value . COMPLEX _ UNIT _ PX , ĠfontSize ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Dir Item . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ icon . setImage Drawable ( folder Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ details . text Ġ= Ġget Children Cnt ( file Dir Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist _ item _ details . text Ġ= Ġfile Dir Item . size . format Size () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġfile Dir Item . path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaceholder Ġ= Ġfile Draw ables . getOrElse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Dir Item . name . substring After Last (". "). toLowerCase ( Locale . getDefault ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġfile Drawable Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. signature ( file Dir Item . getKey ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . RESOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( placeholder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitem To Load Ġ= Ġif Ġ( file Dir Item . name . endsWith (". apk ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Info Ġ= Ġcontext . package Manager . get Package Archive Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . GET _ ACTIV ITIES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Info Ġ= Ġpackage Info . application Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Info . source Dir Ġ= Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Info . public Source Dir Ġ= Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Info . load Icon ( context . package Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! activity . is Destroyed Ġ&& Ġ! activity . is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity . is Restricted SA FO n ly Root ( path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem To Load Ġ= Ġactivity . get Android SA F Uri ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( has OT G Connected Ġ&& Ġitem To Load Ġis ĠString Ġ&& Ġactivity . is Path On OT G ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem To Load ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem To Load Ġ= Ġitem To Load . get OT G Public Path ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item To Load . toString (). is Gif ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( activity ). as Bitmap (). load ( item To Load ). apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( list _ item _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item To Load ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( with Cross Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Center Crop (), ĠRo unded C orners ( corner Radius )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( list _ item _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Children Cnt ( item : ĠFile Dir Item ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchildren Ġ= Ġitem . children ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity . resources . get Quantity String ( R . plurals . items , Ġchildren , Ġchildren ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Draw ables () Ġ{ ĊĠĠĠĠĠĠĠ Ġfolder Drawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Colo red Drawable With Color ( R . drawable . ic _ folder _ vector , ĠtextColor ) ĊĠĠĠĠĠĠĠ Ġfolder Drawable . alpha Ġ= Ġ 1 8 0 ĊĠĠĠĠĠĠĠ Ġfile Drawable Ġ= Ġresources . get Drawable ( R . drawable . ic _ file _ generic ) ĊĠĠĠĠĠĠĠ Ġfile Draw ables Ġ= ĠgetFile Placeholder Draw ables ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChange ( position : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġfile Dir Items . get OrNull ( position )?. get Bubble Text ( activity , ĠdateFormat , Ġtime Format ) Ġ?: Ġ"" Ċ } Ċ