package Ġcom . simple mobile tools . gallery . pro . extensions Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . simple mobile tools . commons . activities . Base Simple Activity Ċ import Ġcom . simple mobile tools . commons . dialogs . Confirmation Dialog Ċ import Ġcom . simple mobile tools . commons . extensions .* Ċ import Ġcom . simple mobile tools . commons . helpers .* Ċ import Ġcom . simple mobile tools . commons . models . FAQ Item Ċ import Ġcom . simple mobile tools . commons . models . File Dir Item Ċ import Ġcom . simple mobile tools . gallery . pro . Build Config Ċ import Ġcom . simple mobile tools . gallery . pro . R Ċ import Ġcom . simple mobile tools . gallery . pro . activities . Simple Activity Ċ import Ġcom . simple mobile tools . gallery . pro . dialogs . Pick Directory Dialog Ċ import Ġcom . simple mobile tools . gallery . pro . helpers . NO MEDIA Ċ import Ġcom . simple mobile tools . gallery . pro . interfaces . Medium Dao Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ import Ġjava . util .* Ċ Ċ fun ĠActivity . share Path ( path : ĠString ) Ġ{ ĊĠĠĠ Ġshare Path Intent ( path , ĠBuild Config . APPLICATION _ ID ) Ċ } Ċ Ċ fun ĠActivity . share Paths ( paths : ĠArrayList < String >) Ġ{ ĊĠĠĠ Ġshare Paths Intent ( paths , ĠBuild Config . APPLICATION _ ID ) Ċ } Ċ Ċ fun ĠActivity . share Medium Path ( path : ĠString ) Ġ{ ĊĠĠĠ Ġshare Path ( path ) Ċ } Ċ Ċ fun ĠActivity . share Media Paths ( paths : ĠArrayList < String >) Ġ{ ĊĠĠĠ Ġshare Paths ( paths ) Ċ } Ċ Ċ fun ĠActivity . set As ( path : ĠString ) Ġ{ ĊĠĠĠ Ġset As Intent ( path , ĠBuild Config . APPLICATION _ ID ) Ċ } Ċ Ċ fun ĠActivity . open Path ( path : ĠString , Ġforce Chooser : ĠBoolean ) Ġ{ ĊĠĠĠ Ġopen Path Intent ( path , Ġforce Chooser , ĠBuild Config . APPLICATION _ ID ) Ċ } Ċ Ċ fun ĠActivity . open Editor ( path : ĠString ) Ġ{ ĊĠĠĠ Ġopen Editor Intent ( path , ĠBuild Config . APPLICATION _ ID ) Ċ } Ċ Ċ fun ĠActivity . launch Camera () Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Media Store . INT ENT _ ACTION _ ST ILL _ IMAGE _ CAMERA ) ĊĠĠĠ Ġif Ġ( intent . resolve Activity ( package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtoast ( R . string . no _ app _ found ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠSimple Activity . launch About () Ġ{ ĊĠĠĠ Ġval Ġlicenses Ġ= ĠLICENSE _ GL IDE Ġor ĠLICENSE _ C ROP PER Ġor ĠLICENSE _ RTL Ġor ĠLICENSE _ SUB SAMP LING Ġor ĠLICENSE _ PATTERN Ġor ĠLICENSE _ RE PRINT Ġor ĠLICENSE _ G IF _ DRAW ABLE Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLICENSE _ PH OTO VIEW Ġor ĠLICENSE _ PIC ASS O Ġor ĠLICENSE _ EX OP LAYER Ġor ĠLICENSE _ PAN OR AMA _ VIEW Ġor ĠLICENSE _ SAN SEL AN Ġor ĠLICENSE _ FILTER S ĊĊĠĠĠ Ġval Ġfa q Items Ġ= Ġarray ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 5 _ title _ commons , ĠR . string . faq _ 5 _ text _ commons ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 _ title , ĠR . string . faq _ 1 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 2 _ title , ĠR . string . faq _ 2 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 3 _ title , ĠR . string . faq _ 3 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 4 _ title , ĠR . string . faq _ 4 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 5 _ title , ĠR . string . faq _ 5 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 6 _ title , ĠR . string . faq _ 6 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 7 _ title , ĠR . string . faq _ 7 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 8 _ title , ĠR . string . faq _ 8 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 0 _ title , ĠR . string . faq _ 1 0 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 1 _ title , ĠR . string . faq _ 1 1 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 2 _ title , ĠR . string . faq _ 1 2 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 3 _ title , ĠR . string . faq _ 1 3 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 1 4 _ title , ĠR . string . faq _ 1 4 _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFAQ Item ( R . string . faq _ 2 _ title _ commons , ĠR . string . faq _ 2 _ text _ commons )) ĊĊĠĠĠ Ġstart About Activity ( R . string . app _ name , Ġlicenses , ĠBuild Config . VERSION _ NAME , Ġfa q Items , Ġtrue ) Ċ } Ċ Ċ fun ĠAppCompatActivity . show System UI ( toggle ActionBar Visibility : ĠBoolean ) Ġ{ ĊĠĠĠ Ġif Ġ( toggle ActionBar Visibility ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ċ } Ċ Ċ fun ĠAppCompatActivity . hide System UI ( toggle ActionBar Visibility : ĠBoolean ) Ġ{ ĊĠĠĠ Ġif Ġ( toggle ActionBar Visibility ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LOW _ PROFILE Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE Ċ } Ċ Ċ fun ĠBase Simple Activity . add No Media ( path : ĠString , Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= ĠFile ( path , ĠNO MEDIA ) ĊĠĠĠ Ġif Ġ( file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( needs St upid Write Permissions ( path )) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle SA F Dialog ( file . absolute Path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Document Ġ= Ġget Document File ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Document ?. exists () Ġ== Ġtrue Ġ&& Ġfile Document . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Document . create File ("", ĠNO MEDIA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . scan File Re cursively ( file ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . unknown _ error _ occ urred ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . createNew File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . scan File Re cursively ( file ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Toast ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . remove No Media ( path : ĠString , Ġcallback : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= ĠFile ( path , ĠNO MEDIA ) ĊĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke () ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtry Delete File Dir Item ( file . to File Dir Item ( application Context ), Ġfalse , Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . toggle File Visibility ( old Path : ĠString , Ġhide : ĠBoolean , Ġcallback : Ġ(( new Path : ĠString ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġval Ġpath Ġ= Ġold Path . getParent Path () ĊĠĠĠ Ġvar Ġfilename Ġ= Ġold Path . get Filename From Path () ĊĠĠĠ Ġif Ġ(( hide Ġ&& Ġfilename . startsWith ('. ')) Ġ|| Ġ(! hide Ġ&& Ġ! filename . startsWith ('. '))) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke ( old Path ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfilename Ġ= Ġif Ġ( hide ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ". ${ filename . trim Start ('.') }" ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġfilename . substring ( 1 , Ġfilename . length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnew Path Ġ= Ġ"$ path /$ filename " ĊĠĠĠ Ġrename File ( old Path , Ġnew Path ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke ( new Path ) ĊĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate DB Media Path ( old Path , Ġnew Path ) ĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . try Copy Move Files To ( file Dir Items : ĠArrayList < File Dir Item >, Ġis Copy Operation : ĠBoolean , Ġcallback : Ġ( destination Path : ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( file Dir Items . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoast ( R . string . unknown _ error _ occ urred ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsource Ġ= Ġfile Dir Items [ 0 ]. getParent Path () ĊĠĠĠ ĠPick Directory Dialog ( this , Ġsource ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcopy Move Files To ( file Dir Items , Ġsource . trim End ('/ '), Ġit , Ġis Copy Operation , Ġtrue , Ġconfig . should Show Hidden , Ġcallback ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . try Delete File Dir Item ( file Dir Item : ĠFile Dir Item , Ġallow Delete Folder : ĠBoolean Ġ= Ġfalse , Ġdelete From Database : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback : Ġ(( was Success : ĠBoolean ) Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġdelete File ( file Dir Item , Ġallow Delete Folder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( delete From Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgallery DB . Medium Dao (). delete Medium Path ( file Dir Item . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . move Paths In Re cycle Bin ( paths : ĠArrayList < String >, Ġmedium Dao : ĠMedium Dao Ġ= Ġgallery DB . Medium Dao (), Ġcallback : Ġ(( was Success : ĠBoolean ) Ġ-> ĠUnit )? ) Ġ{ ĊĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpaths Cnt Ġ= Ġpaths . size ĊĠĠĠĠĠĠĠ Ġpaths . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinternal File Ġ= ĠFile ( recycle Bin Path , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file . copy Re cursively ( internal File , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedium Dao . update Deleted ( it , ĠSystem . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaths Cnt -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke ( paths Cnt Ġ== Ġ 0 ) ĊĠĠĠ Ġ}. start () Ċ } Ċ Ċ fun ĠBase Simple Activity . restore Re cycle Bin Path ( path : ĠString , Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġrestore Re cycle Bin Paths ( array ListOf ( path ), Ġgallery DB . Medium Dao (), Ġcallback ) Ċ } Ċ Ċ fun ĠBase Simple Activity . restore Re cycle Bin Paths ( paths : ĠArrayList < String >, Ġmedium Dao : ĠMedium Dao Ġ= Ġgallery DB . Medium Dao (), Ġcallback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠ Ġpaths . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= Ġit . remove Prefix ( recycle Bin Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠinputStream : ĠInputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġout : ĠOutputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Ġ= ĠgetFile OutputStream Sync ( destination , Ġsource . get MimeType ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream Ġ= ĠgetFile InputStream Sync ( source ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream . copy To ( out !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( File ( source ). length () Ġ== ĠFile ( destination ). length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedium Dao . update Deleted ( destination , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Toast ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. start () Ċ } Ċ Ċ fun ĠBase Simple Activity . empty The Re cycle Bin ( callback : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠ Ġre cycle Bin . delete Re cursively () ĊĠĠĠĠĠĠĠ Ġgallery DB . Medium Dao (). clear Re cycle Bin () ĊĠĠĠĠĠĠĠ Ġgallery DB . Directory Dao (). delete Re cycle Bin () ĊĠĠĠĠĠĠĠ Ġtoast ( R . string . recycle _ bin _ empt ied ) ĊĠĠĠĠĠĠĠ Ġcallback ?. invoke () ĊĠĠĠ Ġ}. start () Ċ } Ċ Ċ fun ĠBase Simple Activity . empty And Disable The Re cycle Bin ( callback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠ Ġempty The Re cycle Bin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . use Re cycle Bin Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. start () Ċ } Ċ Ċ fun ĠBase Simple Activity . show Re cycle Bin Empty ing Dialog ( callback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ ĠConfirm ation Dialog ( this , Ġ"", ĠR . string . empty _ recycle _ bin _ confirmation , ĠR . string . yes , ĠR . string . no ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠBase Simple Activity . update Favorite Paths ( file Dir Items : ĠArrayList < File Dir Item >, Ġdestination : ĠString ) Ġ{ ĊĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠ Ġfile Dir Items . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Path Ġ= Ġ"$ destination /${ it . name }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate DB Media Path ( it . path , Ġnew Path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. start () Ċ } Ċ