Refactoring: get MediaScan trigger out of OCFile for renaming

This commit is contained in:
David A. Velasco 2014-12-02 09:08:48 +01:00
parent eaa3b1ef56
commit c95eb327f8
3 changed files with 15 additions and 17 deletions

View file

@ -1579,4 +1579,10 @@ public class FileDataStorageManager {
//}
}
public void triggerMediaScan(String path) {
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(new File(path)));
MainApp.getAppContext().sendBroadcast(intent);
}
}

View file

@ -26,11 +26,7 @@ import com.owncloud.android.lib.common.utils.Log_OC;
import java.io.File;
import com.owncloud.android.MainApp;
import third_parties.daveKoeller.AlphanumComparator;
import android.content.Intent;
import android.net.Uri;
public class OCFile implements Parcelable, Comparable<OCFile> {
public static final Parcelable.Creator<OCFile> CREATOR = new Parcelable.Creator<OCFile>() {
@ -299,17 +295,6 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
mRemotePath += PATH_SEPARATOR;
}
Log_OC.d(TAG, "OCFile name changed to " + mRemotePath);
// Notify MediaScanner about removed file
Intent intent1 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent1.setData(Uri.fromFile(new File(this.getStoragePath())));
MainApp.getAppContext().sendBroadcast(intent1);
// Notify MediaScanner about new file
Intent intent2 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
String folder = new File(this.getStoragePath()).getParent();
intent2.setData(Uri.fromFile(new File(folder+ PATH_SEPARATOR+name)));
MainApp.getAppContext().sendBroadcast(intent2);
}
}

View file

@ -134,12 +134,19 @@ public class RenameFileOperation extends SyncOperation {
// try to rename the local copy of the file
if (mFile.isDown()) {
File f = new File(mFile.getStoragePath());
String oldPath = mFile.getStoragePath();
File f = new File(oldPath);
String parentStoragePath = f.getParent();
if (!parentStoragePath.endsWith(File.separator))
parentStoragePath += File.separator;
if (f.renameTo(new File(parentStoragePath + mNewName))) {
mFile.setStoragePath(parentStoragePath + mNewName);
String newPath = parentStoragePath + mNewName;
mFile.setStoragePath(newPath);
// notify MediaScanner about removed file - TODO really works?
getStorageManager().triggerMediaScan(oldPath);
// notify to scan about new file
getStorageManager().triggerMediaScan(newPath);
}
// else - NOTHING: the link to the local file is kept although the local name can't be updated
// TODO - study conditions when this could be a problem