- // Construct the file name path.
- switch (fileNameContentPath) {
- // The documents home has a special content path.
- case "/document/home":
- fileNamePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + fileNameFinalPath;
- break;
-
- // Everything else for the primary user should be in `/document/primary`.
- case "/document/primary":
- fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
- break;
-
- // Just in case, catch everything else and place it in the external storage directory.
- default:
- fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
- break;
+ // Check to see if the current file name final patch is a complete, valid path
+ if (fileNameFinalPath.startsWith("/storage/emulated/")) { // The existing file name final path is a complete, valid path.
+ // Use the provided file name path as is.
+ fileNamePath = fileNameFinalPath;
+ } else { // The existing file name final path is not a complete, valid path.
+ // Construct the file name path.
+ switch (fileNameContentPath) {
+ // The documents home has a special content path.
+ case "/document/home":
+ fileNamePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/" + fileNameFinalPath;
+ break;
+
+ // Everything else for the primary user should be in `/document/primary`.
+ case "/document/primary":
+ fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
+ break;
+
+ // Just in case, catch everything else and place it in the external storage directory.
+ default:
+ fileNamePath = Environment.getExternalStorageDirectory() + "/" + fileNameFinalPath;
+ break;
+ }