package Ġcom . xg imi . file manager . page Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġcom . xg imi . dialog . Base Dialog Ċ import Ġcom . xg imi . dialog . ext . base Dialog Ċ import Ġcom . xg imi . file manager . File Search Activity Ċ import Ġcom . xg imi . file manager . R Ċ import Ġcom . xg imi . file manager . bean . Base Data Ċ import Ġcom . xg imi . file manager . bean . Catalog Info Ċ import Ġcom . xg imi . file manager . bean . DeviceInfo Ċ import Ġcom . xg imi . file manager . bean . GM UI Operation Ċ import Ġcom . xg imi . file manager . config . Layout Type Ċ import Ġcom . xg imi . file manager . config . Operation Configure Ċ import Ġcom . xg imi . file manager . constants . Constants Ċ import Ġcom . xg imi . file manager . file helper . Operation Event Ċ import Ġcom . xg imi . file manager . helper . Intent Builder Ċ import Ġcom . xg imi . file manager . list ern ers . On File ItemClickListener Ċ import Ġcom . xg imi . file manager . menus . Xg imi MenuItem Ċ import Ġcom . xg imi . sam ba . bean . Category Bean Ċ import Ġcom . xg imi . sam ba . bean . Share Disk Ċ import Ġcom . xg imi . view . cell . Cell Ċ import Ġcom . xg imi . view . cell . layout . LinearLayout Ċ import Ġcom . xg imi . view . cell . utils . Simple Focus Adapter Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠĠĠ Ġauthor Ġ: Ġj oker . peng Ċ Ġ* ĠĠĠ Ġe - mail Ġ: Ġj oker . peng @ xg imi . com Ċ Ġ* ĠĠĠ Ġdate ĠĠ Ġ: Ġ 2 0 2 0 / 8 / 1 4 Ġ 1 5 : 2 8 Ċ Ġ* ĠĠĠ Ġdesc ĠĠ Ġ: Ċ Ġ*/ Ċ abstract Ġclass ĠBase Page ( context : ĠActivity ) Ġ: ĠFile Operation Page ( context ) Ġ{ ĊĊĊĠĠĠ Ġ// Ġæĸĩä»¶ åĪĹè¡¨ å®¹åĻ¨ ĊĠĠĠ Ġvar Ġfile Detail Cell Ġ= ĊĠĠĠĠĠĠĠ ĠCell ( LinearLayout ( LinearLayout . VERTICAL , ĠConstants . GROUP _ SIZE , Ġ 7 2 , Ġ 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Padding ( 9 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Mask ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Focus Adapter ( Simple Focus Adapter (). serial ( true , Ġfalse , Ġtrue , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTag (" file List Container ") ĊĊĠĠĠ Ġ// å½ĵåīį é¡µéĿ¢ æĺ¯åĲ¦ éĢī ä¸Ń æĺ¾ç¤º ĊĠĠĠ Ġvar Ġis Selected Tab Ġ= Ġfalse ĊĊĠĠĠ Ġvar Ġheader Hide Enable Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èıľåįķ æĺ¯åĲ¦ æĺ¾ç¤º ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġis Menu Show ed Ġ= Ġfalse ĊĊĠĠĠ Ġ// ĠĠĠ Ġprivate Ġval Ġm GM UI Operation Dialog Builder : ĠGM UI Operation Dialog Builder ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Last Refresh Operation Page Datas Ġ= Ġmutable ListOf < Base Data >() ĊĠĠĠ Ġprivate Ġval ĠmCurrent Refresh Operation Page Datas Ġ= Ġmutable ListOf < Base Data >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® item çĤ¹åĩ» äºĭä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġset On ItemClickListener ( listener : ĠOn File ItemClickListener ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġm Grid ListView . setOn ItemClickListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġset On ItemSelected Listener ( listener : ĠOn File ItemClickListener ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġm Grid ListView . setOn ItemSelected Listener ( listener ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ èıľåįķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġinit Menus (): ĠX g imi MenuItem ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= ĠX g imi MenuItem () ĊĊĠĠĠĠĠĠĠ Ġvar Ġmode Ġ= Ġif Ġ( Operation Configure . get Layout Type () Ġ== ĠLayout Type . GRID _ LAYOUT . ordinal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . grid _ mode ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . list _ mode ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( Xg imi MenuItem ( Operation Event . Change Layout Type , Ġmode )) ĊĠĠĠĠĠĠĠ Ġif Ġ( get Category () Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . New File , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . new _ dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Select All , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . select _ all ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Mult iselect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . mult iselect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç¼ĸè¾ĳ èıľåįķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Edit Menu (): ĠX g imi MenuItem Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( Operation Event . OPERATION _ NULL , ĠgetString ( R . string . edit )) ĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Cut Mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . cut ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Copy Mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . copy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmenu . add Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX g imi MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Del File , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . de lfile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èıľåįķ çĤ¹åĩ» äºĭä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmenu ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Menu Clicked ( menu : ĠX g imi MenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobj : ĠAny ? Ġ= Ġget Selected Data () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( menu . operation Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Change Layout Type Ġ-> ĠOperation Configure . change Layout Type () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Search File Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( context , ĠFile Search Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" Search Type ", Ġget Category ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" RootPath ", Ġcurrent Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Cut Mode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Operation Data ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Cut File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Copy Mode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Operation Data ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Copy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Del File Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Operation Data ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Del File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Paste Ġ-> Ġon Paste File () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Rename Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Operation Data ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Rename () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . New File Ġ-> ĠonCreate File () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Select All Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Operation List . clear () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject List : ĠList < Any > Ġ= Ġm Grid ListView . getData () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( object List Ġ!= Ġnull Ġ&& Ġobject List . isNotEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Operation List . addAll ( object List ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Choose Mode ( true ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Mult iselect Ġ-> Ġset Choose Mode ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Open Mode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( obj Ġas ĠBase Data )?. path ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Builder . Open As ( context , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį éĢī ä¸ŃçļĦ æķ°æį® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Selected Data (): ĠAny ? Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Grid ListView . has Focus () Ġ|| Ġis Menu Show ed ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġm Grid ListView . getSelected Data () Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł åħ¨å±Ģ æĵįä½ľ æķ°æį® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġobj ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġadd Operation Data ( obj : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Ġ!= Ġnull Ġ&& Ġ! Operation Configure . is Select Operation Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Operation List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Operation List . add ( obj ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Operation Configure . is Select Operation Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Choose Mode ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ¸ ħ éĻ¤ æĵįä½ľ æĸĩä»¶ çķĮéĿ¢ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġclear Refresh Operation Page () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Last Refresh Operation Page Datas . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Refresh Operation Page Datas . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtodo ĠæŃ¤ å¤Ħ é¡µéĿ¢ å±Ģ éĥ¨ åĪ·æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Last Refresh Operation Page Datas . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġset Init Selection ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġtodo ĠåĪĿå§ĭåĮĸ éĢī ä¸Ń çĬ¶æĢģ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º åĬłè½½ è¿Ľ åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Loading View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġtodo Ġ æŃ£åľ¨ åĬłè½½ ĠR . string . progress _ wait _ loading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éļĲèĹı åĬłè½½ è¿Ľ åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġhide Loading View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġtodo Ġ éļĲèĹı åĬłè½½ è¿Ľ åº¦ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç¼ĸè¾ĳ å¼¹ çªĹ æķ°æį® ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget GM UI Operation (): ĠMutable List < GM UI Operation > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Operations Ġ= Ġmutable ListOf < GM UI Operation >() ĊĠĠĠĠĠĠĠ Ġm Operations . add ( GM UI Operation ( Operation Event . Cut Mode , ĠgetString ( R . string . cut ))) ĊĠĠĠĠĠĠĠ Ġm Operations . add ( GM UI Operation ( Operation Event . Copy Mode , ĠgetString ( R . string . copy ))) ĊĠĠĠĠĠĠĠ Ġm Operations . add ( GM UI Operation ( Operation Event . Del File , ĠgetString ( R . string . de lfile ))) ĊĠĠĠĠĠĠĠ Ġif Ġ(! Operation Configure . is Select Operation Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Operations . add ( GM UI Operation ( Operation Event . Rename , ĠgetString ( R . string . rename ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Operations ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĵ įä½ľ æĺ¾ç¤º æ¨¡å¼ı åĽŀè°ĥ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconfigure Type ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Operation Configure Change ( configure Type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Operation Configure Change ( configure Type ) ĊĠĠĠĠĠĠĠ Ġif Ġ( configure Type Ġ== ĠOperation Configure . OPERATION _ CONFIGURE _ LAYOUT _ TYPE Ġ&& Ġis Selected Tab Ġ&& ĠisActive ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Layout Type ( Operation Configure . get Layout Type ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( configure Type Ġ== ĠOperation Configure . OPERATION _ CONFIGURE _ DISPLAY _ MODE Ġ&& Ġis Selected Tab Ġ&& ĠisActive ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Operation List . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¹åıĺ åĪĹè¡¨ æ¨¡å¼ı ãĢģ åĽ¾ æłĩ æ¨¡å¼ı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlayout Type Ġ åĪĹè¡¨ æ¨¡å¼ı ãĢģ åĽ¾ æłĩ æ¨¡å¼ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġchange Layout Type ( layout Type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// todo Ġ æĶ¹åıĺ æĺ¾ç¤º æ¨¡å¼ı ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º ç¼ĸè¾ĳ çķĮéĿ¢ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġshow Operation Menu ( data : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġis File Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġis ĠBase Data Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ( data Ġas ĠBase Data ). name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( data . path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis File Ġ= Ġfile Ġ!= Ġnull Ġ&& Ġfile . exists () Ġ&& Ġfile . isFile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . share Item Ġis ĠShare Disk ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġis ĠCategory Bean Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ( data Ġas ĠCatalog Info ). name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġis ĠDevice Info Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ( data Ġas ĠDevice Info ). device Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoperations Ġ= Ġget GM UI Operation () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( operations Ġ== Ġnull Ġ|| Ġoperations . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperations . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGM UI Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperation Event . Open Mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . file _ operation _ open as ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbase Dialog ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Alert Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable Cancel Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Outside Cancel Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ}. show On Window () Ċ Ċ // ĠĠĠĠĠĠĠ Ġm GM UI Operation Dialog Builder Ġ= ĠGM UI Operation Dialog Builder ( mContext ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( name ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Blur Bg View ( getActivity (). getWindow (). get Decor View ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Operation Datas ( operations ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Operation Listener ( object Ġ: ĠOper base Dialog ( this . application Context ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Alert Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Cancel Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Outside Cancel Ġ= Ġtrue Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show On Window () ation Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠonClick ( dialog : ĠGM UID ialog , Ġoperation : ĠGM UI Operation ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Menu Clicked ( Menu ( operation . m Operation Type , Ġoperation . m Str )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( operation . m Operation Type Ġ!== ĠOperation Event . Rename ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity (). getWindow (). get Decor View () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post Delayed ( Runnable Ġ{ Ġdialog . dismiss () Ġ}, Ġ 1 0 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġm GM UI Operation Dialog Builder . create ( R . style . null Anim _ theme _ dialog ). show () Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( data Ġis ĠBase Data ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġshow FileInfo ( data . path ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }