From beef22fdaecfd6350ea5f639d264a0c0c3e4816a Mon Sep 17 00:00:00 2001 From: didikeeLuanon Date: Wed, 1 Jan 2020 20:19:29 +0800 Subject: [PATCH] Update AbsMediaLoader.java --- .../com/androidx/picker/AbsMediaLoader.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/androidx/src/main/java/com/androidx/picker/AbsMediaLoader.java b/androidx/src/main/java/com/androidx/picker/AbsMediaLoader.java index 18502f8..0da20ce 100644 --- a/androidx/src/main/java/com/androidx/picker/AbsMediaLoader.java +++ b/androidx/src/main/java/com/androidx/picker/AbsMediaLoader.java @@ -28,24 +28,36 @@ protected String[] getParentInfoFromData(String data) { } protected String[] getParentInfoFromRelativePath(String relativePath) { + String parentName = ""; + String parentPath = ""; if (!TextUtils.isEmpty(relativePath)) { // 根据相对路径来判断 // DCIM/MY FOLDER/SUB/demo.png // android 10 DCIM/MY FOLDER/SUB - String parentName = ""; - String parentPath = ""; if (!TextUtils.isEmpty(relativePath) && relativePath.contains(File.separator)) { - int lastIndexOf = relativePath.lastIndexOf(File.separator); - if (lastIndexOf != -1) { - parentName = relativePath.substring(lastIndexOf + 1); - parentPath = relativePath.substring(0, lastIndexOf); + String[] split = relativePath.split(File.separator); + int length = split.length; + String folderName = ""; + if (length > 0) { + String lastStr = split[length - 1]; + if (TextUtils.isEmpty(lastStr)) { + if (length - 2 >= 0) { + String preLastStr = split[length - 2]; + if (!TextUtils.isEmpty(preLastStr)) { + folderName = preLastStr; + } + } + } else { + folderName = lastStr; + } } + parentName = folderName; + parentPath = relativePath; } else { parentName = relativePath; parentPath = relativePath; } - return new String[]{parentName, parentPath}; } - return new String[]{"", ""}; + return new String[]{parentName, parentPath}; } }