diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/library/src/main/java/com/hippo/unifile/AssetFile.java b/library/src/main/java/com/hippo/unifile/AssetFile.java index c22ecd9..115485a 100644 --- a/library/src/main/java/com/hippo/unifile/AssetFile.java +++ b/library/src/main/java/com/hippo/unifile/AssetFile.java @@ -57,7 +57,7 @@ public UniFile createFile(String displayName) { @Override public UniFile createDirectory(String displayName) { - UniFile file = findFile(displayName, true); + UniFile file = findFile(displayName); if (file != null && file.isDirectory()) { return file; } else { @@ -208,12 +208,6 @@ public UniFile[] listFiles(FilenameFilter filter) { @Nullable @Override public UniFile findFile(String displayName) { - return findFile(displayName, false); - } - - @Nullable - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { if (TextUtils.isEmpty(displayName)) { return null; } @@ -225,7 +219,7 @@ public UniFile findFile(String displayName, boolean ignoreCase) { } for (String f : files) { - if (Utils.equals(displayName, f, ignoreCase)) { + if (displayName.equals(f)) { return new AssetFile(this, mAssetManager, Utils.resolve(mPath, displayName)); } } diff --git a/library/src/main/java/com/hippo/unifile/MediaFile.java b/library/src/main/java/com/hippo/unifile/MediaFile.java index b6894cd..1ef832f 100644 --- a/library/src/main/java/com/hippo/unifile/MediaFile.java +++ b/library/src/main/java/com/hippo/unifile/MediaFile.java @@ -146,11 +146,6 @@ public UniFile findFile(String displayName) { return null; } - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { - return null; - } - @Override public boolean renameTo(String displayName) { return false; diff --git a/library/src/main/java/com/hippo/unifile/RawFile.java b/library/src/main/java/com/hippo/unifile/RawFile.java index 79504c4..940fb63 100644 --- a/library/src/main/java/com/hippo/unifile/RawFile.java +++ b/library/src/main/java/com/hippo/unifile/RawFile.java @@ -189,11 +189,6 @@ public UniFile[] listFiles(FilenameFilter filter) { @Override public UniFile findFile(String displayName) { - return findFile(displayName, false); - } - - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { if (TextUtils.isEmpty(displayName)) { return null; } diff --git a/library/src/main/java/com/hippo/unifile/ResourceFile.java b/library/src/main/java/com/hippo/unifile/ResourceFile.java index a23b535..b905b69 100644 --- a/library/src/main/java/com/hippo/unifile/ResourceFile.java +++ b/library/src/main/java/com/hippo/unifile/ResourceFile.java @@ -144,12 +144,6 @@ public UniFile findFile(String displayName) { return null; } - @Nullable - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { - return null; - } - @Override public boolean renameTo(String displayName) { return false; diff --git a/library/src/main/java/com/hippo/unifile/SingleDocumentFile.java b/library/src/main/java/com/hippo/unifile/SingleDocumentFile.java index 06bd93e..956d60f 100644 --- a/library/src/main/java/com/hippo/unifile/SingleDocumentFile.java +++ b/library/src/main/java/com/hippo/unifile/SingleDocumentFile.java @@ -131,11 +131,6 @@ public UniFile findFile(String displayName) { return null; } - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { - return null; - } - @Override public boolean renameTo(String displayName) { return false; diff --git a/library/src/main/java/com/hippo/unifile/TreeDocumentFile.java b/library/src/main/java/com/hippo/unifile/TreeDocumentFile.java index 2c54af7..bbcdc60 100644 --- a/library/src/main/java/com/hippo/unifile/TreeDocumentFile.java +++ b/library/src/main/java/com/hippo/unifile/TreeDocumentFile.java @@ -19,6 +19,7 @@ import android.content.Context; import android.net.Uri; import android.os.ParcelFileDescriptor; +import android.provider.DocumentsContract; import android.text.TextUtils; import android.util.Log; import android.webkit.MimeTypeMap; @@ -93,7 +94,7 @@ public UniFile createDirectory(String displayName) { return null; } - UniFile child = findFile(displayName, true); + UniFile child = findFile(displayName); if (child != null) { if (child.isDirectory()) { @@ -220,11 +221,6 @@ public UniFile[] listFiles(FilenameFilter filter) { @Override public UniFile findFile(String displayName) { - return findFile(displayName, false); - } - - @Override - public UniFile findFile(String displayName, boolean ignoreCase) { if (TextUtils.isEmpty(displayName)) { return null; } @@ -233,13 +229,17 @@ public UniFile findFile(String displayName, boolean ignoreCase) { return null; } - final NamedUri[] result = DocumentsContractApi21.listFilesNamed(mContext, mUri); - for (NamedUri uri : result) { - if (Utils.equals(displayName, uri.name, ignoreCase)) { - return new TreeDocumentFile(this, mContext, uri.uri, displayName); - } + String documentId = DocumentsContract.getDocumentId(mUri); + documentId += "/" + displayName; + + Uri documentUri = DocumentsContract.buildDocumentUriUsingTree(mUri, documentId); + UniFile child = new TreeDocumentFile(this, mContext, documentUri, displayName); + + if (child.exists()) { + return child; + } else { + return null; } - return null; } @Override diff --git a/library/src/main/java/com/hippo/unifile/UniFile.java b/library/src/main/java/com/hippo/unifile/UniFile.java index e709edf..8af1d9e 100644 --- a/library/src/main/java/com/hippo/unifile/UniFile.java +++ b/library/src/main/java/com/hippo/unifile/UniFile.java @@ -402,15 +402,6 @@ public UniFile getParentFile() { @Nullable public abstract UniFile findFile(String displayName); - /** - * Test there is a file with the display name in the directory. - * - * @param ignoreCase Whether to do a case insensitive check. - * @return the file if found it, or {@code null}. - */ - @Nullable - public abstract UniFile findFile(String displayName, boolean ignoreCase); - /** * Renames this file to {@code displayName}. *