-Subproject commit 7ff0bc0d837edea90b075140f8caba308ce7d378
+Subproject commit 5bd0d7387712ce3f53869294761ac4d8537841cd
import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.utils.FileStorageUtils;
-
import android.accounts.Account;
import android.content.ContentProviderClient;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
+import android.content.Intent;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
).withSelection(where, whereArgs).build());
if (file.isDown()) {
+ String path = file.getStoragePath();
new File(file.getStoragePath()).delete();
+
+ // Notify MediaScanner about removed file
+ Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent.setData(Uri.fromFile(new File(path)));
+ MainApp.getAppContext().sendBroadcast(intent);
}
}
}
success &= removeLocalFolder(file);
} else {
if (file.isDown()) {
+ String path = file.getStoragePath();
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
file.setStoragePath(null);
saveFile(file);
+
+ // Notify MediaScanner about removed file
+ Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent.setData(Uri.fromFile(new File(path)));
+ MainApp.getAppContext().sendBroadcast(intent);
}
}
}
if (localFile.isDirectory()) {
success &= removeLocalFolder(localFile);
} else {
+ String path = localFile.getAbsolutePath();
success &= localFile.delete();
+
+ // Notify MediaScanner about removed file
+ Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent.setData(Uri.fromFile(new File(path)));
+ MainApp.getAppContext().sendBroadcast(intent);
}
}
}
}
Log_OC.d(TAG, "Local file RENAMED : " + renamed);
+ // Notify MediaScanner about removed file
+ Intent intent1 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent1.setData(Uri.fromFile(new File(file.getStoragePath())));
+ MainApp.getAppContext().sendBroadcast(intent1);
+
+ // Notify MediaScanner about new file/folder
+ Intent intent2 = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent2.setData(Uri.fromFile(new File(defaultSavePath + targetPath)));
+ MainApp.getAppContext().sendBroadcast(intent2);
+
+ Log_OC.d(TAG, "uri old: " + file.getStoragePath());
+ Log_OC.d(TAG, "uri new: " + defaultSavePath + targetPath);
}
}
import java.io.File;
-import third_parties.daveKoeller.AlphanumComparator;
+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>() {
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);
}
}
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
+import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.utils.FileStorageUtils;
import android.accounts.Account;
+import android.media.MediaScannerConnection;
import android.webkit.MimeTypeMap;
/**
newFile = new File(getSavePath());
newFile.getParentFile().mkdirs();
moved = tmpFile.renameTo(newFile);
+
+ MediaScannerConnection.scanFile(MainApp.getAppContext(),
+ new String[]{newFile.getAbsolutePath()}, null, null);
+
if (!moved)
result = new RemoteOperationResult(RemoteOperationResult.ResultCode.LOCAL_STORAGE_NOT_MOVED);
}
Log_OC.i(TAG, "Download of " + mFile.getRemotePath() + " to " + getSavePath() + ": " + result.getLogMessage());
-
return result;
}
*
* @author David A. Velasco
*/
+import java.io.File;
import java.util.Vector;
+import android.app.Dialog;
+import android.content.Intent;
+import android.media.MediaScannerConnection;
+import android.net.Uri;
+import android.os.Bundle;
+
+import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.ui.activity.ComponentsGetter;
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
-import android.app.Dialog;
-import android.os.Bundle;
-
public class RemoveFileDialogFragment extends ConfirmationDialogFragment
implements ConfirmationDialogFragmentListener {
ComponentsGetter cg = (ComponentsGetter)getSherlockActivity();
FileDataStorageManager storageManager = cg.getStorageManager();
if (storageManager.getFileById(mTargetFile.getFileId()) != null) {
+ String path = mTargetFile.getStoragePath();
cg.getFileOperationsHelper().removeFile(mTargetFile, false);
+ triggerMediaScan(path);
}
}
*/
@Override
public void onNeutral(String callerTag) {
+ String path = mTargetFile.getStoragePath();
ComponentsGetter cg = (ComponentsGetter)getSherlockActivity();
- cg.getFileOperationsHelper()
- .removeFile(mTargetFile, true);
+ cg.getFileOperationsHelper().removeFile(mTargetFile, true);
FileDataStorageManager storageManager = cg.getStorageManager();
folder.setEtag("");
storageManager.saveFile(folder);
}
+
+ // Trigger MediaScan
+ triggerMediaScan(path);
}
@Override
// nothing to do here
}
-}
+ private void triggerMediaScan(String path){
+ try {
+ MediaScannerConnection.scanFile(
+ getActivity().getApplicationContext(),
+ new String[]{path},
+ null,null);
+
+ Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent.setData(Uri.fromFile(new File(path)));
+ MainApp.getAppContext().sendBroadcast(intent);
+ } catch (Exception e){
+ Log_OC.d("Trigger", "exception: " + e);
+ }
+ }
+}
\ No newline at end of file
*
* Triggers the rename operation.
*/
-import com.actionbarsherlock.app.SherlockDialogFragment;
-import com.owncloud.android.R;
-import com.owncloud.android.datamodel.OCFile;
-import com.owncloud.android.lib.resources.files.FileUtils;
-import com.owncloud.android.ui.activity.ComponentsGetter;
-
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.widget.TextView;
import android.widget.Toast;
+import com.actionbarsherlock.app.SherlockDialogFragment;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.ui.activity.ComponentsGetter;
+
/**
* Dialog to input a new name for a file or folder to rename.
Toast.LENGTH_LONG).show();
return;
}
-
- ((ComponentsGetter)getSherlockActivity()).
- getFileOperationsHelper().renameFile(mTargetFile, newFileName);
-
-
+
+ ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper().renameFile(mTargetFile, newFileName);
}
}
-
}
finish();
}
-
+
private class BitmapLoader extends AsyncTask<String, Void, Bitmap> {
/**