From 1a893e4b2e1f7a10dc0a10b51674e553c141b0ca Mon Sep 17 00:00:00 2001 From: jddeep Date: Thu, 11 Apr 2019 15:20:29 +0530 Subject: [PATCH 1/7] updated realpath util method --- app/src/main/java/swati4star/createpdf/util/RealPathUtil.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index 4eafe1212..d6e2440d2 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -47,6 +47,9 @@ public static String getRealPathFromURI_API19(final Context context, final Uri u if ("primary".equalsIgnoreCase(type)) { return Environment.getExternalStorageDirectory() + "/" + split[1]; } + if ("home".equalsIgnoreCase(type)) { + return Environment.getExternalStorageDirectory() + "/" + split[1]; + } } else if (isDownloadsDocument(uri)) { From dccb247bc128dbba5137ad7538bcf00c06489af9 Mon Sep 17 00:00:00 2001 From: jddeep Date: Sat, 13 Apr 2019 07:40:29 +0530 Subject: [PATCH 2/7] updated realPathUtil -1 --- app/src/main/java/swati4star/createpdf/util/RealPathUtil.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index d6e2440d2..5298b848c 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -70,6 +70,10 @@ public static String getRealPathFromURI_API19(final Context context, final Uri u } } } + } else { + StringBuilder path = new StringBuilder(uri.getPath()); + path.insert(0, "/storage/emulated/0"); + return path.toString(); } return null; } From e16e72618a0fffefea177db267cb690b54549aab Mon Sep 17 00:00:00 2001 From: jddeep Date: Sat, 13 Apr 2019 11:30:47 +0530 Subject: [PATCH 3/7] Updated ext storage --- app/src/main/java/swati4star/createpdf/util/RealPathUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index 5298b848c..dd16408e3 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -72,7 +72,7 @@ public static String getRealPathFromURI_API19(final Context context, final Uri u } } else { StringBuilder path = new StringBuilder(uri.getPath()); - path.insert(0, "/storage/emulated/0"); + path.insert(0, Environment.getExternalStorageDirectory()); return path.toString(); } return null; From f660219b6e6015364d72fb039bc8872208ecbb7a Mon Sep 17 00:00:00 2001 From: jddeep Date: Sun, 14 Apr 2019 07:30:28 +0530 Subject: [PATCH 4/7] Made updations to realPath --- .../java/swati4star/createpdf/util/RealPathUtil.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index dd16408e3..a5f885bd2 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -71,8 +71,8 @@ public static String getRealPathFromURI_API19(final Context context, final Uri u } } } else { - StringBuilder path = new StringBuilder(uri.getPath()); - path.insert(0, Environment.getExternalStorageDirectory()); + StringBuilder path = trimExternal(uri.getPath().substring(1)); + path.insert(0, Environment.getExternalStorageDirectory() + "/"); return path.toString(); } return null; @@ -120,6 +120,13 @@ public static boolean isExternalStorageDocument(Uri uri) { return "com.android.externalstorage.documents".equals(uri.getAuthority()); } + public static StringBuilder trimExternal(String path) { + StringBuilder trimmedPath = new StringBuilder(); + String[] tempPath = path.split("/"); + trimmedPath.append(tempPath[1]); + return trimmedPath; + } + /** * @param uri The Uri to check. * @return Whether the Uri authority is DownloadsProvider. From e57f5c13b86fa78c4b770fe08d290c5963f39cf1 Mon Sep 17 00:00:00 2001 From: jddeep Date: Sun, 14 Apr 2019 10:31:16 +0530 Subject: [PATCH 5/7] Updated realPath --- app/src/main/java/swati4star/createpdf/util/RealPathUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index a5f885bd2..537757e26 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -122,8 +122,8 @@ public static boolean isExternalStorageDocument(Uri uri) { public static StringBuilder trimExternal(String path) { StringBuilder trimmedPath = new StringBuilder(); - String[] tempPath = path.split("/"); - trimmedPath.append(tempPath[1]); + int tempPath = path.indexOf('/'); + trimmedPath.append(path.substring(tempPath+1)); return trimmedPath; } From ef739e2952b22200f6cc0721961c8eb8997f2611 Mon Sep 17 00:00:00 2001 From: jddeep Date: Sun, 14 Apr 2019 11:05:02 +0530 Subject: [PATCH 6/7] Moved method to StringUtils --- .../swati4star/createpdf/util/RealPathUtil.java | 9 +-------- .../swati4star/createpdf/util/StringUtils.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index 537757e26..fd398cd94 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -71,7 +71,7 @@ public static String getRealPathFromURI_API19(final Context context, final Uri u } } } else { - StringBuilder path = trimExternal(uri.getPath().substring(1)); + StringBuilder path = StringUtils.trimExternal(uri.getPath().substring(1)); path.insert(0, Environment.getExternalStorageDirectory() + "/"); return path.toString(); } @@ -120,13 +120,6 @@ public static boolean isExternalStorageDocument(Uri uri) { return "com.android.externalstorage.documents".equals(uri.getAuthority()); } - public static StringBuilder trimExternal(String path) { - StringBuilder trimmedPath = new StringBuilder(); - int tempPath = path.indexOf('/'); - trimmedPath.append(path.substring(tempPath+1)); - return trimmedPath; - } - /** * @param uri The Uri to check. * @return Whether the Uri authority is DownloadsProvider. diff --git a/app/src/main/java/swati4star/createpdf/util/StringUtils.java b/app/src/main/java/swati4star/createpdf/util/StringUtils.java index f7e35e6ab..ac10a80ac 100644 --- a/app/src/main/java/swati4star/createpdf/util/StringUtils.java +++ b/app/src/main/java/swati4star/createpdf/util/StringUtils.java @@ -60,4 +60,18 @@ public static String getDefaultStorageLocation() { return Environment.getExternalStorageDirectory().getAbsolutePath() + pdfDirectory; } + + /** + * This function is used to trim the root path name from + * the getPath() method so that it can be replaced by + * the External Storage Directory. + * @param path + * @return + */ + public static StringBuilder trimExternal(String path) { + StringBuilder trimmedPath = new StringBuilder(); + int tempPath = path.indexOf('/'); + trimmedPath.append(path.substring(tempPath + 1)); + return trimmedPath; + } } From de38c27e8f0b42123c61ed3fd4b97459980d3d43 Mon Sep 17 00:00:00 2001 From: jddeep Date: Sun, 14 Apr 2019 13:09:45 +0530 Subject: [PATCH 7/7] Handled exception --- .../swati4star/createpdf/util/RealPathUtil.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java index fd398cd94..7ef2bf46f 100644 --- a/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java +++ b/app/src/main/java/swati4star/createpdf/util/RealPathUtil.java @@ -37,6 +37,9 @@ public static String getRealPath(Context context, Uri fileUri) { public static String getRealPathFromURI_API19(final Context context, final Uri uri) { // DocumentProvider + if (isDriveFile(uri)) { + return null; + } if (DocumentsContract.isDocumentUri(context, uri)) { // ExternalStorageProvider if (isExternalStorageDocument(uri)) { @@ -120,6 +123,20 @@ public static boolean isExternalStorageDocument(Uri uri) { return "com.android.externalstorage.documents".equals(uri.getAuthority()); } + /** + * This function is used to check for a drive file URI. + * + * @param uri + * @return + */ + public static boolean isDriveFile(Uri uri) { + if ("com.google.android.apps.docs.storage".equals(uri.getAuthority())) + return true; + if ("com.google.android.apps.docs.storage.legacy".equals(uri.getAuthority())) + return true; + return false; + } + /** * @param uri The Uri to check. * @return Whether the Uri authority is DownloadsProvider.