Merge "Better handling of storage paths." into mnc-dev
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 6639486..75dd35c 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -1925,13 +1925,14 @@
// enough permissions; ask vold to create on our behalf.
final IMountService mount = IMountService.Stub.asInterface(
ServiceManager.getService("mount"));
- int res = -1;
try {
- res = mount.mkdirs(getPackageName(), dir.getAbsolutePath());
- } catch (Exception ignored) {
- }
- if (res != 0) {
- Log.w(TAG, "Failed to ensure directory: " + dir);
+ final int res = mount.mkdirs(getPackageName(), dir.getAbsolutePath());
+ if (res != 0) {
+ Log.w(TAG, "Failed to ensure " + dir + ": " + res);
+ dir = null;
+ }
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to ensure " + dir + ": " + e);
dir = null;
}
}
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 320aa2c..2b75f31 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -817,17 +817,19 @@
/** {@hide} */
private static @Nullable StorageVolume getStorageVolume(StorageVolume[] volumes, File file) {
- File canonicalFile = null;
try {
- canonicalFile = file.getCanonicalFile();
+ file = file.getCanonicalFile();
} catch (IOException ignored) {
- canonicalFile = null;
+ return null;
}
for (StorageVolume volume : volumes) {
- if (volume.getPathFile().equals(file)) {
- return volume;
+ File volumeFile = volume.getPathFile();
+ try {
+ volumeFile = volumeFile.getCanonicalFile();
+ } catch (IOException ignored) {
+ continue;
}
- if (FileUtils.contains(volume.getPathFile(), canonicalFile)) {
+ if (FileUtils.contains(volumeFile, file)) {
return volume;
}
}