/* Ċ Ġ* ĠCreated Ġby ĠM yst ery 0 Ġon Ġ 1 8 - 2 - 1 0 Ġä¸ĭåįĪ 4 : 0 0 . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 . ĠAll ĠRights Ġreserved . Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ================================================= ==== Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ oo 0 oo _ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo 8 8 8 8 8 8 8 o ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 8 8 " Ġ. Ġ" 8 8 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( | Ġ- _- Ġ| ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 \ Ġ Ġ= Ġ Ġ/ 0 ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ___ /` --- '\ ___ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. ' Ġ\\ | ĠĠĠĠ Ġ| # Ġ'. ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/ Ġ\\ ||| Ġ Ġ: Ġ Ġ|| | # Ġ\ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/ Ġ_ |||| | Ġ- :- Ġ|| || |- Ġ\ ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ| Ġ\ \\ Ġ Ġ- Ġ Ġ# / Ġ| ĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ\ _| Ġ Ġ'' \ --- / '' Ġ Ġ| _/ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ\ Ġ Ġ. -\ __ Ġ Ġ'-' Ġ Ġ___ / -. Ġ/ ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ___ '. Ġ. ' Ġ Ġ/ -- . -- \ Ġ Ġ`. Ġ. ' ___ ĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠ Ġ. "" Ġ'< Ġ Ġ` .__ _ \_ < |> _ /__ _. ' Ġ> ' Ġ"". ĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠ Ġ| Ġ| Ġ: Ġ Ġ`- Ġ\ `. ; `\ Ġ_ Ġ/ `; .` / Ġ- Ġ` Ġ: Ġ| Ġ| ĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠ Ġ\ Ġ Ġ\ Ġ` _. ĠĠ Ġ\_ Ġ__ \ Ġ/ __ Ġ_ / ĠĠ Ġ. - ` Ġ/ Ġ Ġ/ ĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠ Ġ===== ` -. ____ `. ___ Ġ\ _____ /__ _. - ` __ _. -' ===== ĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` = --- =' ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ ~~~ ĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ä½ Ľ ç¥ ĸ ä¿Ŀ ä½ ĳ ĠĠĠĠĠĠĠĠ Ġæ ° ¸ æĹł BUG ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ================================================= ==== Ċ Ġ* Ċ Ġ* ĠLast Ġmodified Ġ 1 8 - 2 - 1 0 Ġä¸ĭåįĪ 4 : 0 0 Ċ Ġ*/ Ċ Ċ package Ġpw . j any o . j any osh are . utils Ċ Ċ import Ġandroid . os . Environment Ċ import Ġandroid . text . TextUtils Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . ArrayList Ċ Ċ import Ġpw . j any o . j any osh are . config . APP Ċ import Ġpw . j any o . j any osh are . model . Install APP Ċ import Ġv ip . m yst ery 0 . logs . Logs Ċ import Ġv ip . m yst ery 0 . tools . utils . File Tools Ċ Ċ object ĠJan Yo File Util Ġ{ Ċ ĉ private Ġconst Ġval ĠJ AN YO _ SHARE Ġ= Ġ" Jan Yo ĠShare " // ä¸´ æĹ¶ çĽ®å½ķ åĲį ĊĊ ĉ object ĠExport Ġ{ Ċĉ ĉ const Ġval ĠEX PORT _ DIR _ SD CARD _ DATA Ġ= Ġ 0 // å¯¼åĩº åĪ° sd card çļĦ data Ċĉ ĉ const Ġval ĠEX PORT _ DIR _ SD CARD Ġ= Ġ 1 // å¯¼åĩº åĪ° sd card æł¹ çĽ®å½ķ Ċĉ ĉ const Ġval ĠEX PORT _ DIR _ CUSTOM Ġ= Ġ 2 // å¯¼åĩº åĪ° èĩªå®ļä¹ī çĽ®å½ķ Ċ ĉ } ĊĊ ĉ object ĠCode Ġ{ Ċĉ ĉ const Ġval ĠDONE Ġ= ĠFile Tools . DONE // å®ĮæĪĲ Ċĉ ĉ const Ġval ĠERROR Ġ= ĠFile Tools . ERROR // å¤±è´¥ Ċĉ ĉ const Ġval ĠFILE _ NOT _ EXIST Ġ= ĠFile Tools . FILE _ NOT _ EXIST // æĸĩä»¶ ä¸įåŃĺåľ¨ Ċĉ ĉ const Ġval ĠMAKE _ DIR _ ERROR Ġ= ĠFile Tools . MAKE _ DIR _ ERROR // åĪĽå»º çĽ®å½ķ å¤±è´¥ Ċĉ ĉ const Ġval ĠFILE _ EXIST Ġ= Ġ 1 0 4 // æĸĩä»¶ å·² åŃĺåľ¨ Ċĉ ĉ const Ġval ĠDIR _ NOT _ EXIST Ġ= Ġ 1 0 5 // çĽ®å½ķ ä¸įåŃĺåľ¨ Ċ ĉ } ĊĊ ĉ private Ġvar ĠEX PORT _ AP K _ DIR : ĠFile ? Ġ= Ġnull ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ å¯¼åĩº çĽ®å½ķ ç»Ŀ å¯¹ è·¯å¾Ħ Ċĉ Ġ* Ċĉ Ġ* Ġ@ return Ġ è·¯å¾Ħ Ċĉ Ġ*/ Ċ ĉ val Ġexport DirPath : ĠString Ċĉ ĉ get () Ġ{ Ċĉĉ ĉ init Export Dir () Ċĉĉ ĉ return ĠEX PORT _ AP K _ DIR !!. absolute Path Ċĉ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ å¯¼åĩº åĽ¾ æłĩ çĽ®å½ķ ç»Ŀ å¯¹ è·¯å¾Ħ Ċĉ Ġ* Ċĉ Ġ* Ġ@ return Ċĉ Ġ*/ Ċ ĉ val Ġexport Icon Path : ĠString Ċĉ ĉ get () Ġ{ Ċĉĉ ĉ init Export Dir () Ċĉĉ ĉ return ĠFile ( EXPORT _ AP K _ DIR , Ġ" icon "). absolute Path Ċĉ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ icon åŃĺåĤ¨ è·¯å¾Ħ Ċĉ Ġ* Ċĉ Ġ* Ġ@ return Ġ è·¯å¾Ħ Ċĉ Ġ*/ Ċ ĉ fun Ġget Icon Path ( packageName : ĠString ): ĠString Ġ{ Ċĉ ĉ return Ġ"${ APP . context . cacheDir . absolute Path }${ File . separator } icon ${ File . separator }$ packageName " Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ å¯¼åĩº çĽ®å½ķ ï¼Į è¿ĶåĽŀ File å¯¹è±¡ Ċĉ Ġ* Ċĉ Ġ* Ġ@ return ĠFile å¯¹è±¡ Ċĉ Ġ*/ Ċ ĉ val Ġexport Dir File : ĠFile Ċĉ ĉ get () Ġ= ĠFile ( export DirPath ) ĊĊ ĉ /** Ċĉ Ġ* ĠåĪ¤æĸŃ å¯¼åĩº çĽ®å½ķ æĺ¯åĲ¦ åŃĺåľ¨ Ċĉ Ġ* Ċĉ Ġ* Ġ@ return Ġboolean Ċĉ Ġ*/ Ċ ĉ val Ġis Export Dir Exist : ĠBoolean Ċĉ ĉ get () Ġ{ Ċĉĉ ĉ init Export Dir () Ċĉĉ ĉ return ĠEX PORT _ AP K _ DIR !!. exists () Ġ|| ĠEX PORT _ AP K _ DIR !!. mkdir s () Ċĉ ĉ } ĊĊ ĉ /** Ċĉ Ġ* ĠåĪĿå§ĭåĮĸ åŃĺåĤ¨ çļĦ ä¸´ æĹ¶ çĽ®å½ķ Ċĉ Ġ*/ Ċ ĉ private Ġfun Ġinit Export Dir () Ġ{ Ċĉ ĉ EXPORT _ AP K _ DIR Ġ= Ġwhen Ġ( Settings . export Dir ) Ġ{ Ċĉĉ ĉ Export . EXPORT _ DIR _ SD CARD _ DATA Ġ-> ĠFile ( APP . context . get External Files Dir ( null ), ĠJ AN YO _ SHARE ) Ċĉĉ ĉ Export . EXPORT _ DIR _ SD CARD Ġ-> ĠFile ( Environment . get External Storage Directory (), ĠJ AN YO _ SHARE ) Ċĉĉ ĉ Export . EXPORT _ DIR _ CUSTOM Ġ-> ĠFile ( Settings . custom Export Dir ) Ċĉĉ ĉ else Ġ-> Ġthrow ĠNullPointerException (" åŃĺåĤ¨ ä½įç½® éĶĻè¯¯ ") Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġæ¸ ħ çĲĨ ä¸´ æĹ¶ çĽ®å½ķ ä¸ĭ æĸĩä»¶ Ċĉ Ġ*/ Ċ ĉ fun Ġclean File Dir (): ĠInt Ġ{ Ċĉ ĉ init Export Dir () Ċĉ ĉ if Ġ(! EXPORT _ AP K _ DIR !!. exists ()) Ġ{ Ċĉĉ ĉ val Ġmkdir s Ġ= ĠEX PORT _ AP K _ DIR !!. mkdir s () Ċĉĉ ĉ Logs . i (" clean File Dir : ĠåĪĽå»º å¯¼åĩº ä¸´ æĹ¶ çĽ®å½ķ : Ġ$ mkdir s ") Ċĉĉ ĉ if Ġ(! mkdir s ) Ċĉĉĉ ĉ return ĠCode . MAKE _ DIR _ ERROR Ċĉ ĉ } Ċĉ ĉ if Ġ( EXPORT _ AP K _ DIR !!. isDirectory ) Ġ{ Ċĉĉ ĉ for Ġ( file Ġin ĠEX PORT _ AP K _ DIR !!. list Files ()) Ġ{ Ċĉĉĉ ĉ if Ġ( file . isFile ) Ċĉĉĉĉ ĉ file . delete () Ċĉĉĉ ĉ else Ġif Ġ( file . isDirectory ) Ċĉĉĉĉ ĉ File Tools . delete Dir ( file ) Ċĉĉ ĉ } Ċĉĉ ĉ return ĠCode . DONE Ċĉ ĉ } Ċĉ ĉ return ĠCode . ERROR Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* ĠéĢļè¿ĩ è·¯å¾Ħ èİ·åıĸ æĸĩä»¶ æī©å±ķ åĲį Ċĉ Ġ* Ċĉ Ġ* Ġ@ param ĠfilePath Ġæĸĩä»¶ è·¯å¾Ħ Ċĉ Ġ* Ġ@ return Ġ æī©å±ķ åĲį Ċĉ Ġ*/ Ċ ĉ fun Ġget Extension FileName ( filePath : ĠString ): ĠString Ġ{ Ċĉ ĉ val Ġdot Ġ= ĠfilePath . lastIndexOf ('.') Ċĉ ĉ return Ġif Ġ( dot Ġ> Ġ- 1 Ġ&& Ġdot Ġ< ĠfilePath . length Ġ- Ġ 1 ) ĠfilePath . substring ( dot Ġ+ Ġ 1 ) Ġelse Ġ"" Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ æĸĩä»¶ æī©å±ķ åĲį ï¼Į éĢĤ çĶ¨äºİ æĭ ¼ æİ¥ è·¯å¾Ħ åŃĹç¬¦ä¸² Ċĉ Ġ* Ċĉ Ġ* Ġ@ param ĠfilePath Ġæĸĩä»¶ è·¯å¾Ħ Ċĉ Ġ* Ġ@ return Ġ æī©å±ķ åĲį ï¼Ī å¸¦ çĤ¹ æĪĸèĢħ ç©º ï¼ī Ċĉ Ġ*/ Ċ ĉ fun Ġappend Extension FileName ( filePath : ĠString ?): ĠString Ġ{ Ċĉ ĉ val Ġextension FileName Ġ= Ġget Extension FileName ( filePath !! ) Ċĉ ĉ return Ġif Ġ( TextUtils . isEmpty ( extension FileName )) Ġ"" Ġelse Ġ".$ extension FileName " Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ æĮĩå®ļ è½¯ä»¶ é»ĺè®¤ å¯¼åĩº ç»Ŀ å¯¹ è·¯å¾Ħ Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP ĠæĮĩå®ļ çļĦ è½¯ä»¶ Ċĉ Ġ* Ġ@ return Ġ ç»Ŀ å¯¹ è·¯å¾Ħ Ċĉ Ġ*/ Ċ ĉ fun Ġget Export FilePath ( install APP : ĠInstall APP ): ĠString Ġ{ Ċĉ ĉ val Ġextend FileName Ġ= Ġget Extension FileName ( install APP . source Dir ) Ċĉ ĉ return Ġexport DirPath Ġ+ ĠFile . separator Ġ+ Ġformat Name ( install APP , ĠSettings . rename Format ) Ġ+ Ġif Ġ( extend FileName . isEmpty ()) Ġ"" Ġelse Ġ".$ extend FileName " Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ åĲĮ ä¸Ĭ ï¼Į è¿ĶåĽŀ ç±»åŀĭ ä¸º File Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP ĠæĮĩå®ļ çļĦ è½¯ä»¶ Ċĉ Ġ* Ġ@ return ĠFile å¯¹è±¡ Ċĉ Ġ*/ Ċ ĉ fun Ġget Export File ( install APP : ĠInstall APP ): ĠFile Ġ{ Ċĉ ĉ return ĠFile ( get Export FilePath ( install APP )) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġèİ·åıĸ å¯¼åĩº çĽ®å½ķ ä¸ĭ æĮĩå®ļ æĸĩä»¶ Ċĉ Ġ* Ċĉ Ġ* Ġ@ param ĠfileName With Ext ends Ġæĸĩä»¶ åĲį ï¼Ī åĲ« æī©å±ķ åĲį ï¼ī Ċĉ Ġ* Ġ@ return ĠFile å¯¹è±¡ Ċĉ Ġ*/ Ċ ĉ fun ĠgetFile ( fileName With Ext ends : ĠString ): ĠFile Ġ{ Ċĉ ĉ return ĠFile ( export Dir File , ĠfileName With Ext ends ) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ å¯¼åĩº æĮĩå®ļ è½¯ä»¶ åĪ° å¯¼åĩº çĽ®å½ķ ï¼Į æľª éĩį åĳ½åĲį Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP Ġ åĪ¶ å®ļ è½¯ä»¶ Ċĉ Ġ* Ġ@ return Ġè¿ĶåĽŀ çłģ Ċĉ Ġ*/ Ċ ĉ fun Ġexport AP K ( install APP : ĠInstall APP ): ĠInt Ġ{ Ċĉ ĉ if Ġ(! is Export Dir Exist ) Ċĉĉ ĉ return ĠCode . DIR _ NOT _ EXIST Ċĉ ĉ val Ġold Name Ġ= Ġinstall APP . source Dir . substring ( install APP . source Dir . lastIndexOf ( File . separator ) Ġ+ Ġ 1 ) Ċĉ ĉ val Ġoutput Path Ġ= ĠEX PORT _ AP K _ DIR !!. absolute Path Ġ+ ĠFile . separator Ġ+ Ġformat Name ( install APP , ĠSettings . rename Format ) Ġ+ Ġappend Extension FileName ( old Name ) Ċĉ ĉ return ĠFile Tools . copy File ( install APP . source Dir , Ġoutput Path ) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ éĩį åĳ½åĲį æĸĩä»¶ Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP Ġ å¯¼ åĩºçļĦ è½¯ä»¶ Ċĉ Ġ* Ġ@ param ĠfileName ĠĠ Ġ æĸ°çļĦ æĸĩä»¶ åĲį ï¼Ī ä¸į åĮħåĲ« æī©å±ķ åĲį ï¼ī Ċĉ Ġ* Ġ@ param Ġis Delete ĠĠ Ġæĺ¯åĲ¦ åĪłéĻ¤ å·² åŃĺåľ¨ çļĦæĸĩä»¶ Ċĉ Ġ* Ġ@ return Ġè¿ĶåĽŀ çłģ Ċĉ Ġ*/ Ċ ĉ fun Ġrename File ( install APP : ĠInstall APP , ĠfileName : ĠString , Ġis Delete : ĠBoolean ): ĠInt Ġ{ Ċĉ ĉ val Ġexport File Ġ= Ġget Export File ( install APP ) Ċĉ ĉ if Ġ(! export File . exists ()) Ċĉĉ ĉ return ĠCode . FILE _ NOT _ EXIST Ċĉ ĉ val Ġnew File Ġ= ĠFile ( export Dir File , ĠfileName Ġ+ Ġappend Extension FileName ( install APP . source Dir )) Ċĉ ĉ if Ġ( new File . exists ()) Ċĉĉ ĉ if Ġ( is Delete ) ĊĊĉĉĉ ĉ new File . delete () Ċĉĉ ĉ else Ċĉĉĉ ĉ return ĠCode . FILE _ EXIST Ċĉ ĉ return Ġif Ġ( export File . rename To ( new File )) ĠCode . DONE Ġelse ĠCode . ERROR Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ éĩį åĳ½åĲį æĸĩä»¶ æī©å±ķ åĲį Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP ĠĠĠ Ġ å¯¼ åĩºçļĦ è½¯ä»¶ Ċĉ Ġ* Ġ@ param Ġextension Name Ġ æĸ°çļĦ æī©å±ķ åĲį Ċĉ Ġ* Ġ@ param Ġis Delete ĠĠĠĠĠ Ġæĺ¯åĲ¦ åĪłéĻ¤ å·² åŃĺåľ¨ çļĦæĸĩä»¶ Ċĉ Ġ* Ġ@ return Ġè¿ĶåĽŀ çłģ Ċĉ Ġ*/ Ċ ĉ fun Ġrename Extension ( install APP : ĠInstall APP , Ġextension Name : ĠString , Ġis Delete : ĠBoolean ): ĠInt Ġ{ Ċĉ ĉ val Ġexport File Ġ= Ġget Export File ( install APP ) Ċĉ ĉ if Ġ(! export File . exists ()) Ċĉĉ ĉ return ĠCode . FILE _ NOT _ EXIST Ċĉ ĉ val Ġnew File Ġ= ĠFile ( export Dir File , Ġformat Name ( install APP , ĠSettings . rename Format ) Ġ+ Ġif Ġ( TextUtils . isEmpty ( extension Name )) Ġ"" Ġelse Ġ".$ extension Name ") Ċĉ ĉ if Ġ( new File . exists ()) Ċĉĉ ĉ if Ġ( is Delete ) ĊĊĉĉĉ ĉ new File . delete () Ċĉĉ ĉ else Ċĉĉĉ ĉ return ĠCode . FILE _ EXIST Ċĉ ĉ return Ġif Ġ( export File . rename To ( new File )) ĠCode . DONE Ġelse ĠCode . ERROR Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġæ£Ģ æŁ¥ æķ°æį® åĮħ æĺ¯åĲ¦ åŃĺåľ¨ Ċĉ Ġ* Ċĉ Ġ* Ġ@ param ĠpackageName Ġ åĮħ åĲį Ċĉ Ġ* Ġ@ return Ġ åĪĹè¡¨ ï¼Į ä¸įåŃĺåľ¨ åĪĻ ä¸ºç©º Ċĉ Ġ*/ Ċ ĉ fun Ġcheck Ob b ( packageName : ĠString ): ĠList < File > Ġ{ Ċĉ ĉ val Ġlist Ġ= ĠArrayList < File >() Ċĉ ĉ val Ġdir Ġ= ĠFile ( Environment . get External Storage Public Directory (" Android "). toString () Ġ+ ĠFile . separator Ġ+ Ġ" obb " Ġ+ ĠFile . separator Ġ+ ĠpackageName Ġ+ ĠFile . separator ) Ċĉ ĉ if Ġ(! dir . exists () Ġ|| Ġ! dir . isDirectory ) Ċĉĉ ĉ return Ġlist Ċĉ ĉ for Ġ( temp Ġin Ġdir . list Files ()) Ċĉĉ ĉ if Ġ( temp . absolute Path . toLowerCase (). endsWith (" obb ")) Ċĉĉĉ ĉ list . add ( temp ) Ċĉ ĉ return Ġlist Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* Ġ æł¼å¼ı åĮĸ æĸĩä»¶ åĲį Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġinstall APP ĠæıĲ åıĸ çļĦ è½¯ä»¶ Ċĉ Ġ* Ġ@ param Ġformat ĠĠĠĠ Ġ æł¼å¼ı Ċĉ Ġ* Ġ@ return Ġæĸĩä»¶ åĲį ï¼Į ä¸į åĮħåĲ« æī©å±ķ åĲį Ċĉ Ġ*/ Ċ ĉ fun Ġformat Name ( install APP : ĠInstall APP , Ġformat : ĠString ): ĠString Ġ{ Ċĉ ĉ val ĠfileName Ġ= ĠStringBuilder () Ċĉ ĉ var Ġindex Ġ= Ġ 0 Ċĉ ĉ while Ġ( index Ġ< Ġformat . length ) Ċĉĉ ĉ if Ġ( format [ index ] Ġ== Ġ'%' Ġ&& Ġindex Ġ+ Ġ 1 Ġ< Ġformat . length ) Ċĉĉĉ ĉ when Ġ( format [ index Ġ+ Ġ 1 ]) Ġ{ Ċĉĉĉĉ ĉ ' N ' Ġ-> Ġ{ Ċĉĉĉĉĉ ĉ fileName . append ( install APP . name ) Ċĉĉĉĉĉ ĉ index Ġ+= Ġ 2 Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ ' V ' Ġ-> Ġ{ Ċĉĉĉĉĉ ĉ fileName . append ( install APP . version Name ) Ċĉĉĉĉĉ ĉ index Ġ+= Ġ 2 Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ ' W ' Ġ-> Ġ{ Ċĉĉĉĉĉ ĉ fileName . append ( install APP . version Code ) Ċĉĉĉĉĉ ĉ index Ġ+= Ġ 2 Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ ' P ' Ġ-> Ġ{ Ċĉĉĉĉĉ ĉ fileName . append ( install APP . packageName ) Ċĉĉĉĉĉ ĉ index Ġ+= Ġ 2 Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ else Ġ-> Ġ{ Ċĉĉĉĉĉ ĉ fileName . append ('% ') Ċĉĉĉĉĉ ĉ index ++ Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } Ċĉĉ ĉ else Ġ{ Ċĉĉĉ ĉ fileName . append ( format [ index ]) Ċĉĉĉ ĉ index ++ Ċĉĉ ĉ } Ċĉ ĉ return ĠfileName . toString () Ċ ĉ } Ċ }