X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/6bef4abf744cb03d50dd4ecff121c20a1e267aab..ac685690a2bf019d2978082debe62ec6aea0a69f:/src/com/owncloud/android/operations/SynchronizeFolderOperation.java diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 286b5ea9..75e193af 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -20,12 +20,19 @@ package com.owncloud.android.operations; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + import android.accounts.Account; import android.content.Context; import android.content.Intent; import android.util.Log; -import com.owncloud.android.MainApp; + import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader; @@ -41,12 +48,6 @@ import com.owncloud.android.operations.common.SyncOperation; import com.owncloud.android.services.OperationsService; import com.owncloud.android.utils.FileStorageUtils; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Vector; import java.util.concurrent.atomic.AtomicBoolean; //import android.support.v4.content.LocalBroadcastManager; @@ -98,7 +99,7 @@ public class SynchronizeFolderOperation extends SyncOperation { private List mFilesToSyncContentsWithoutUpload; // this will go out when 'folder synchronization' replaces 'folder download'; step by step - private List mFavouriteFilesToSyncContents; + private List mFilesToSyncContents; // this will be used for every file when 'folder synchronization' replaces 'folder download' private final AtomicBoolean mCancellationRequested; @@ -120,7 +121,7 @@ public class SynchronizeFolderOperation extends SyncOperation { mRemoteFolderChanged = false; mFilesForDirectDownload = new Vector(); mFilesToSyncContentsWithoutUpload = new Vector(); - mFavouriteFilesToSyncContents = new Vector(); + mFilesToSyncContents = new Vector(); mCancellationRequested = new AtomicBoolean(false); } @@ -290,14 +291,15 @@ public class SynchronizeFolderOperation extends SyncOperation { List updatedFiles = new Vector(folderAndFiles.size() - 1); mFilesForDirectDownload.clear(); mFilesToSyncContentsWithoutUpload.clear(); - mFavouriteFilesToSyncContents.clear(); + mFilesToSyncContents.clear(); if (mCancellationRequested.get()) { throw new OperationCancelledException(); } // get current data about local contents of the folder to synchronize - List localFiles = storageManager.getFolderContent(mLocalFolder); + // TODO Enable when "On Device" is recovered ? + List localFiles = storageManager.getFolderContent(mLocalFolder/*, false*/); Map localFilesMap = new HashMap(localFiles.size()); for (OCFile file : localFiles) { localFilesMap.put(file.getRemotePath(), file); @@ -319,7 +321,7 @@ public class SynchronizeFolderOperation extends SyncOperation { if (localFile != null) { // some properties of local state are kept unmodified remoteFile.setFileId(localFile.getFileId()); - remoteFile.setKeepInSync(localFile.keepInSync()); + remoteFile.setFavorite(localFile.isFavorite()); remoteFile.setLastSyncDateForData(localFile.getLastSyncDateForData()); remoteFile.setModificationTimestampAtLastSyncForData( localFile.getModificationTimestampAtLastSyncForData() @@ -351,14 +353,15 @@ public class SynchronizeFolderOperation extends SyncOperation { /// classify file to sync/download contents later if (remoteFile.isFolder()) { /// to download children files recursively - synchronized(mCancellationRequested) { + synchronized (mCancellationRequested) { if (mCancellationRequested.get()) { throw new OperationCancelledException(); } startSyncFolderOperation(remoteFile.getRemotePath()); } - } else if (remoteFile.keepInSync()) { + //} else if (remoteFile.isFavorite()) { + } else { /// prepare content synchronization for kept-in-sync files SynchronizeFileOperation operation = new SynchronizeFileOperation( localFile, @@ -367,9 +370,9 @@ public class SynchronizeFolderOperation extends SyncOperation { true, mContext ); - mFavouriteFilesToSyncContents.add(operation); + mFilesToSyncContents.add(operation); - } else { + /*} else { /// prepare limited synchronization for regular files SynchronizeFileOperation operation = new SynchronizeFileOperation( localFile, @@ -379,7 +382,7 @@ public class SynchronizeFolderOperation extends SyncOperation { false, mContext ); - mFilesToSyncContentsWithoutUpload.add(operation); + mFilesToSyncContentsWithoutUpload.add(operation);*/ } updatedFiles.add(remoteFile); @@ -392,7 +395,8 @@ public class SynchronizeFolderOperation extends SyncOperation { private void prepareOpsFromLocalKnowledge() throws OperationCancelledException { - List children = getStorageManager().getFolderContent(mLocalFolder); + // TODO Enable when "On Device" is recovered ? + List children = getStorageManager().getFolderContent(mLocalFolder/*, false*/); for (OCFile child : children) { /// classify file to sync/download contents later if (child.isFolder()) { @@ -408,7 +412,20 @@ public class SynchronizeFolderOperation extends SyncOperation { /// prepare limited synchronization for regular files if (!child.isDown()) { mFilesForDirectDownload.add(child); + + } else { + /// this should result in direct upload of files that were locally modified + SynchronizeFileOperation operation = new SynchronizeFileOperation( + child, + child, // cheating with the remote file to get an upadte to server; to refactor + mAccount, + true, + mContext + ); + mFilesToSyncContents.add(operation); + } + } } } @@ -417,7 +434,7 @@ public class SynchronizeFolderOperation extends SyncOperation { private void syncContents(OwnCloudClient client) throws OperationCancelledException { startDirectDownloads(); startContentSynchronizations(mFilesToSyncContentsWithoutUpload, client); - startContentSynchronizations(mFavouriteFilesToSyncContents, client); + startContentSynchronizations(mFilesToSyncContents, client); }