diff options
author | Felipe Leme <felipeal@google.com> | 2016-06-10 20:30:59 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-10 20:30:59 +0000 |
commit | a1072465a3a2c005bbae858e698ef4de90453908 (patch) | |
tree | 945133cd14f7873928d820d0d4fd7131e948510d /packages/DocumentsUI | |
parent | 201c935fb9ee21e0d2c3c81c2a7cb30c40724316 (diff) | |
parent | e54c409a1f372d722adffbf5a2f657abfc6b4b20 (diff) |
Merge \\"Fixed check for volume name.\\" into nyc-dev am: cbfc6eed32
am: e54c409a1f
Change-Id: I3e23c7d37d0e9527f0fccba5bf55b4bf092a1e5c
Diffstat (limited to 'packages/DocumentsUI')
-rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/OpenExternalDirectoryActivity.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/OpenExternalDirectoryActivity.java b/packages/DocumentsUI/src/com/android/documentsui/OpenExternalDirectoryActivity.java index b0e5e4e531e1..ddf87bbe6333 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/OpenExternalDirectoryActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/OpenExternalDirectoryActivity.java @@ -20,6 +20,7 @@ import static android.os.Environment.isStandardDirectory; import static android.os.Environment.STANDARD_DIRECTORIES; import static android.os.storage.StorageVolume.EXTRA_DIRECTORY_NAME; import static android.os.storage.StorageVolume.EXTRA_STORAGE_VOLUME; + import static com.android.documentsui.LocalPreferences.getScopedAccessPermissionStatus; import static com.android.documentsui.LocalPreferences.PERMISSION_ASK; import static com.android.documentsui.LocalPreferences.PERMISSION_ASK_AGAIN; @@ -201,14 +202,23 @@ public class OpenExternalDirectoryActivity extends Activity { final List<VolumeInfo> volumes = sm.getVolumes(); if (DEBUG) Log.d(TAG, "Number of volumes: " + volumes.size()); File internalRoot = null; + boolean found = true; for (VolumeInfo volume : volumes) { if (isRightVolume(volume, root, userId)) { + found = true; internalRoot = volume.getInternalPathForUser(userId); // Must convert path before calling getDocIdForFileCreateNewDir() if (DEBUG) Log.d(TAG, "Converting " + root + " to " + internalRoot); file = isRoot ? internalRoot : new File(internalRoot, directory); + volumeUuid = storageVolume.getUuid(); volumeLabel = sm.getBestVolumeDescription(volume); - volumeUuid = volume.getFsUuid(); + if (TextUtils.isEmpty(volumeLabel)) { + volumeLabel = storageVolume.getDescription(activity); + } + if (TextUtils.isEmpty(volumeLabel)) { + volumeLabel = activity.getString(android.R.string.unknownName); + Log.w(TAG, "No volume description for " + volume + "; using " + volumeLabel); + } break; } } @@ -229,7 +239,7 @@ public class OpenExternalDirectoryActivity extends Activity { return true; } - if (volumeLabel == null) { + if (!found) { Log.e(TAG, "Could not get volume for " + file); logInvalidScopedAccessRequest(activity, SCOPED_DIRECTORY_ACCESS_ERROR); return false; @@ -280,12 +290,12 @@ public class OpenExternalDirectoryActivity extends Activity { final boolean isVisible = volume.isVisibleForWrite(userId); if (DEBUG) Log.d(TAG, "Volume: " + volume + " userId: " + userId + " root: " + root - + " volumePath: " + volume.getPath().getPath() + + " volumePath: " + volume.getPath() + " pathForUser: " + path + " internalPathForUser: " + volume.getInternalPath() + " isVisible: " + isVisible); - return volume.isVisibleForWrite(userId) && root.equals(path); + return isVisible && root.equals(path); } private static Uri getGrantedUriPermission(Context context, ContentProviderClient provider, @@ -455,7 +465,7 @@ public class OpenExternalDirectoryActivity extends Activity { message = TextUtils.expandTemplate( getText(mIsPrimary ? R.string.open_external_dialog_request_primary_volume : R.string.open_external_dialog_request), - mAppLabel, directory, mVolumeLabel); + mAppLabel, directory, mVolumeLabel); } final TextView messageField = (TextView) view.findViewById(R.id.message); messageField.setText(message); |