package Ġcom . simple mobile tools . gallery . dialogs Ċ Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . simple mobile tools . commons . extensions .* Ċ import Ġcom . simple mobile tools . gallery . R Ċ import Ġcom . simple mobile tools . gallery . activities . Simple Activity Ċ import Ġcom . simple mobile tools . gallery . extensions . config Ċ import Ġkotlinx . android . synt hetic . main . rename _ directory . view .* Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ class ĠRename Directory Dialog ( val Ġactivity : ĠSimple Activity , Ġval Ġdir : ĠFile , Ġval Ġcallback : Ġ( changed Paths : ĠArrayList < String >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( activity ). inflate ( R . layout . rename _ directory , Ġnull ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirectory _ name . setText ( dir . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirectory _ path . text Ġ= Ġ"${ activity . human ize Path ( dir . parent ) }/ " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . ok , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow !!. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ ALWAYS _ VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . setup Dialog Stuff ( view , Ġthis , ĠR . string . rename _ folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Button ( AlertDialog . BUTTON _ POSITIVE ). setOnClickListener ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Dir Name Ġ= Ġview . directory _ name . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Dir Name . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( R . string . rename _ folder _ empty ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Dir Name . is A Valid Filename ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( R . string . invalid _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdated Files Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated Files . add ( dir . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Dir Ġ= ĠFile ( dir . parent , Ġnew Dir Name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( R . string . rename _ folder _ exists ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context . needs St upid Write Permissions ( dir . absolute Path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity . is Showing Perm Dialog ( dir )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġcontext . getFile Document ( dir . absolute Path , Ġcontext . config . tree Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( document . can Write ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . rename To ( new Dir Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Success ( updated Files , Ġnew Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dir . rename To ( new Dir )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Success ( updated Files , Ġnew Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( R . string . rename _ folder _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Success ( updated Files : ĠArrayList < String >, Ġnew Dir : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . toast ( R . string . ren aming _ folder ) ĊĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġif Ġ( new Dir . isDirectory ) Ġnew Dir . list Files () Ġelse ĠarrayOf < File >() ĊĠĠĠĠĠĠĠ Ġfiles . map To ( updated Files ) Ġ{ Ġit . absolute Path Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdated Files . add ( new Dir . absolute Path ) ĊĠĠĠĠĠĠĠ Ġcallback . invoke ( updated Files ) ĊĠĠĠ Ġ} Ċ } Ċ