Merge "Renaming or moving files should initiate scan." into qt-dev

am: b9c822d6b7

Change-Id: I465e7972552802e1e5c72f36e723bcde2c027c19
This commit is contained in:
Jeff Sharkey
2019-04-14 20:45:17 -07:00
committed by android-build-merger

View File

@@ -332,33 +332,11 @@ public abstract class FileSystemProvider extends DocumentsProvider {
}
private void moveInMediaStore(@Nullable File oldVisibleFile, @Nullable File newVisibleFile) {
// visibleFolders are null if we're moving a document in external thumb drive or SD card.
//
// They should be all null or not null at the same time. File#renameTo() doesn't work across
// volumes so an exception will be thrown before calling this method.
if (oldVisibleFile != null && newVisibleFile != null) {
final long token = Binder.clearCallingIdentity();
try {
final ContentResolver resolver = getContext().getContentResolver();
final Uri externalUri = newVisibleFile.isDirectory()
? MediaStore.Files.getDirectoryUri("external")
: MediaStore.Files.getContentUri("external");
ContentValues values = new ContentValues();
values.put(MediaStore.Files.FileColumns.DATA, newVisibleFile.getAbsolutePath());
// Logic borrowed from MtpDatabase.
// note - we are relying on a special case in MediaProvider.update() to update
// the paths for all children in the case where this is a directory.
final String path = oldVisibleFile.getAbsolutePath();
resolver.update(externalUri,
values,
"_data LIKE ? AND lower(_data)=lower(?)",
new String[]{path, path});
} finally {
Binder.restoreCallingIdentity(token);
}
if (oldVisibleFile != null) {
MediaStore.scanFile(getContext(), oldVisibleFile);
}
if (newVisibleFile != null) {
MediaStore.scanFile(getContext(), newVisibleFile);
}
}