Merge remote-tracking branch 'upstream/develop' into
[pub/Android/ownCloud.git] / src / com / owncloud / android / operations / CreateShareOperation.java
index 4b2f6ad..c32c477 100644 (file)
@@ -32,16 +32,17 @@ import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.operations.common.SyncOperation;
 import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.operations.common.SyncOperation;
-import com.owncloud.android.utils.Log_OC;
 
 public class CreateShareOperation extends SyncOperation {
 
     private static final String TAG = CreateShareOperation.class.getSimpleName();
 
 public class CreateShareOperation extends SyncOperation {
 
     private static final String TAG = CreateShareOperation.class.getSimpleName();
+    
 
     protected FileDataStorageManager mStorageManager;
 
 
     protected FileDataStorageManager mStorageManager;
 
@@ -91,17 +92,18 @@ public class CreateShareOperation extends SyncOperation {
         operation = new GetRemoteSharesForFileOperation(mPath, false, false);
         RemoteOperationResult result = ((GetRemoteSharesForFileOperation)operation).execute(client);
 
         operation = new GetRemoteSharesForFileOperation(mPath, false, false);
         RemoteOperationResult result = ((GetRemoteSharesForFileOperation)operation).execute(client);
 
-        if (result.isSuccess()) {
+        if (!result.isSuccess() || result.getData().size() <= 0) {
             operation = new CreateRemoteShareOperation(mPath, mShareType, mShareWith, mPublicUpload, mPassword, mPermissions);
             result = ((CreateRemoteShareOperation)operation).execute(client);
             operation = new CreateRemoteShareOperation(mPath, mShareType, mShareWith, mPublicUpload, mPassword, mPermissions);
             result = ((CreateRemoteShareOperation)operation).execute(client);
-
-            if (result.isSuccess()) {
-                if (result.getData().size() > 0) {
-                    OCShare share = (OCShare) result.getData().get(0);
-                    updateData(share);
-                }
-            }
         }
         }
+        
+        if (result.isSuccess()) {
+            if (result.getData().size() > 0) {
+                OCShare share = (OCShare) result.getData().get(0);
+                updateData(share);
+            } 
+        }
+        
         return result;
     }
     
         return result;
     }