if (removeLocalCopy && file.isDown() && localPath != null && success) {
success = new File(localPath).delete();
if (success) {
- deleteFileInMediaScan(file);
+ deleteFileInMediaScan(localPath);
}
if (!removeDBData && success) {
// maybe unnecessary, but should be checked TODO remove if unnecessary
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
- deleteFileInMediaScan(file); // notify MediaScanner about removed file
+ // notify MediaScanner about removed file
+ deleteFileInMediaScan(file.getStoragePath());
file.setStoragePath(null);
saveFile(file);
}
Iterator<String> it = originalPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about removed file
- deleteFileInMediaScan(file);
- triggerMediaScan(it.next());
+ deleteFileInMediaScan(it.next());
}
it = newPathsToTriggerMediaScan.iterator();
while (it.hasNext()) {
// Notify MediaScanner about new file/folder
- deleteFileInMediaScan(file);
triggerMediaScan(it.next());
}
}
MainApp.getAppContext().sendBroadcast(intent);
}
- public void deleteFileInMediaScan(OCFile file) {
+ public void deleteFileInMediaScan(String path) {
- String path = file.getStoragePath();
- if (file.isImage()) {
+ String mimetypeString = FileStorageUtils.getMimeTypeFromName(path);
+ if (mimetypeString.startsWith("image/")) {
// Images
getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaStore.Images.Media.DATA + "=?", new String[]{path});
- } else if (file.isAudio()) {
+ } else if (mimetypeString.startsWith("audio/")) {
// Audio
getContentResolver().delete(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
MediaStore.Audio.Media.DATA + "=?", new String[]{path});
- } else if (file.isVideo()) {
+ } else if (mimetypeString.startsWith("video/")) {
// Video
getContentResolver().delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
MediaStore.Video.Media.DATA + "=?", new String[]{path});
}
+
}
}
import android.os.Parcel;
import android.os.Parcelable;
-import android.webkit.MimeTypeMap;
import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.utils.FileStorageUtils;
import java.io.File;
*/
public boolean isImage() {
return ((mMimeType != null && mMimeType.startsWith("image/")) ||
- getMimeTypeFromName().startsWith("image/"));
- }
-
- public String getMimeTypeFromName() {
- String extension = "";
- int pos = mRemotePath.lastIndexOf('.');
- if (pos >= 0) {
- extension = mRemotePath.substring(pos + 1);
- }
- String result = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
- return (result != null) ? result : "";
+ FileStorageUtils.getMimeTypeFromName(mRemotePath).startsWith("image/"));
}
public String getPermissions() {
* Constructor
*
* @param remotePath RemotePath of the OCFile instance describing the remote file or folder to rename
- * @param account OwnCloud account containing the remote file
* @param newName New name to set as the name of file.
*/
public RenameFileOperation(String remotePath, String newName) {
private void saveLocalFile() {
mFile.setFileName(mNewName);
-
+
// try to rename the local copy of the file
if (mFile.isDown()) {
String oldPath = mFile.getStoragePath();
String newPath = parentStoragePath + mNewName;
mFile.setStoragePath(newPath);
- // notify MediaScanner about removed file - TODO really works?
- getStorageManager().triggerMediaScan(oldPath);
+ // notify MediaScanner about removed file
+ getStorageManager().deleteFileInMediaScan(oldPath);
// notify to scan about new file
getStorageManager().triggerMediaScan(newPath);
}
import android.net.Uri;
import android.os.Environment;
import android.os.StatFs;
+import android.webkit.MimeTypeMap;
/**
/**
* Creates and populates a new {@link RemoteFile} object with the data read from an {@link OCFile}.
*
- * @param oCFile OCFile
+ * @param ocFile OCFile
* @return New RemoteFile instance representing the resource described by ocFile.
*/
public static RemoteFile fillRemoteFile(OCFile ocFile){
/**
* Sorts list by Date
- * @param sortAscending true: ascending, false: descending
+ * @param files
*/
public static Vector<OCFile> sortByDate(Vector<OCFile> files){
final Integer val;
/**
* Sorts list by Name
- * @param sortAscending true: ascending, false: descending
+ * @param files files to sort
*/
public static Vector<OCFile> sortByName(Vector<OCFile> files){
final Integer val;
return result;
}
return 0;
- }
+ }
+
+ /**
+ * Mimetype String of a file
+ * @param path
+ * @return
+ */
+ public static String getMimeTypeFromName(String path) {
+ String extension = "";
+ int pos = path.lastIndexOf('.');
+ if (pos >= 0) {
+ extension = path.substring(pos + 1);
+ }
+ String result = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
+ return (result != null) ? result : "";
+ }
}