import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader;
import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.OperationCancelledException;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.common.utils.Log_OC;
import java.util.List;
import java.util.Map;
import java.util.Vector;
+import java.util.concurrent.atomic.AtomicBoolean;
//import android.support.v4.content.LocalBroadcastManager;
/** 'True' means that the remote folder changed and should be fetched */
private boolean mRemoteFolderChanged;
+ private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
/**
mConflictsFound = 0;
mForgottenLocalFiles.clear();
+ /// perform the download
+ synchronized(mCancellationRequested) {
+ if (mCancellationRequested.get()) {
+ return new RemoteOperationResult(new OperationCancelledException());
+ }
+ }
+
result = checkForChanges(client);
if (result.isSuccess()) {
mContext.startService(i);
}
+ /**
+ * Cancel operation
+ */
+ public void cancel(){
+ // WIP Cancel the sync operation
+ mCancellationRequested.set(true);
+ }
+
public boolean getRemoteFolderChanged() {
return mRemoteFolderChanged;
}