FileDownloaderBinder downloaderBinder = mFileActivity.getFileDownloaderBinder();
FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder();
if (downloaderBinder != null && downloaderBinder.isDownloading(account, file)) {
+ // Remove etag for parent, if file is a keep_in_sync
+ if (file.keepInSync()) {
+ OCFile parent = mFileActivity.getStorageManager().getFileById(file.getParentId());
+ parent.setEtag("");
+ mFileActivity.getStorageManager().saveFile(parent);
+ }
+
downloaderBinder.cancel(account, file);
-
+
} else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
uploaderBinder.cancel(account, file);
}
import com.owncloud.android.R;
import android.app.Notification;
-import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Process;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews;
*
* @author David A. Velasco
*/
+import java.util.Vector;
+
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
}
/**
- * Performs the removal of the local copy of the taget file
+ * Performs the removal of the local copy of the target file
*/
@Override
public void onNeutral(String callerTag) {
- ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper()
+ ComponentsGetter cg = (ComponentsGetter)getSherlockActivity();
+ cg.getFileOperationsHelper()
.removeFile(mTargetFile, true);
+
+ FileDataStorageManager storageManager = cg.getStorageManager();
+
+ boolean containsKeepInSync = false;
+ if (mTargetFile.isFolder()) {
+ Vector<OCFile> files = storageManager.getFolderContent(mTargetFile);
+ for(OCFile file: files) {
+ containsKeepInSync = file.keepInSync() || containsKeepInSync;
+
+ if (containsKeepInSync)
+ break;
+ }
+ }
+
+ // Remove etag for parent, if file is a keep_in_sync
+ // or is a folder and contains keep_in_sync
+ if (mTargetFile.keepInSync() || containsKeepInSync) {
+ OCFile folder = null;
+ if (mTargetFile.isFolder()) {
+ folder = mTargetFile;
+ } else {
+ folder = storageManager.getFileById(mTargetFile.getParentId());
+ }
+
+ folder.setEtag("");
+ storageManager.saveFile(folder);
+ }
}
@Override