优化 脚本管理器增删文件后的更新

新增 支持插件
优化 多点找色的内存泄漏
修复 文件重命名时的后缀问题
修复 脚本抛出Throwable不能被捕捉的问题
This commit is contained in:
hyb1996
2018-10-23 15:00:34 +08:00
parent 2b71f5e856
commit 148784656d
38 changed files with 468 additions and 57 deletions

View File

@@ -50,15 +50,19 @@ public class PFile extends File {
mSimplifyPath = PFiles.getSimplifiedPath(getPath());
}
public boolean renameTo(String newName) {
if (isDirectory())
return renameTo(new File(getParent(), newName));
else
return renameTo(new File(getParent(), newName + "." + getExtension()));
@NonNull
public PFile renameTo(String newName) {
PFile newFile = new PFile(getParent(), newName);
if (renameTo(newFile)) {
return newFile;
} else {
return this;
}
}
@Nullable
public PFile renameAndReturnNewFile(String newName) {
@NonNull
public PFile renameWithoutExt(String newName) {
PFile newFile = isDirectory() ? new PFile(getParent(), newName) :
new PFile(getParent(), newName + "." + getExtension());
if (renameTo(newFile)) {

View File

@@ -296,9 +296,8 @@ public class PFiles {
}
public static void copyAssetDir(Context context, String assetsDir, String toDir, String[] list) throws IOException {
public static void copyAssetDir(AssetManager manager, String assetsDir, String toDir, String[] list) throws IOException {
new File(toDir).mkdirs();
AssetManager manager = context.getAssets();
if (list == null) {
list = manager.list(assetsDir);
}
@@ -323,7 +322,7 @@ public class PFiles {
}
}
} else {
copyAssetDir(context, fullAssetsPath, join(toDir, file), children);
copyAssetDir(manager, fullAssetsPath, join(toDir, file), children);
}
}
}

View File

@@ -13,4 +13,6 @@ public class ObjectHelper {
throw new NullPointerException();
}
}
}

View File

@@ -24,4 +24,17 @@ public class Objects {
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
/**
* Returns the hash code of a non-{@code null} argument and 0 for
* a {@code null} argument.
*
* @param o an object
* @return the hash code of a non-{@code null} argument and 0 for
* a {@code null} argument
* @see Object#hashCode
*/
public static int hashCode(Object o) {
return o != null ? o.hashCode() : 0;
}
}